Abstract
Today’s web applications heavily employ JavaScript to cover wide parts of the applications’ front ends. The scripting language, often called the “lingua franca” of the web, is also becoming increasingly popular for building enterprise-grade applications. However, in practice, the language is criticized for being too unstructured, flawed and inadequate for such projects. In this contribution, the major problems with JavaScript as the language of choice for enterprise applications are analyzed and possible solutions to ensure the quality of such systems are discussed.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
References
Why javascript still sucks /r/programming (2012). http://www.reddit.com/r/programming/comments/14wk9o/why_javascript_still_sucks/
Java script sucks (2014). http://c2.com/cgi/wiki?JavaScriptSucks
Yourlanguagesucks (2014). https://wiki.theory.org/YourLanguageSucks#JavaScript_Sucks_because
Administrator. The this problem, 19 May 2014. http://www.i-programmer.info/programmer-puzzles/137-javascript/1922-the-this-problem.html
Hejlsberg, A., Lucco, S.: Typescript language specification. http://www.typescriptlang.org/Content/TypeScript%20Language%20Specification.pdf
Burke, J.: amdjs/amdjs-api, 27 May 2014. https://github.com/amdjs/amdjs-api/wiki
Charollais, P.: Final draft standard ECMA-262 edition 5.1, March 2011. (Revised 6)
Crockford, D.: Jslint, the javascript code quality tool, 08 April 2014. http://www.jslint.com/
Crockford, D.: JavaScript - The Good Parts: Working with the Shallow Grain of JavaScript. O’Reilly, Farnham (2008)
Dahlbom, B., Mathiassen, L.: Computers in Context: The Philosophy and Practice of Systems Design. NCC Blackwell, Cambridge, MA (1993)
Fard, A.M., Mesbah, A.: JSNose: detecting javascript code smells. In: IEEE 13th International Working Conference on Source Code Analysis and Manipulation (SCAM), pp. 116–125 (2013)
Foy, B.D.: What is enterprise software? 16 May 2014. http://www.perlmonks.org/?node_id=504043
Gamma, E.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional Computing Series. Addison-Wesley, Reading, Mass (1995)
Halstead, M.H.: Elements of Software Science. Operating and Programming Systems Series, vol. 2. Elsevier, New York (1977)
International Organization for Standardization. ISO/IEC 25000:2014 - systems and software engineering - systems and software quality requirements and evaluation (square) - guide to square, 19 May 2014. http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=64764
Kazman, R., Klein, M., Barbacci, M., Longstaff, T., Lipson, H., Carriere, J.: The architecture tradeoff analysis method. In: Fourth IEEE International Conference, pp. 68–78, 10–14 Aug 1998
MacCaw, A.: Developing JavaScript Web Applications. O’Reilly, Sebastopol, California (2011)
McCabe, T.J.: A complexity measure. IEEE Trans. Softw. Eng. 4, 308–320 (1976)
Mikkonen, T., Taivalsaari, A.: Using javascript as a real programming language (2007). http://www.activemode.com/webroot/Workers/ActiveTraining/Programming%5CJavascript_AsProgrammingLanguage.pdf
Nitze, A., Schmietendorf, A.: Modularity of javascript libraries and frameworks in modern web applications. In: Wuksch, D., Peischl, B., Kop, C. (eds.) Selected Topics to the User Conference on Software Quality, Test and Innovation (ASQT 2014), OCG, Klagenfurt, AT (2014)
Node.js. npm, 16 May 2014. https://www.npmjs.org/
Ocariza, F., Bajaj, K., Pattabiraman, K., Mesbah, A.: An empirical study of client-side javascript bugs. In: ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM), pp. 55–64 (2013)
Ocariza Jr., F.S., Pattabiraman, K., Zorn, B.: Javascript errors in the wild: an empirical study. In: IEEE 22nd International Symposium on Software Reliability Engineering (ISSRE), pp. 100–109 (2011)
Osmani, A.: Learning JavaScript Design Patterns. O’Reilly Media, Sebastopol, CA (2012)
Richards, G., Lebresne, S., Burg, B., Vitek, J.: An analysis of the dynamic behavior of javascript programs. In: Zorn, B., Aiken, A. (eds.) The 2010 ACM SIGPLAN Conference, pp. 1–12 (2010)
Severance, C.: Javascript: designing a language in 10 days. Comput. 45(2), 7–8 (2012)
Stefanov, S.: JavaScript Patterns. O’Reilly, Sebastopol, CA (2010)
Swift, J.: Javascript developer survey 2013, 23 Dec 2013. http://www.i-programmer.info/news/167-javascript/6746-javascript-developer-survey-2013.html
Szegedi, A.: Javascript in the enterprise. Presentation at QCon (2009)
TIOBE Software. Tiobe index, 05 June 2014. http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Way, J.: Top 10 things that javascript got wrong - tuts+ code tutorial (2010). http://code.tutsplus.com/tutorials/top-10-things-that-javascript-got-wrong-net-9266
Zakai, A.: Emscripten: an llvm-to-javascript compiler (2011). http://davideglintine-new.googlecode.com/hg/docs/paper.pdf
Zakas, N.C.: Maintainable Javascript. O’Reilly, Sebastopol, CA (2012). (Revised edition)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer International Publishing Switzerland
About this paper
Cite this paper
Nitze, A. (2015). Evaluation of JavaScript Quality Issues and Solutions for Enterprise Application Development. In: Winkler, D., Biffl, S., Bergsmann, J. (eds) Software Quality. Software and Systems Quality in Distributed and Mobile Environments. SWQD 2015. Lecture Notes in Business Information Processing, vol 200. Springer, Cham. https://doi.org/10.1007/978-3-319-13251-8_7
Download citation
DOI: https://doi.org/10.1007/978-3-319-13251-8_7
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-13250-1
Online ISBN: 978-3-319-13251-8
eBook Packages: Computer ScienceComputer Science (R0)