On the Positive Effect of Reactive Programming on Software Comprehension: An Empirical Study
Starting from the first investigations with strictly functional languages, reactive programming has been proposed as the programming paradigm for reactive applications. Over the years, researchers have enriched reactive languages with more powerful abstractions, embedded these abstractions into main...
Saved in:
| Published in: | IEEE transactions on software engineering Vol. 43; no. 12; pp. 1125 - 1143 |
|---|---|
| Main Authors: | , , , , |
| Format: | Journal Article |
| Language: | English |
| Published: |
New York
IEEE
01.12.2017
IEEE Computer Society |
| Subjects: | |
| ISSN: | 0098-5589, 1939-3520 |
| Online Access: | Get full text |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| Abstract | Starting from the first investigations with strictly functional languages, reactive programming has been proposed as the programming paradigm for reactive applications. Over the years, researchers have enriched reactive languages with more powerful abstractions, embedded these abstractions into mainstream languages-including object-oriented languages-and applied reactive programming to several domains, such as GUIs, animations, Web applications, robotics, and sensor networks. However, an important assumption behind this line of research is that, beside other claimed advantages, reactive programming makes a wide class of otherwise cumbersome applications more comprehensible. This claim has never been evaluated. In this paper, we present the first empirical study that evaluates the effect of reactive programming on comprehension. The study involves 127 subjects and compares reactive programming to the traditional object-oriented style with the Observer design pattern. Our findings show that program comprehension is significantly enhanced by the reactive-programming paradigm-a result that suggests to further develop research in this field. |
|---|---|
| AbstractList | Starting from the first investigations with strictly functional languages, reactive programming has been proposed as the programming paradigm for reactive applications. Over the years, researchers have enriched reactive languages with more powerful abstractions, embedded these abstractions into mainstream languages-including object-oriented languages-and applied reactive programming to several domains, such as GUIs, animations, Web applications, robotics, and sensor networks. However, an important assumption behind this line of research is that, beside other claimed advantages, reactive programming makes a wide class of otherwise cumbersome applications more comprehensible. This claim has never been evaluated. In this paper, we present the first empirical study that evaluates the effect of reactive programming on comprehension. The study involves 127 subjects and compares reactive programming to the traditional object-oriented style with the Observer design pattern. Our findings show that program comprehension is significantly enhanced by the reactive-programming paradigm-a result that suggests to further develop research in this field. |
| Author | Proksch, Sebastian Nadi, Sarah Salvaneschi, Guido Amann, Sven Mezini, Mira |
| Author_xml | – sequence: 1 givenname: Guido surname: Salvaneschi fullname: Salvaneschi, Guido email: salvaneschi@cs.tu-darmstadt.de organization: Dept. of Comput. Sci., Tech. Univ. Darmstadt, Darmstadt, Germany – sequence: 2 givenname: Sebastian surname: Proksch fullname: Proksch, Sebastian email: proksch@cs.tu-darmstadt.de organization: Dept. of Comput. Sci., Tech. Univ. Darmstadt, Darmstadt, Germany – sequence: 3 givenname: Sven surname: Amann fullname: Amann, Sven email: amann@cs.tu-darmstadt.de organization: Dept. of Comput. Sci., Tech. Univ. Darmstadt, Darmstadt, Germany – sequence: 4 givenname: Sarah surname: Nadi fullname: Nadi, Sarah email: nadi@ualberta.ca organization: Dept. of Comput. Sci., Univ. of Alberta, Edmonton, AB, Canada – sequence: 5 givenname: Mira surname: Mezini fullname: Mezini, Mira email: mezini@cs.tu-darmstadt.de organization: Dept. of Comput. Sci., Tech. Univ. Darmstadt, Darmstadt, Germany |
| BookMark | eNp9kEtLAzEURoNUsFb3gpuA66l5ThJ3pdQHFBRbd8KQpkmb0klqJlX6753a4sKFqwuX79yPe85BJ8RgAbjCqI8xUrfTyahPEBZ9UnLOCTsBXayoKignqAO6CClZcC7VGThvmhVCiAvBu-D9OcC8tPAlNj77TwtHzlmTYXTw1Wrzs3pJcZF0XfuwgDHASXT5SycLh7HeJLu0ofEx3MFBgKN645M3eg0neTvfXYBTp9eNvTzOHni7H02Hj8X4-eFpOBgXhhCci5lgUmLJjZoTWzIqLdGKGSU5naOZlGwmKaWCEuOYVPPS4JI7QYVjhjCmKe2Bm8PdTYofW9vkahW3KbSVFcGCMYYVkm0KHVImxaZJ1lWb5GuddhVG1d5h1Tqs9g6ro8MWKf8gxmed23dz0n79H3h9AL219rdHSCKQkPQbZaV_GA |
| CODEN | IESEDJ |
| CitedBy_id | crossref_primary_10_1145_3360570 crossref_primary_10_1109_TSE_2018_2833109 crossref_primary_10_1007_s10664_024_10568_z crossref_primary_10_1145_3633769 crossref_primary_10_35784_jcsi_6291 crossref_primary_10_1109_ACCESS_2021_3058450 crossref_primary_10_37745_ejcsit_2013_vol13n3093103 crossref_primary_10_35784_jcsi_2999 crossref_primary_10_1002_spe_3435 crossref_primary_10_1007_s10664_021_09938_8 |
| Cites_doi | 10.1145/1869459.1869462 10.1145/1806799.1806829 10.1145/2632320.2632344 10.1002/spe.941 10.1145/1823854.1823929 10.1007/978-1-4302-3748-8 10.1006/ijhc.1998.0236 10.1007/978-3-642-38493-6_16 10.1109/ICPC.2008.15 10.1145/1453101.1453117 10.1145/266399.266411 10.1145/2384616.2384666 10.1109/ICSE.2015.82 10.1016/0010-0285(87)90007-7 10.1145/2103656.2103665 10.1145/2611286.2611290 10.1109/ICSE.2007.85 10.1109/TSE.2010.47 10.1007/978-3-662-44202-9_17 10.1109/32.601073 10.1145/2884781.2884815 10.1145/2814270.2814311 10.1145/258948.258973 10.1145/1368088.1368195 10.1145/2501654.2501666 10.1145/2089155.2089161 10.1145/2414721.2414723 10.1007/978-3-540-44833-4_6 10.1007/11693024_20 10.1145/1134285.1134355 10.1109/TE.2015.2487341 10.1109/ICSE.2012.6227200 10.1145/1985793.1985868 10.1109/ICSE.1994.296764 10.1109/ICSE.2007.92 10.1145/97945.97957 10.1145/2577080.2577083 10.1109/ICPC.2011.46 10.1007/978-3-642-55099-7_7 10.1145/2786805.2786864 10.1109/ICPC.2007.17 10.1007/978-1-4471-0111-6 10.1145/2635868.2635895 10.1109/ICPC.2015.35 10.1007/978-3-642-39038-8_29 10.1007/BFb0056621 10.1145/2578153.2578218 10.1109/ICSE.2005.1553555 10.1145/75722.75734 10.1145/1640089.1640091 10.1145/2509136.2509528 10.1109/2.876288 10.1145/3001878.3001884 10.1007/s11219-006-9216-4 10.1109/MS.2014.101 10.1109/ICSE.2012.6227188 10.1145/1287624.1287675 |
| ContentType | Journal Article |
| Copyright | Copyright IEEE Computer Society 2017 |
| Copyright_xml | – notice: Copyright IEEE Computer Society 2017 |
| DBID | 97E RIA RIE AAYXX CITATION JQ2 K9. |
| DOI | 10.1109/TSE.2017.2655524 |
| DatabaseName | IEEE All-Society Periodicals Package (ASPP) 2005–Present IEEE All-Society Periodicals Package (ASPP) 1998–Present IEEE Xplore CrossRef ProQuest Computer Science Collection ProQuest Health & Medical Complete (Alumni) |
| DatabaseTitle | CrossRef ProQuest Health & Medical Complete (Alumni) ProQuest Computer Science Collection |
| DatabaseTitleList | ProQuest Health & Medical Complete (Alumni) |
| Database_xml | – sequence: 1 dbid: RIE name: IEEE Xplore url: https://ieeexplore.ieee.org/ sourceTypes: Publisher |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISSN | 1939-3520 |
| EndPage | 1143 |
| ExternalDocumentID | 10_1109_TSE_2017_2655524 7827078 |
| Genre | orig-research |
| GrantInformation_xml | – fundername: German Federal Ministry of Education and Research grantid: 01IS12054 – fundername: European Research Council grantid: 321217 funderid: 10.13039/501100000781 |
| GroupedDBID | --Z -DZ -~X .DC 0R~ 29I 4.4 5GY 6IK 85S 8R4 8R5 97E AAJGR AARMG AASAJ AAWTH ABAZT ABPPZ ABQJQ ABVLG ACGFO ACGOD ACIWK ACNCT AENEX AGQYO AHBIQ AKJIK AKQYR ALMA_UNASSIGNED_HOLDINGS ASUFR ATWAV BEFXN BFFAM BGNUA BKEBE BKOMP BPEOZ CS3 DU5 EBS EDO EJD HZ~ I-F IEDLZ IFIPE IPLJI JAVBF LAI M43 MS~ O9- OCL P2P Q2X RIA RIE RNS RXW S10 TAE TN5 TWZ UHB UPT WH7 YZZ AAYXX CITATION JQ2 K9. |
| ID | FETCH-LOGICAL-c221t-b7488185c9d2e6438e2a94c9853d0b884b8333732cf489d6c165f737f4c244a33 |
| IEDL.DBID | RIE |
| ISICitedReferencesCount | 17 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000418134800003&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| ISSN | 0098-5589 |
| IngestDate | Mon Oct 06 16:57:42 EDT 2025 Sat Nov 29 03:10:24 EST 2025 Tue Nov 18 22:21:57 EST 2025 Wed Aug 27 02:47:42 EDT 2025 |
| IsPeerReviewed | true |
| IsScholarly | true |
| Issue | 12 |
| Language | English |
| License | https://ieeexplore.ieee.org/Xplorehelp/downloads/license-information/IEEE.html |
| LinkModel | DirectLink |
| MergedId | FETCHMERGED-LOGICAL-c221t-b7488185c9d2e6438e2a94c9853d0b884b8333732cf489d6c165f737f4c244a33 |
| Notes | ObjectType-Article-1 SourceType-Scholarly Journals-1 ObjectType-Feature-2 content type line 14 |
| ORCID | 0000-0002-9324-8894 0000-0003-1856-9361 |
| PQID | 2174441908 |
| PQPubID | 21418 |
| PageCount | 19 |
| ParticipantIDs | crossref_primary_10_1109_TSE_2017_2655524 proquest_journals_2174441908 crossref_citationtrail_10_1109_TSE_2017_2655524 ieee_primary_7827078 |
| PublicationCentury | 2000 |
| PublicationDate | 2017-12-01 |
| PublicationDateYYYYMMDD | 2017-12-01 |
| PublicationDate_xml | – month: 12 year: 2017 text: 2017-12-01 day: 01 |
| PublicationDecade | 2010 |
| PublicationPlace | New York |
| PublicationPlace_xml | – name: New York |
| PublicationTitle | IEEE transactions on software engineering |
| PublicationTitleAbbrev | TSE |
| PublicationYear | 2017 |
| Publisher | IEEE IEEE Computer Society |
| Publisher_xml | – name: IEEE – name: IEEE Computer Society |
| References | ref57 ref56 ref12 ref59 ref58 ref52 ref55 ref11 ref54 ref17 ref16 ref19 (ref31) 0 ref51 ref50 abelson (ref14) 1996 ref46 letovsky (ref40) 1986 ref48 ref47 ref42 ref41 (ref13) 0 (ref45) 2014 ref49 maier (ref10) 2012 creswell (ref15) 2012 ref7 ref9 ref4 soloway (ref39) 1989 ref3 ref6 ref5 (ref27) 0 (ref44) 0 ref35 (ref18) 0 (ref43) 0 ref34 ref37 ref36 ref30 ref33 ref32 ref2 ref1 ref38 juristo (ref23) 2010 ref71 ref70 ref72 ref68 ref24 ref67 gamma (ref8) 2000 ref26 ref69 ref25 ref64 ref20 ref63 ref66 ref22 ref65 ref21 ref28 ref29 newton (ref53) 2007 ref60 ref62 ref61 |
| References_xml | – year: 2010 ident: ref23 publication-title: Basics of Software Engineering Experimentation – ident: ref17 doi: 10.1145/1869459.1869462 – ident: ref30 doi: 10.1145/1806799.1806829 – ident: ref36 doi: 10.1145/2632320.2632344 – ident: ref47 doi: 10.1002/spe.941 – ident: ref46 doi: 10.1145/1823854.1823929 – ident: ref7 doi: 10.1007/978-1-4302-3748-8 – year: 0 ident: ref13 – year: 1996 ident: ref14 publication-title: Structure and Interpretation of Computer Programs – ident: ref64 doi: 10.1006/ijhc.1998.0236 – ident: ref58 doi: 10.1007/978-3-642-38493-6_16 – ident: ref22 doi: 10.1109/ICPC.2008.15 – ident: ref71 doi: 10.1145/1453101.1453117 – ident: ref63 doi: 10.1145/266399.266411 – ident: ref25 doi: 10.1145/2384616.2384666 – ident: ref51 doi: 10.1109/ICSE.2015.82 – ident: ref29 doi: 10.1016/0010-0285(87)90007-7 – ident: ref61 doi: 10.1145/2103656.2103665 – ident: ref59 doi: 10.1145/2611286.2611290 – year: 2000 ident: ref8 publication-title: Design Patterns Elements of Reusable Object-Oriented Software – ident: ref72 doi: 10.1109/ICSE.2007.85 – year: 0 ident: ref31 – ident: ref66 doi: 10.1109/TSE.2010.47 – ident: ref56 doi: 10.1007/978-3-662-44202-9_17 – ident: ref54 doi: 10.1109/32.601073 – ident: ref32 doi: 10.1145/2884781.2884815 – ident: ref57 doi: 10.1145/2814270.2814311 – ident: ref2 doi: 10.1145/258948.258973 – ident: ref19 doi: 10.1145/1368088.1368195 – ident: ref24 doi: 10.1145/1869459.1869462 – ident: ref11 doi: 10.1145/2501654.2501666 – year: 2012 ident: ref10 article-title: Deprecating the Observer Pattern with Scala.React – ident: ref26 doi: 10.1145/2089155.2089161 – ident: ref16 doi: 10.1145/2414721.2414723 – ident: ref52 doi: 10.1007/978-3-540-44833-4_6 – ident: ref3 doi: 10.1007/11693024_20 – start-page: 489 year: 2007 ident: ref53 article-title: The regiment macroprogramming system publication-title: Proc Int Conf Inf Process Sensor Netw – ident: ref33 doi: 10.1145/1134285.1134355 – ident: ref35 doi: 10.1109/TE.2015.2487341 – ident: ref67 doi: 10.1109/ICSE.2012.6227200 – ident: ref65 doi: 10.1145/1985793.1985868 – ident: ref41 doi: 10.1109/ICSE.1994.296764 – ident: ref70 doi: 10.1109/ICSE.2007.92 – ident: ref55 doi: 10.1145/97945.97957 – ident: ref5 doi: 10.1145/2577080.2577083 – ident: ref48 doi: 10.1109/ICPC.2011.46 – year: 0 ident: ref44 – ident: ref60 doi: 10.1007/978-3-642-55099-7_7 – ident: ref38 doi: 10.1145/2786805.2786864 – ident: ref50 doi: 10.1109/ICPC.2007.17 – ident: ref28 doi: 10.1007/978-1-4471-0111-6 – ident: ref12 doi: 10.1145/2635868.2635895 – ident: ref37 doi: 10.1109/ICPC.2015.35 – ident: ref6 doi: 10.1007/978-3-642-39038-8_29 – year: 0 ident: ref43 – year: 2014 ident: ref45 – year: 1986 ident: ref40 article-title: Cognitive processes in program comprehension – ident: ref1 doi: 10.1007/BFb0056621 – ident: ref34 doi: 10.1145/2578153.2578218 – ident: ref42 doi: 10.1109/ICSE.2005.1553555 – year: 1989 ident: ref39 article-title: Empirical studies of programming knowledge publication-title: Software Reusability doi: 10.1145/75722.75734 – ident: ref4 doi: 10.1145/1640089.1640091 – ident: ref49 doi: 10.1145/2509136.2509528 – ident: ref68 doi: 10.1109/2.876288 – ident: ref69 doi: 10.1145/3001878.3001884 – ident: ref62 doi: 10.1007/s11219-006-9216-4 – ident: ref9 doi: 10.1109/MS.2014.101 – year: 0 ident: ref18 – ident: ref21 doi: 10.1109/ICSE.2012.6227188 – year: 0 ident: ref27 – year: 2012 ident: ref15 publication-title: Qualitative Inquiry and Research Design Choosing among Five Approaches – ident: ref20 doi: 10.1145/1287624.1287675 |
| SSID | ssj0005775 ssib053395008 |
| Score | 2.3228302 |
| Snippet | Starting from the first investigations with strictly functional languages, reactive programming has been proposed as the programming paradigm for reactive... |
| SourceID | proquest crossref ieee |
| SourceType | Aggregation Database Enrichment Source Index Database Publisher |
| StartPage | 1125 |
| SubjectTerms | Applications programs controlled experiment Domains empirical study Languages Object oriented programming Programming Reactive programming Robot sensing systems Robotics Runtime software comprehension Software development |
| Title | On the Positive Effect of Reactive Programming on Software Comprehension: An Empirical Study |
| URI | https://ieeexplore.ieee.org/document/7827078 https://www.proquest.com/docview/2174441908 |
| Volume | 43 |
| WOSCitedRecordID | wos000418134800003&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| journalDatabaseRights | – providerCode: PRVIEE databaseName: IEEE Xplore customDbUrl: eissn: 1939-3520 dateEnd: 99991231 omitProxy: false ssIdentifier: ssj0005775 issn: 0098-5589 databaseCode: RIE dateStart: 19750101 isFulltext: true titleUrlDefault: https://ieeexplore.ieee.org/ providerName: IEEE |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1NS8QwEB1UPHjxW1y_yMGLYN02aZrEm8iKJ13cFTwIpUmnKLjtsrsq_nuTtF0RRfDWwySUvM68SfMyA3AsdK6RR0kQ6ZwGMSoWZLrIg0TlLrsVmhbGN5sQNzfy4UH1F-B0fhcGEb34DM_coz_Lzyvz6n6VdS2bueI0i7AoRFLf1fqScwjB2_qYnEvVHkmGqjsc9JyGS5zRhHNO428U5Huq_AjEnl2u1v73Xuuw2mSR5KKGfQMWsNyEtbZDA2kcdgseb0tiMzzS99KsNyR1sWJSFeQOMx_qSL9WaI0sh5GqJAMbl9-zCRI32wSfnMC9Ks_JRUl6o_GzryhCnPrwYxvur3rDy-ug6acQGEqjWaCF9VbLz0blFG0mIpFmKjbKMnYeailjLRljglFTxFLliYkSXggmitjYJCBjbAeWyqrEXSCYaGsYSUFpGBeJyayN5sYgo4Ul_LAD3XaJU9MUG3c9L15Sv-kIVWpBSR0oaQNKB07mI8Z1oY0_bLccCHO7Zv07cNCimDaeOE3dlsumfCqUe7-P2ocVN3ctUTmApdnkFQ9h2bzNnqeTI_-RfQKCm85T |
| linkProvider | IEEE |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1BT9swFH4ChgQXGANEGQwfdpm00MSOY3s3hFoxUbpq7aQekKLYeRFIkKBSQPx7bCfphECTdsvh2Yn8-fl7jj-_B_BV6Fwjj5Ig0jkNYlQsyHSRB4nKXXQrNC2MLzYhhkM5narREnxf3IVBRC8-w2P36M_y88o8uF9lXctmLjnNMnxwlbOa21p_BR1C8DZDJudStYeSoepOxj2n4hLHNOGc0_gVCfmqKm-WYs8v_c3_-7KPsNHEkeSkBn4LlrD8BJttjQbSuOw2XP4qiY3xyMiLsx6R1OmKSVWQ35j5xY6Mao3WrWUxUpVkbFfmp2yGxPU2wysnca_KH-SkJL3bu2ufU4Q4_eHzDvzp9yanZ0FTUSEwlEbzQAvrr5ahjcop2lhEIs1UbJTl7DzUUsZaMsYEo6aIpcoTEyW8EEwUsbFhQMbYLqyUVYl7QDDR1jCSgtIwLhKTWRvNjUFGC0v5YQe67RCnpkk37qpe3KR-2xGq1IKSOlDSBpQOfFu0uKtTbfzDdtuBsLBrxr8DBy2KaeOL96nbdNnpokK5_36rI1g7m1wM0sHP4flnWHfvqQUrB7Aynz3gIayax_n1_eyLn3AvbjzRnA |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=On+the+Positive+Effect+of+Reactive+Programming+on+Software+Comprehension%3A+An+Empirical+Study&rft.jtitle=IEEE+transactions+on+software+engineering&rft.au=Salvaneschi%2C+Guido&rft.au=Proksch%2C+Sebastian&rft.au=Amann%2C+Sven&rft.au=Nadi%2C+Sarah&rft.date=2017-12-01&rft.pub=IEEE&rft.issn=0098-5589&rft.volume=43&rft.issue=12&rft.spage=1125&rft.epage=1143&rft_id=info:doi/10.1109%2FTSE.2017.2655524&rft.externalDocID=7827078 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=0098-5589&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=0098-5589&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=0098-5589&client=summon |