skip to main content
10.1145/2451436.2451442acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
research-article

Reactive behavior in object-oriented applications: an analysis and a research roadmap

Published: 24 March 2013 Publication History

Abstract

Reactive applications are difficult to implement. Traditional solutions based on event systems and the Observer pattern have a number of inconveniences, but programmers bear them in return for the benefits of OO design. On the other hand, reactive approaches based on automatic updates of dependencies - like functional reactive programming and dataflow languages - provide undoubted advantages but do not fit well with mutable objects. In this paper, we provide a research roadmap to overcome the limitations of the current approaches and to support reactive applications in the OO setting. To establish a solid background for our investigation, we propose a conceptual framework to model the design space of reactive applications and we study the flaws of the existing solutions. Then we highlight how reactive languages have the potential to address those issues and we formulate our research plan.

References

[1]
U. A. Acar, G. E. Blelloch, and R. Harper. Adaptive functional programming. ACM Trans. Program. Lang. Syst., 28(6):990--1034, Nov. 2006.
[2]
Android developers site. http://developer.android.com/index.html.
[3]
G. Berry and G. Gonthier. The Esterel synchronous programming language: design, semantics, implementation. Science of Computer Programming, 19(2):87 -- 152, 1992.
[4]
C. Bockisch, S. Kanthak, M. Haupt, M. Arnold, and M. Mezini. Efficient control flow quantification. In Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, OOPSLA '06, pages 125--138, New York, NY, USA, 2006. ACM.
[5]
E. Bodden, R. Shaikh, and L. Hendren. Relational aspects as tracematches. In Proceedings of the 7th international conference on Aspect-oriented software development, AOSD '08, pages 84--95, 2008.
[6]
K. Burchett, G. H. Cooper, and S. Krishnamurthi. Lowering: a static optimization technique for transparent functional reactivity. In Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation, PEPM '07, pages 71--80, 2007.
[7]
P. Caspi, D. Pilaud, N. Halbwachs, and J. A. Plaice. LUSTRE: a declarative language for real-time programming. In Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, POPL '87, pages 178--188, 1987.
[8]
S. Ceri and J. Widom. Deriving production rules for incremental view maintenance. In Proceedings of the 17th International Conference on Very Large Data Bases, VLDB '91, pages 577--589, San Francisco, CA, USA, 1991. Morgan Kaufmann Publishers Inc.
[9]
S. Chandrasekaran, O. Cooper, A. Deshpande, M. J. Franklin, J. M. Hellerstein, W. Hong, S. Krishnamurthy, S. R. Madden, F. Reiss, and M. A. Shah. TelegraphCQ: continuous dataflow processing. In Proceedings of the 2003 ACM SIGMOD international conference on Management of data, SIGMOD '03, pages 668--668, 2003.
[10]
G. H. Cooper and S. Krishnamurthi. Embedding dynamic dataflow in a call-by-value language. In ESOP'06, pages 294--308, 2006.
[11]
Microsoft corporation. C# language specification. version 3.0. http://msdn.microsoft.com/en-us/vcsharp/aa336809.aspx, 2007.
[12]
C. Demetrescu, I. Finocchi, and A. Ribichini. Reactive imperative programming with dataflow constraints. In Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications, OOPSLA '11, pages 407--426, 2011.
[13]
R. Dyer, H. Rajan, and Y. Cai. An exploratory study of the design impact of language features for aspect-oriented interfaces. In AOSD '12: 11th International Conference on Aspect-Oriented Software Development, AOSD '12, March 2012.
[14]
J. Eastep, D. Wingate, and A. Agarwal. Smart data structures: an online machine learning approach to multicore data structures. In Proceedings of the 8th ACM international conference on Autonomic computing, ICAC '11, pages 11--20, 2011.
[15]
Eclipse site. http://www.eclipse.org/.
[16]
O. Eini. The pain of implementing LINQ providers. Queue, 9(7):10:10--10:22, July 2011.
[17]
C. Elliott and P. Hudak. Functional reactive animation. In Proceedings of the second ACM SIGPLAN international conference on Functional programming, ICFP '97, pages 263--273. ACM, 1997.
[18]
P. Eugster and K. R. Jayaram. EventJava: An extension of Java for event correlation. In Proceedings of the 23rd European Conference on ECOOP 2009 -- Object-Oriented Programming, ECOOP '09, pages 570--594, 2009.
[19]
E. Figueiredo, N. Cacho, C. Sant'Anna, M. Monteiro, U. Kulesza, A. Garcia, S. Soares, F. Ferrari, S. Khan, F. Castor Filho, and F. Dantas. Evolving software product lines with aspects: an empirical study on design stability. In Proceedings of the 30th international conference on Software engineering, ICSE '08, pages 261--270, 2008.
[20]
FreeCol game. http://www.freecol.org/.
[21]
B. N. Freeman-Benson. Kaleidoscope: mixing objects, constraints, and imperative programming. OOPSLA/ECOOP '90, pages 77--88, 1990.
[22]
V. Gasiunas, L. Satabin, M. Mezini, A. Núnez, and J. Noyé. EScala: modular event-driven object interactions in Scala. AOSD '11, pages 227--240. ACM, 2011.
[23]
Glazed Lists site. http://www.glazedlists.com/.
[24]
J. Hannemann and G. Kiczales. Design pattern implementation in Java and AspectJ. In Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, OOPSLA '02, pages 161--173, 2002.
[25]
D. Ignatoff, G. H. Cooper, and S. Krishnamurthi. Crossing state lines: Adapting object-oriented frameworks to functional reactive languages. In FLOPS, pages 259--276, 2006.
[26]
Jmeter developers site. http://jakarta.apache.org/jmeter/index.html.
[27]
G. Kiczales and M. Mezini. Separation of concerns with procedures, annotations, advice and pointcuts. In Proceedings of the 19th European conference on Object-Oriented Programming, ECOOP'05, pages 195--213, Berlin, Heidelberg, 2005. Springer-Verlag.
[28]
R. B. Kieburtz. Implementing closed domain-specific languages. In Proceedings of the International Workshop on Semantics, Applications, and Implementation of Program Generation, SAIG '00, pages 1--2, London, UK, UK, 2000. Springer-Verlag.
[29]
LiveLinq site. http://www.componentone.com/SuperProducts/LiveLinq/.
[30]
I. Maier, T. Rompf, and M. Odersky. Deprecating the Observer Pattern. Technical report, 2010.
[31]
L. A. Meyerovich, A. Guha, J. Baskin, G. H. Cooper, M. Greenberg, A. Bromfield, and S. Krishnamurthi. Flapjax: a programming language for Ajax applications. OOPSLA '09, pages 1--20, 2009.
[32]
A. Moors, T. Rompf, P. Haller, and M. Odersky. Scala-virtualized. In Proceedings of the ACM SIGPLAN 2012 workshop on Partial evaluation and program manipulation, PEPM '12, pages 117--120, New York, NY, USA, 2012. ACM.
[33]
B. A. Myers, D. A. Giuse, R. B. Dannenberg, D. S. Kosbie, E. Pervin, A. Mickish, B. V. Zanden, and P. Marchal. Garnet: Comprehensive support for graphical, highly interactive user interfaces. Computer, 23(11):71--85, Nov. 1990.
[34]
B. A. Myers, R. G. McDaniel, R. C. Miller, A. S. Ferrency, A. Faulring, B. D. Kyle, A. Mickish, A. Klimovitski, and P. Doane. The Amulet environment: New models for effective user interface software development. IEEE Trans. Softw. Eng., 23(6):347--365, 1997.
[35]
H. Nilsson, A. Courtney, and J. Peterson. Functional reactive programming, continued. In Proceedings of the 2002 ACM SIGPLAN workshop on Haskell, Haskell '02, pages 51--64, 2002.
[36]
V. Pankratius, F. Schmidt, and G. Garreton. Combining functional and imperative programming for multicore software: An empirical study evaluating Scala and Java. In Software Engineering (ICSE), 2012 34th International Conference on, ICSE '12, pages 123 --133, 2012.
[37]
D. J. Pearce and J. Noble. Relationship aspects. In Proceedings of the 5th international conference on Aspect-oriented software development, AOSD '06, pages 75--86, New York, NY, USA, 2006. ACM.
[38]
H. Rajan and G. T. Leavens. Ptolemy: A language with quantified, typed events. In J. Vitek, editor, ECOOP 2008 Paphos, Cyprus, volume 5142 of LNCS, pages 155--179. Springer-Verlag, July 2008.
[39]
http://www.stg.tu-darmstadt.de/media/st/publications/oo\_reactive\_report.pdf.
[40]
REScala web site. http://www.stg.tu-darmstadt.de/research/escala/.
[41]
T. Rothamel and Y. A. Liu. Generating incremental implementations of object-set queries. GPCE '08, pages 55--66, 2008.
[42]
K. Sakurai, H. Masuhara, N. Ubayashi, S. Matsuura, and S. Komiya. Association aspects. In Proceedings of the 3rd international conference on Aspect-oriented software development, AOSD '04, pages 16--25, 2004.
[43]
Z. Wan, W. Taha, and P. Hudak. Real-time FRP. In International Conference on Functional Programming (ICFP'01), 2001.
[44]
D. Willis, D. J. Pearce, and J. Noble. Caching and incrementalisation in the Java query language. SIGPLAN Not., 43(10):1--18, Oct. 2008.
[45]
E. Wu, Y. Diao, and S. Rizvi. High-performance complex event processing over streams. In Proceedings of the 2006 ACM SIGMOD international conference on Management of data, SIGMOD '06, pages 407--418, 2006.

Cited By

View all
  • (2018)Reactive caching for composed services: polling at the speed of pushProceedings of the ACM on Programming Languages10.1145/32765222:OOPSLA(1-28)Online publication date: 24-Oct-2018
  • (2018)On the Semantics of Distributed Reactive Programming: The Cost of ConsistencyIEEE Transactions on Software Engineering10.1109/TSE.2018.283310944:7(689-711)Online publication date: 1-Jul-2018
  • (2016)Expanding Event Systems to Support Signals by Enabling the Automation of Handler BindingsJournal of Information Processing10.2197/ipsjjip.24.62024:4(620-634)Online publication date: 2016
  • Show More Cited By

Index Terms

  1. Reactive behavior in object-oriented applications: an analysis and a research roadmap

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Other conferences
    AOSD '13: Proceedings of the 12th annual international conference on Aspect-oriented software development
    March 2013
    232 pages
    ISBN:9781450317665
    DOI:10.1145/2451436
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    • AOSA: Aspect-Oriented Software Association

    In-Cooperation

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 24 March 2013

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. functional-reactive programming
    2. incremental computation
    3. object-oriented programming
    4. reactive programming

    Qualifiers

    • Research-article

    Conference

    AOSD '13
    Sponsor:
    • AOSA
    AOSD '13: Aspect-Oriented Software Development
    March 24 - 29, 2013
    Fukuoka, Japan

    Acceptance Rates

    Overall Acceptance Rate 41 of 139 submissions, 29%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)7
    • Downloads (Last 6 weeks)1
    Reflects downloads up to 27 Feb 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2018)Reactive caching for composed services: polling at the speed of pushProceedings of the ACM on Programming Languages10.1145/32765222:OOPSLA(1-28)Online publication date: 24-Oct-2018
    • (2018)On the Semantics of Distributed Reactive Programming: The Cost of ConsistencyIEEE Transactions on Software Engineering10.1109/TSE.2018.283310944:7(689-711)Online publication date: 1-Jul-2018
    • (2016)Expanding Event Systems to Support Signals by Enabling the Automation of Handler BindingsJournal of Information Processing10.2197/ipsjjip.24.62024:4(620-634)Online publication date: 2016
    • (2016)Demand-driven incremental object queriesProceedings of the 18th International Symposium on Principles and Practice of Declarative Programming10.1145/2967973.2968610(228-241)Online publication date: 5-Sep-2016
    • (2016)Toward fluent module interactionsCompanion Proceedings of the 15th International Conference on Modularity10.1145/2892664.2892689(158-159)Online publication date: 14-Mar-2016
    • (2016)Reactive object queries: consistent views in object-oriented languagesCompanion Proceedings of the 15th International Conference on Modularity10.1145/2892664.2892665(23-28)Online publication date: 14-Mar-2016
    • (2016)Debugging for reactive programmingProceedings of the 38th International Conference on Software Engineering10.1145/2884781.2884815(796-807)Online publication date: 14-May-2016
    • (2015)Workshop preview of the 2015 workshop on reactive and event-based languages & systems (REBLS 2015)Companion Proceedings of the 2015 ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity10.1145/2814189.2833210(109-110)Online publication date: 25-Oct-2015
    • (2015)Enabling the Automation of Handler Bindings in Event-Driven ProgrammingProceedings of the 2015 IEEE 39th Annual Computer Software and Applications Conference - Volume 0210.1109/COMPSAC.2015.48(137-146)Online publication date: 1-Jul-2015
    • (2014)A theory of changes for higher-order languagesACM SIGPLAN Notices10.1145/2666356.259430449:6(145-155)Online publication date: 9-Jun-2014
    • Show More Cited By

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media