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.
Similar content being viewed by others
Notes
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).
AJAX is a set of web development practices and techniques for enabling asynchronous web applications on the client-side (Garrett 2005)
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).
CSS is a set of style rules that apply visual properties to elements of a web document (Atkins et al. 2015)
They were 1573 when we first submitted the present paper.
We thank an anonymous reviewer for suggesting to look into UTAUT,
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.
Stol et al. (2016) have conveniently summarized the major proposals for grounded theory, including coding techniques.
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.
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.
Several implications emerged from the data, and we first report them near the relevant evidence.
See footnote 10.
References
AngularJS (2017) Angularjs. https://angularjs.org
Atkins TJ, Etemad EJ, Rivoal F (2015), Css snapshot 2015. Tech. rep. W3C. https://www.w3.org/TR/CSS/
Bennett J (2007) Choosing a JavaScript library. http://www.b-list.org/weblog/2007/jan/22/choosing-javascript-library/
Cheung SC, Orso A, Storey MA (eds) (2014) Software developers’ perceptions of productivity. In: The 22nd ACM SIGSOFT international symposium. ACM Press, New York
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
Creswell JW (2009) Research design: qualitative, quantitative, and mixed method approaches, 3 edn, vol 2. Sage Publications, Thousand Oaks
Cunha J, Moura HP, Vasconcellos F (2016) Decision-making in software project management: a systematic literature review. Procedia Comput Sci 100:947–954
Davis FD, Bagozzi RP, Warshaw PR (1989) User acceptance of computer technology: a comparison of two theoretical models. Manag Sci 35(8):982–1003
designzum.com (2017) designzum.com. http://designzum.com
Dojo (2017) Dojo. https://dojotoolkit.org
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
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
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
ExtJS (2017) Extjs. https://www.sencha.com/products/extjs/
Facebook (2017) Facebook. https://facebook.com
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
Fayad M, Schmidt DC (1997) Object-oriented application frameworks. Commun ACM 40(10):32–38. https://doi.org/10.1145/262793.262798
Garrett JJ (2005) Ajax: a new approach to web applications. Available at http://archive.is/NodKD
Geertz C (1973) The interpretation of cultures: selected essays, vol 1. Basic Books, New York
Github (2017) https://github.com
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
Glaser BG (2014) Choosing grounded theory. Grounded Theory Rev 13(2):3–19
Google (2017) Google plus. https://plus.google.com
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
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
Halstead M (1977) Elements of software science (operating and programming systems series). Elsevier Science Inc., New York
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
Heath H, Cowley S (2004) Developing a grounded theory approach: a comparison of glaser and strauss. Int J Nurs Stud 41(2):141–150
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
https://github.com (2017) Most starred github repositories. https://github.com/search?q=stars
Idemudia EC, Dasuki SI, Ogedebe P (2016) Factors that influence students– programming skills: a case study from a nigerian university. IJQRE 3(4):277
International Q (2012) Nvivo 10. http://www.qsrinternational.com/nvivo-product
jQuery (2017) jquery. https://jQuery.com
jsdb.io (2017) jsdb.io. http://jsdb.io
Jster.net (2017) Jster.net. http://jster.net
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
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
Langley A (1999) Strategies for theorizing from process data. Acad Manag Rev 24(4):691. https://doi.org/10.2307/259349
LinkedIn (2017) Linkedin. https://linkedin.com
McCabe TJ (1976) A complexity measure. IEEE Trans Softw Eng (4):308–320
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
Misra S, Cafer F (2012) Estimating quality of JavaScript. Int Arab J Inf Technol 9:535–543
Mohr LB (1982) Explaining organizational behavior. Jossey-Bass Inc, San Francisco
MooTools (2017) Mootools. http://mootools.net/
NodeJS (2017) Nodejs. https://nodejs.org
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)
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
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
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
Prototype (2017) Prototype. http://prototypejs.org
Reyes J (2010) How to Choose a Right JavaScript Framework. http://designreviver.com/tips/how-to-choose-a-right-javascript-framework/
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
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
Stol KJ, Ralph P, Fitzgerald B (2016) Grounded theory in software engineering research. In: The 38th international conference, pp 120–131
Strauss A, Corbin J (1994) Grounded theory methodology. Handb Qual Res 17:273–285
Strauss A, Corbin J (1998) Basics of qualitative research: techniques and procedures for developing grounded theory. SAGE Publications Inc, Thousand Oaks
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
test MSS (2017) Mootools slick speed test. https://github.com/mootools/slick/tree/master/speed
Tiobe (2015) Tiobe Index. http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Twitter (2017) Twitter. https://twitter.com
Van De Ven AH, Poole MS (1995) Explaining development and change in organizations. Acad Manag Rev 20(3):510–540
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/
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/
Venkatesh V, Morris MG, Davis GB, Davis FD (2003) User acceptance of information technology: toward a unified view. MIS Q 27(3):425–478
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
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
W3Techs (2014) Web Technology Surveys - Usage of JavaScript for websites. http://w3techs.com/technologies/details/cp-javascript/all/all
Walsh D (2007) 8 Considerations for choosing your JavaScript framework. http://davidwalsh.name/javascript-framework-considerations
Walsham G (2006) Doing interpretive research. Eur J Inf Syst 320–330. https://doi.org/10.1057/palgrave.ejis.3000589
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
YUI (2017) Yui. http://yuilibrary.com
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
Authors and Affiliations
Corresponding author
Additional information
Communicated by: Emerson Murphy-Hill
Appendix
Appendix
1.1 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.
How long have you been developing for the Web?
-
2.
Which was your first programming language for the Web?
-
3.
Which languages do you use for the front-end/back- end?
-
4.
Do you rely on any frameworks for developing? If yes which ones? If no, do you develop in pure JavaScript?
-
5.
When did you start learning Java/JavaScript?
-
6.
Have you ever used JavaScript frameworks? Which ones?
-
7.
Which libraries did you use?
-
8.
Why did you choose this scripting framework?
-
9.
What did you like most about this framework/library?
-
10.
How long did it take you to learn the framework?
-
11.
What do you think of the quality of the framework?
-
12.
Would you recommend this framework to others?
-
13.
Do you think the framework you used was mature enough? How?
-
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.
Which features similar to other frameworks did you include?
-
2.
How do you decide which new features to integrate into your framework?
-
3.
When did you decide to move from frameworks to pure JavaScript?
-
4.
Would you generally recommend pure JavaScript or frameworks?
Rights and permissions
About this article
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
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10664-018-9613-x