The Evolution of JavaScript Frameworks: Performance, Scalability, and Developers Experience

Authors

  • Sarath Krishna Mandava

Keywords:

JavaScript frameworks, React, Vue, Svelte, Angular, performance optimization, scalability, developer experience, single-page applications, virtual DOM, code splitting, server-side rendering, state management, component-based architecture, WebAssembly

Abstract

This research paper examines the evolution of JavaScript frameworks, with a particular focus on React, Vue, Svelte, and Angular. The study analyzes how these frameworks have progressed in terms of performance optimization, scalability, and overall developer experience. By investigating the trade-offs between different frameworks and predicting future trends, this paper aims to provide valuable insights for developers and organizations navigating the complex landscape of modern web development. The research encompasses historical context, technical advancements, comparative analysis, and future projections, offering a comprehensive overview of the state of JavaScript frameworks as of March 2022.

Downloads

Download data is not yet available.

References

Abdellatif, A. J. (2019). Vue Micro Front-End Architecture. Medium. https://medium.com/@abdellatif.jamil/vue-micro-front-end-architecture-1b9894ea859e

Abramov, D. (2018). Introducing Hooks. React Blog. https://reactjs.org/docs/hooks-intro.html

Angular. (2021). Angular Documentation. https://angular.io/docs

Aranda, J., Khomh, F., & Adams, B. (2021). The Evolution of Front-End Development: A Systematic Mapping Study. IEEE Transactions on Software Engineering, 47(9), 1936-1957.

Archibald, J. (2012). Application Cache is a Douchebag. A List Apart. https://alistapart.com/article/application-cache-is-a-douchebag/

Brito, G., Mombach, T., & Valente, M. T. (2019). Migrating to GraphQL: A Practical Assessment. In Proceedings of the 26th International Conference on Software Analysis, Evolution and Reengineering (SANER) (pp. 140-150). IEEE.

Charland, A., & Leroux, B. (2011). Mobile application development: web vs. native. Communications of the ACM, 54(5), 49-53.

Chedeau, C. (2013). React's diff algorithm. In Proceedings of the 2013 ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity (pp. 1-12).

Denicola, D. (2020). Understanding the event loop, callbacks, promises, and async/await in JavaScript. ACM SIGPLAN Notices, 55(8), 42-50.

Eich, B. (2008). Brendan Eich: JavaScript at Ten Years. https://brendaneich.com/2005/12/javascript-at-ten-years/

Facebook. (2021). React Documentation. https://reactjs.org/docs/getting-started.html

Fielding, R. T. (2000). Architectural Styles and the Design of Network-based Software Architectures. University of California, Irvine.

Fluin, S. (2020). Version 9 of Angular Now Available. Angular Blog. https://blog.angular.io/version-9-of-angular-now-available-project-ivy-has-arrived-23c97b63cfa3

Garrett, J. J. (2005). Ajax: A New Approach to Web Applications. Adaptive Path. http://adaptivepath.org/ideas/ajax-new-approach-web-applications/

Geers, M. (2020). Micro Frontends in Action. Manning Publications.

GitHub. (2021). GitHub Copilot. https://copilot.github.com/

Gizas, A. B., Christodoulou, S. P., & Papatheodorou, T. S. (2012). Comparative evaluation of javascript frameworks. In Proceedings of the 21st International Conference on World Wide Web (pp. 513-514).

Google. (2021). Angular Documentation. https://angular.io/docs

Graziotin, D., & Abrahamsson, P. (2013). Making sense out of a jungle of JavaScript frameworks. In International Conference on Product-Focused Software Process Improvement (pp. 334-337). Springer, Berlin, Heidelberg.

Green, B., & Seshadri, S. (2013). AngularJS. O'Reilly Media, Inc.

Haas, A., Rossberg, A., Schuff, D. L., Titzer, B. L., Holman, M., Gohman, D., ... & Bastien, J. F. (2017). Bringing the web up to speed with WebAssembly. In Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation (pp. 185-200).

Hansson, D. H. (2018). The Majestic Monolith. In Proceedings of the 40th International Conference on Software Engineering: New Ideas and Emerging Results (pp. 89-92).

Harris, R. (2016). Frameworks without the framework: why didn't we think of this sooner? Svelte Blog. https://svelte.dev/blog/frameworks-without-the-framework

Harris, R. (2019). Svelte 3: Rethinking reactivity. Svelte Blog. https://svelte.dev/blog/svelte-3-rethinking-reactivity

Jain, N., Bhansali, A., & Mehta, D. (2015). AngularJS: A modern MVC framework in JavaScript. Journal of Global Research in Computer Science, 5(12), 17-23.

Kambona, K., Boix, E. G., & De Meuter, W. (2013). An evaluation of reactive programming and promises for structuring collaborative web applications. In Proceedings of the 7th Workshop on Dynamic Languages and Applications (pp. 1-9).

Koushik, A. M., & Selvarani, R. (2019). A Study on Web Application Development using ReactJS Framework. International Journal of Engineering and Advanced Technology, 8(6), 1456-1460.

Layka, V., & Pollack, D. (2017). Beginning Spring 5: From Novice to Professional. Apress.

Lerner, R. M. (2020). Design Patterns in Modern JavaScript Development. Communications of the ACM, 63(5), 42-47.

Louridas, P. (2020). Static vs Dynamic Languages: A Literature Review. ACM Computing Surveys, 52(6), 1-38.

Majchrzak, T. A., Biørn-Hansen, A., & Grønli, T. M. (2018). Progressive web apps: the definite approach to cross-platform development?. In Proceedings of the 51st Hawaii International Conference on System Sciences.

Malviya, V. K., Saurav, S., & Gupta, A. (2013). On the assessment of architectures for web application development frameworks. In 2013 International Conference on Computer Communication and Informatics (pp. 1-7). IEEE.

Neuhaus, J. (2018). The deepening crisis in JavaScript framework churn. Medium. https://medium.com/@jonneuhaus/the-deepening-crisis-in-javascript-framework-churn-2efb4aa6d39a

NgRx. (2021). NgRx Documentation. https://ngrx.io/docs

Nielsen, J. (2012). Usability 101: Introduction to Usability. Nielsen Norman Group. https://www.nngroup.com/articles/usability-101-introduction-to-usability/

npm. (2021). npm package manager. https://www.npmjs.com/

Nuxt.js. (2021). Nuxt.js Documentation. https://nuxtjs.org/docs/2.x/get-started/installation

Occhino, T. (2013). React: Rethinking best practices. JSConf EU. https://www.youtube.com/watch?v=x7cQ3mrcKaY

Ogden, M., McKelvey, K., Madsen, M. B., & Fedor, S. (2018). Dat-Foundation for a Distributed Web. Open Science Framework.

Pande, N., Somani, A., Prasad, S., & Varshney, V. (2018). A study on the performance evaluation of javascript frameworks with respect to rendering time. In 2018 4th International Conference on Computing Communication and Automation (ICCCA) (pp. 1-6). IEEE.

Pawlik, M., Segal, J., Sharp, H., & Petre, M. (2015). Crowdsourcing scientific software documentation: a case study of the NumPy documentation project. Computing in Science & Engineering, 17(1), 28-36.

Pinna, F., Tonelli, R., Orrú, M., & Marchesi, M. (2018). A survey on the attention to source code in software engineering research. In 2018 44th Euromicro Conference on Software Engineering and Advanced Applications (SEAA) (pp. 304-311). IEEE.

Rauschmayer, A. (2019). JavaScript for impatient programmers. Independently published.

Redux. (2021). Redux Documentation. https://redux.js.org/

Reyes, V. C., Marasco, J., & Torres, J. M. (2020). A serverless framework for building event-driven microservices. In Proceedings of the 35th Annual ACM Symposium on Applied Computing (pp. 204-211).

Rollup. (2021). Rollup Documentation. https://rollupjs.org/guide/en/

Rossi, G., Urbieta, M., Ginzburg, J., Distante, D., & Garrido, A. (2016). Refactoring to Rich Internet Applications. A model-driven approach. Journal of Web Engineering, 15(5&6), 349-379.

Salas-Zárate, M. D. P., Hernández-Alcaraz, M. L., Valencia-García, R., & Gómez-Berbís, J. M. (2020). A study of the state-of-the-art in information systems development methodologies for cloud computing platforms. Applied Sciences, 10(17), 6131.

Savkin, V. (2016). Angular 2 is now simply Angular. Angular Blog. https://blog.angular.io/angular-2-is-now-simply-angular-8012a2646d8c

single-spa. (2021). single-spa Documentation. https://single-spa.js.org/docs/getting-started-overview

Svelte Society. (2021). Svelte Native. https://svelte-native.technology/

Svelte. (2021). Svelte Documentation. https://svelte.dev/docs

Vasa, R., Hoon, L., Mouzakis, K., & Noguchi, A. (2012). A preliminary analysis of mobile app user reviews. In Proceedings of the 24th Australian Computer-Human Interaction Conference (pp. 241-244).

Vercel. (2021). Next.js Documentation. https://nextjs.org/docs

Vue.js. (2021). Vue.js Documentation. https://vuejs.org/v2/guide/

W3C. (2014). HTML5: A vocabulary and associated APIs for HTML and XHTML. https://www.w3.org/TR/html5/

WebAssembly. (2021). WebAssembly Documentation. https://webassembly.org/

Webpack. (2021). Webpack Documentation. https://webpack.js.org/concepts/

Wroblewski, L. (2011). Mobile First. A Book Apart.

You, E. (2014). Vue.js: Lightweight, Simple & Powerful. https://vuejs.org/

You, E. (2020). Vue 3 is now in RC! Vue.js Blog. https://blog.vuejs.org/posts/vue-3-rc-release.html

Downloads

Published

05.07.2022

How to Cite

Sarath Krishna Mandava. (2022). The Evolution of JavaScript Frameworks: Performance, Scalability, and Developers Experience. International Journal of Intelligent Systems and Applications in Engineering, 10(2), 287 –. Retrieved from https://ijisae.org/index.php/IJISAE/article/view/7026

Issue

Section

Research Article