Factors and actors leading to the adoption of a JavaScript framework

Abstract

The increasing popularity of JavaScript has led to a variety of JavaScript frameworks that aim to help developers to address programming tasks. However, the number of JavaScript frameworks has risen rapidly to thousands of versions. It is challenging for practitioners to identify the frameworks that best fit their needs and to develop new ones which fit such needs. Furthermore, there is a lack of knowledge regarding what drives developers toward the choice. This paper explores the factors and actors that lead to the choice of a JavaScript framework. We conducted a qualitative interpretive study of semi-structured interviews. We interviewed 18 decision makers regarding the JavaScript framework selection, up to reaching theoretical saturation. Through coding of the interview responses, we offer a model of desirable JavaScript framework adoption factors. The factors are grouped into categories that are derived via the Unified Theory of Acceptance and Use of Technology. The factors are performance expectancy (performance, size), effort expectancy (automatization, learnability, complexity, understandability), social influence (competitor analysis, collegial advice, community size, community responsiveness), facilitating conditions (suitability, updates, modularity, isolation, extensibility), and price value. A combination of four actors, which are customer, developer, team, and team leader, leads to the choice. Our model contributes to the body of knowledge related to the adoption of technology by software engineers. As a practical implication, our model is useful for decision makers when evaluating JavaScript frameworks, as well as for developers for producing desirable frameworks.

This is a preview of subscription content, log in to check access.

Fig. 1
Fig. 2

Notes

  1. 1.

    DOM is an application programming interface (API) set and a model that defines the logical structure of web documents and the way a document is accessed and manipulated (van Kesteren et al. 2015).

  2. 2.

    AJAX is a set of web development practices and techniques for enabling asynchronous web applications on the client-side (Garrett 2005)

  3. 3.

    XMLHttpRequest is a specification for an API that provides client-side functionality for transferring data between a client and a server (van Kesteren et al. 2014).

  4. 4.

    CSS is a set of style rules that apply visual properties to elements of a web document (Atkins et al. 2015)

  5. 5.

    They were 1573 when we first submitted the present paper.

  6. 6.

    We thank an anonymous reviewer for suggesting to look into UTAUT,

  7. 7.

    Mediating factors to technology adoption are gender, age, experience, and voluntariness of use (Venkatesh et al. 2003). We do not consider these mediating factors as we do not test the theory in this study.

  8. 8.

    Stol et al. (2016) have conveniently summarized the major proposals for grounded theory, including coding techniques.

  9. 9.

    Our quotations are verbatim excerpts, except for spelling and punctuation corrections. If we applied changes to wording (for comprehensibility), these are indicated by square brackets.

  10. 10.

    One reason for our reworked definition is that, in our interpretation of the data, our participants saw their job-related productivity proxied both by application performance and ease of their daily operations, that is effort expectancy as we describe in the next sub-section. This is in line with the general open debate regarding what developers’ productivity actually is (see for example, Cheung et al. 2014; Fagerholm et al. 2015; Kettunen2013), as well as when applying UTAUT in the context of software engineering, where performance expectancy can be interchanged with effort expectancy (Hong et al. 2011; Stefi 2015). We opted to support our participants both ways, and concentrate gains in the product’s performance as performance expectancy, while ease of use and programming effort belong to effort expectancy in the next sub-section.

  11. 11.

    Several implications emerged from the data, and we first report them near the relevant evidence.

  12. 12.

    See footnote 10.

References

  1. AngularJS (2017) Angularjs. https://angularjs.org

  2. Atkins TJ, Etemad EJ, Rivoal F (2015), Css snapshot 2015. Tech. rep. W3C. https://www.w3.org/TR/CSS/

  3. Bennett J (2007) Choosing a JavaScript library. http://www.b-list.org/weblog/2007/jan/22/choosing-javascript-library/

  4. Cheung SC, Orso A, Storey MA (eds) (2014) Software developers’ perceptions of productivity. In: The 22nd ACM SIGSOFT international symposium. ACM Press, New York

  5. Craver N (2017) New York is so cool for programmers, they even have this sign that keeps track of how many javascript frameworks are out there. https://web.archive.org/web/20170717154926/https:/twitter.com/Nick_Craver/status/886192620065705984

  6. Creswell JW (2009) Research design: qualitative, quantitative, and mixed method approaches, 3 edn, vol 2. Sage Publications, Thousand Oaks

    Google Scholar 

  7. Cunha J, Moura HP, Vasconcellos F (2016) Decision-making in software project management: a systematic literature review. Procedia Comput Sci 100:947–954

    Article  Google Scholar 

  8. Davis FD, Bagozzi RP, Warshaw PR (1989) User acceptance of computer technology: a comparison of two theoretical models. Manag Sci 35(8):982–1003

    Article  Google Scholar 

  9. designzum.com (2017) designzum.com. http://designzum.com

  10. Dojo (2017) Dojo. https://dojotoolkit.org

  11. Doukakis S, Giannakos MN, Koilias C, Vlamos P (2013) Measuring students– acceptance and confidence on algorithms and programming: the impact of the engagement with cs on secondary education. Inf Educ 12(2):207–219

    Google Scholar 

  12. Dreyfus HL, Dreyfus SE, Zadeh LA (1987) Mind over machine: the power of human intuition and expertise in the era of the computer. IEEE Exp 2. https://doi.org/10.1109/MEX.1987.4307079

    Article  Google Scholar 

  13. Easterbrook S, Singer J, Storey MA, Damian D (2008) Selecting empirical methods for software engineering research. In: Guide to advanced empirical software engineering. Springer, Berlin, pp 285–311, (to appear in print), https://doi.org/10.1007/978-1-84800-044-5_11

    Google Scholar 

  14. ExtJS (2017) Extjs. https://www.sencha.com/products/extjs/

  15. Facebook (2017) Facebook. https://facebook.com

  16. Fagerholm F, Ikonen M, Kettunen P, Münch J, Roto V, Abrahamsson P (2015) Performance alignment work: how software developers experience the continuous adaptation of team performance in lean and agile environments. Inf Softw Technol 64:132–147

    Article  Google Scholar 

  17. Fayad M, Schmidt DC (1997) Object-oriented application frameworks. Commun ACM 40(10):32–38. https://doi.org/10.1145/262793.262798

    Article  Google Scholar 

  18. Garrett JJ (2005) Ajax: a new approach to web applications. Available at http://archive.is/NodKD

  19. Geertz C (1973) The interpretation of cultures: selected essays, vol 1. Basic Books, New York

    Google Scholar 

  20. Github (2017) https://github.com

  21. Gizas AB, Christodoulou SP, Papatheodorou TS (2012) Comparative evaluation of javascript frameworks. In: Proceedings of the 21st international conference companion on World Wide Web, pp 513–514

  22. Glaser BG (2014) Choosing grounded theory. Grounded Theory Rev 13(2):3–19

    Google Scholar 

  23. Google (2017) Google plus. https://plus.google.com

  24. Graziotin D, Abrahamsson P (2013) Making sense out of a jungle of javascript frameworks—towards a practitioner-friendly comparative analysis. In: Product-focused software process improvement—14th international conference, PROFES 2013, Paphos, Cyprus, June 12–14, 2013. Proceedings. https://doi.org/10.1007/978-3-642-39259-7_28, pp 334–337

    Google Scholar 

  25. Guest G (2006) How many interviews are enough?: An experiment with data saturation and variability. Field Methods 18(1):59–82. https://doi.org/10.1177/1525822X05279903

    Article  Google Scholar 

  26. Halstead M (1977) Elements of software science (operating and programming systems series). Elsevier Science Inc., New York

    Google Scholar 

  27. Hardgrave B, Johnson R (2003) Toward an information systems development acceptance model: the case of object-oriented systems development. IEEE Trans Eng Manag 50(3):322–336

    Article  Google Scholar 

  28. Heath H, Cowley S (2004) Developing a grounded theory approach: a comparison of glaser and strauss. Int J Nurs Stud 41(2):141–150

    Article  Google Scholar 

  29. Hong W, Thong JYL, Chasalow LC, Dhillon G (2011) User acceptance of agile information systems: a model and empirical test. J Manag Inf Syst 28(1):235–272

    Article  Google Scholar 

  30. https://github.com (2017) Most starred github repositories. https://github.com/search?q=stars

  31. Idemudia EC, Dasuki SI, Ogedebe P (2016) Factors that influence students– programming skills: a case study from a nigerian university. IJQRE 3(4):277

    Article  Google Scholar 

  32. International Q (2012) Nvivo 10. http://www.qsrinternational.com/nvivo-product

  33. jQuery (2017) jquery. https://jQuery.com

  34. jsdb.io (2017) jsdb.io. http://jsdb.io

  35. Jster.net (2017) Jster.net. http://jster.net

  36. Kettunen P (2013) The many facets of high-performing software teams: a capability-based analysis approach. In: Systems, software and services process improvement, pp 131–142

    Google Scholar 

  37. Klein HK, Myers MD (1999) A set of principles for conducting and evaluating interpretive field studies in information systems. MIS Q. - Special issue on intensive research in information systems 23(1):67. https://doi.org/10.2307/249410

    Article  Google Scholar 

  38. Langley A (1999) Strategies for theorizing from process data. Acad Manag Rev 24(4):691. https://doi.org/10.2307/259349

    Article  Google Scholar 

  39. LinkedIn (2017) Linkedin. https://linkedin.com

  40. McCabe TJ (1976) A complexity measure. IEEE Trans Softw Eng (4):308–320

    MathSciNet  Article  Google Scholar 

  41. McNamara C (1999) General guidelines for conducting interviews. In: Field guide to consulting and organizational development. Authenticity Consulting, LLC. http://managementhelp.org/businessresearch/interviews.htm

  42. Misra S, Cafer F (2012) Estimating quality of JavaScript. Int Arab J Inf Technol 9:535–543

    Google Scholar 

  43. Mohr LB (1982) Explaining organizational behavior. Jossey-Bass Inc, San Francisco

    Google Scholar 

  44. MooTools (2017) Mootools. http://mootools.net/

  45. NodeJS (2017) Nodejs. https://nodejs.org

  46. Ocariza F, Bajaj K, Pattabiraman K, Mesbah A (2013) An empirical study of client-side JavaScript Bugs. In: 2013 ACM IEEE international symposium on empirical software engineering and measurement, pp 55–64, https://doi.org/10.1109/ESEM.2013.18, (to appear in print)

  47. Papadopoulos GA, Kuflik T, Chen F, Duarte C, Fu WT (eds) (2017) GUI design for IDE command recommendations, vol. the 22nd international conference. ACM Press, New York

  48. Pfeffer J (1983) Reviewed work: explaining organizational behavior. By Lawrence B. Mohr. Adm Sci Q 28(2):321. https://doi.org/10.2307/2392635. http://www.jstor.org/stable/2392635?origin=crossref

    Article  Google Scholar 

  49. Polančič G, Heričko M, Rozman I (2010) An empirical examination of application frameworks success based on technology acceptance model. J Syst Softw 83 (4):574–584

    Article  Google Scholar 

  50. Prototype (2017) Prototype. http://prototypejs.org

  51. Reyes J (2010) How to Choose a Right JavaScript Framework. http://designreviver.com/tips/how-to-choose-a-right-javascript-framework/

  52. Robins A, Rountree J, Rountree N (2003) Learning and teaching programming: a review and discussion. Comput Sci Educ 13:137–172. https://doi.org/10.1076/csed.13.2.137.14200

    Article  Google Scholar 

  53. Stefi A (2015) Do developers make unbiased decisions?—the effect of mindfulness and not-invented-here bias on the adoption of software components. ECIS 2015 Completed Research Papers, p 175

  54. Stol KJ, Ralph P, Fitzgerald B (2016) Grounded theory in software engineering research. In: The 38th international conference, pp 120–131

  55. Strauss A, Corbin J (1994) Grounded theory methodology. Handb Qual Res 17:273–285

    Google Scholar 

  56. Strauss A, Corbin J (1998) Basics of qualitative research: techniques and procedures for developing grounded theory. SAGE Publications Inc, Thousand Oaks

    Google Scholar 

  57. Strauss A, Corbin J (2008) Basics of qualitative research, 3rd edn: techniques and procedures for developing grounded theory, vol 3. SAGE Publications, Inc., Thousand Oaks. https://doi.org/10.4135/9781452230153

  58. test MSS (2017) Mootools slick speed test. https://github.com/mootools/slick/tree/master/speed

  59. Tiobe (2015) Tiobe Index. http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

  60. Twitter (2017) Twitter. https://twitter.com

  61. Van De Ven AH, Poole MS (1995) Explaining development and change in organizations. Acad Manag Rev 20(3):510–540

    Article  Google Scholar 

  62. van Kesteren A, Aubourg J, Song J, Steen HRM (2014) Xmlhttprequest level 1. Tech. rep., W3C. https://www.w3.org/TR/2014/WD-XMLHttpRequest-20140130/

  63. van Kesteren A, Gregor A, Ms2ger, Russell A, Berjon R (2015) W3c dom4. Tech. rep. W3C. http://www.w3.org/TR/2015/REC-dom-20151119/

  64. Venkatesh V, Morris MG, Davis GB, Davis FD (2003) User acceptance of information technology: toward a unified view. MIS Q 27(3):425–478

    Article  Google Scholar 

  65. Venkatesh V, Thong JYL, Xu X (2012) Consumer acceptance and use of information technology: extending the unified theory of acceptance and use of technology. MIS Q 36(1):157–178

    Article  Google Scholar 

  66. Vishwanath A, Harrison B, Ng JY (2016) Understanding how social-behavioural science theory can explain the design of software websites, vol. 2016. In: 49th Hawaii international conference on system sciences (HICSS). IEEE

  67. W3Techs (2014) Web Technology Surveys - Usage of JavaScript for websites. http://w3techs.com/technologies/details/cp-javascript/all/all

  68. Walsh D (2007) 8 Considerations for choosing your JavaScript framework. http://davidwalsh.name/javascript-framework-considerations

  69. Walsham G (2006) Doing interpretive research. Eur J Inf Syst 320–330. https://doi.org/10.1057/palgrave.ejis.3000589

    Article  Google Scholar 

  70. Williams MD, Rana NP, Dwivedi YK (2015) The unified theory of acceptance and use of technology (utaut): a literature review. J Enterp Inf Manag 28(3):443–488

    Article  Google Scholar 

  71. YUI (2017) Yui. http://yuilibrary.com

Download references

Acknowledgments

We would like to thank all the participants of this study.

Our gratitude goes to the editor and three anonymous reviewers whose feedback improved our original efforts immeasurably.

Daniel Graziotin has been supported by the Alexander von Humboldt (AvH) Foundation.

Author information

Affiliations

Authors

Corresponding author

Correspondence to Daniel Graziotin.

Additional information

Communicated by: Emerson Murphy-Hill

Appendix

Appendix

Interview skeleton

We developed a generic open-ended interview skeleton, which was maintained to guide the interviewer toward the logical flow of the questions to be asked.

  1. 1.

    How long have you been developing for the Web?

  2. 2.

    Which was your first programming language for the Web?

  3. 3.

    Which languages do you use for the front-end/back- end?

  4. 4.

    Do you rely on any frameworks for developing? If yes which ones? If no, do you develop in pure JavaScript?

  5. 5.

    When did you start learning Java/JavaScript?

  6. 6.

    Have you ever used JavaScript frameworks? Which ones?

  7. 7.

    Which libraries did you use?

  8. 8.

    Why did you choose this scripting framework?

  9. 9.

    What did you like most about this framework/library?

  10. 10.

    How long did it take you to learn the framework?

  11. 11.

    What do you think of the quality of the framework?

  12. 12.

    Would you recommend this framework to others?

  13. 13.

    Do you think the framework you used was mature enough? How?

  14. 14.

    Were there any functionalities that you liked or disliked?

The question draft was used as a guideline for several interviews, except for special cases, such as those where the participants had developed their own JavaScript frameworks or were not using any JavaScript framework but were programming in pure JavaScript language. In these cases they were posed questions like:

  1. 1.

    Which features similar to other frameworks did you include?

  2. 2.

    How do you decide which new features to integrate into your framework?

  3. 3.

    When did you decide to move from frameworks to pure JavaScript?

  4. 4.

    Would you generally recommend pure JavaScript or frameworks?

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Pano, A., Graziotin, D. & Abrahamsson, P. Factors and actors leading to the adoption of a JavaScript framework. Empir Software Eng 23, 3503–3534 (2018). https://doi.org/10.1007/s10664-018-9613-x

Download citation

Keywords

  • JavaScript
  • Programming frameworks
  • Decision making
  • Technology adoption
  • Human aspects of software development
  • Qualitative research
  • Interpretivism