A large-scale empirical study of code smells in JavaScript projects

  • Published: 22 March 2019
  • Volume 27 , pages 1271–1314, ( 2019 )

Cite this article

  • David Johannes 1 ,
  • Foutse Khomh   ORCID: orcid.org/0000-0002-5704-4173 1 &
  • Giuliano Antoniol 2  

1623 Accesses

15 Citations

2 Altmetric

Explore all metrics

JavaScript is a powerful scripting programming language that has gained a lot of attention this past decade. Initially used exclusively for client-side web development, it has evolved to become one of the most popular programming languages, with developers now using it for both client-side and server-side application development. Similar to applications written in other programming languages, JavaScript applications contain code smells , which are poor design choices that can negatively impact the quality of an application. In this paper, we perform a large-scale study of JavaScript code smells in server-side and client-side applications, with the aim to understand how they impact the fault-proneness of applications, and how they are evolved by the developers of the applications. We detect 12 types of code smells in 1807 releases of 15 popular JavaScript applications (i.e., express, grunt, bower, less.js, request, jquery, vue, ramda, leaflet, hexo, chart, webpack, webtorrent, moment, and riot) and perform survival analysis, comparing the time until a fault occurrence, in files containing code smells and files without code smells. We also examine the introduction and removal of the code smells in the applications using survival models. All our analysis are conducted at the granularity of the line of code. Results show that (1) on average, files without code smells have hazard rates at least 33% lower than files with code smells. (2) Among the studied smells, “Variable Re-assign,” “Assignment In Conditional statements,” and “Complex Code” smells have the highest fault hazard rates. (3) Code smells, and particularly “Variable Re-assign,” are often introduced in the application when the files containing them are created. Moreover, they tend to remain in the applications for a long period of time; “Variable Re-assign” is also the most prevalent code smell. Overall, code smells affect negatively the quality of JavaScript applications and developers should consider tracking and removing them early on before the release of applications to the public.

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

Access this article

Price includes VAT (Russian Federation)

Instant access to the full article PDF.

Rent this article via DeepDyve

Institutional subscriptions

research paper for javascript

https://github.com/expressjs/express

https://expressjs.com/en/resources/companies-using-express.html

https://github.com/bower/bower

https://engineering.twitter.com/opensource

https://github.com/less/less.js

Cascading Style Sheet

https://github.com/request/request

https://github.com/gruntjs/grunt

https://github.com/jquery/jquery

https://github.com/vuejs/vue

https://github.com/ramda/ramda

https://github.com/Leaflet/Leaflet

https://github.com/hexojs/hexo

https://github.com/chartjs/Chart.js

https://github.com/webpack/webpack

https://github.com/webtorrent/webtorrent

https://github.com/moment/moment

https://github.com/riot/riot

https://github.com/DavidJohannesWall/smells_project

https://github.com/mishoo/UglifyJS

http://eslint.org/

https://github.com/eslint/espree

https://github.com/estree/estree

https://docs.python.org/2/library/difflib.html

Abbes, M., Khomh, F., Guéhéneuc, Y.-G., Antoniol, G. (2011). An empirical study of the impact of two antipatterns, blob and spaghetti code, on program comprehension. In 2011 15th European conference on software maintenance and reengineering (CSMR) (pp. 181–190).

Bower. (2016). About Bower [Online; accessed 4-October-2016]. [Online]. Available: https://bower.io/docs/about/ .

GitHub. (2016a). Airbnb JavaScript style guide [Online; accessed 17-October-2016]. [Online]. Available: https://github.com/airbnb/javascript .

Baxter, I.D., Yahin, A., Moura, L., Sant’Anna, M., Bier, L. (1998). Clone detection using abstract syntax trees. In 1998. Proceedings of the International Conference on Software Maintenance. IEEE (pp. 368–377).

Brodu, E., Frénot, S., Oblé, F. (2015). Toward automatic update from callbacks to promises. In Proceedings of the 1st Workshop on All-Web Real-Time Systems. ACM (p. 1).

Chatzigeorgiou, A., & Manakos, A. (2010). Investigating the evolution of bad smells in object-oriented code. In 2010 7th International Conference on the Quality of Information and Communications Technology (QUATIC). IEEE (pp. 106–115).

D’Ambros, M., Bacchelli, A., Lanza, M. (2010). On the impact of design flaws on software defects. In 2010 10th International Conference on Quality Software (QSIC). IEEE (pp. 23–31).

da Costa, D.A., McIntosh, S., Shang, W., Kulesza, U., Coelho, R., Hassan, A. E. (2017). A framework for evaluating the results of the szz approach for identifying bug-introducing changes. IEEE Transactions on Software Engineering , 43 (7), 641–657.

Article   Google Scholar  

Eslint. (2015). The pluggable linting utility for javascript and jsx. http://eslint.org/ .

Fard, A.M., & Mesbah, A. (2013). Jsnose: Detecting javascript code smells. In 2013 IEEE 13th International Working Conference on Source Code Analysis and Manipulation (SCAM). IEEE (pp. 116– 125).

Fischer, M., Pinzger, M., Gall, H. (2003). Populating a release history database from version control and bug tracking systems. In 2003. ICSM 2003. Proceedings. International Conference on Software Maintenance. IEEE (pp. 23–32).

Fontana, F.A., Braione, P., Zanoni, M. (2012). Automatic detection of bad smells in code: an experimental assessment. Journal of Object Technology , 11 (2), 5–1.

Google Scholar  

Fowler, M. (1997). Refactoring: improving the design of existing code. In 11th European Conference. Jyväskylä, Finland .

Fox, J., & Weisberg, S. (2010). An R companion to applied regression Sage.

Gallaba, K., Mesbah, A., Beschastnikh, I. (2015). Don’t call us, we’ll call you: characterizing callbacks in Javascript. In 2015 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM). IEEE (pp. 1–10).

Gatrell, M., & Counsell, S. (2015). The effect of refactoring on change and fault-proneness in commercial c# software. Science of Computer Programming , 102 , 44–56.

Gamma, E., Helm, R., Johnson, R., Vlissides, J. (1995). Design patterns: elements of reusable object oriented software.

GitHut. (2016). Discover languages in GitHub [Online; accessed 11-August-2016]. [Online]. Available: http://githut.info/ .

Jaafar, F., Guéhéneuc, Y.-G., Hamel, S., Khomh, F. (2013). Mining the relationship between anti-patterns dependencies and fault-proneness. In WCRE (pp. 351–360).

jQuery. (2016). jQuery JavaScript style guide [Online; accessed 17-October-2016]. [Online]. Available: https://contribute.jquery.org/style-guide/js/ .

JSLint. (2019). JSLint: the JavaScript code quality tool. http://www.jslint.com .

JSHint. (2019). JSHint: a static code analysis tool for JavaScript. http://jshint.com/ .

Khomh, F., Vaucher, S., Guéhéneuc, Y.-G., Sahraoui, H. (2011). BDTEX: a GQM-based Bayesian approach for the detection of antipatterns. Journal of Systems and Software , 84 (4), 559– 572.

Khomh, F., Penta, M.D., Guéhéneuc, Y.-G., Antoniol, G. (2012). An exploratory study of the impact of antipatterns on class change- and fault-proneness. Empirical Software Engineering , 17 (3), 243–275. [Online]. Available: https://doi.org/10.1007/s10664-011-9171-y .

Khomh, F., Di Penta, M., Guéhéneuc, Y.-G., Antoniol, G. (2012). An exploratory study of the impact of antipatterns on class change-and fault-proneness. Empirical Software Engineering , 17 (3), 243–275.

Koru, A.G., Zhang, D., Liu, H. (2007). Modeling the effect of size on defect proneness for open-source software. In Proceedings of the 3rd International Workshop on Predictor Models in Software Engineering. IEEE Computer Society (p. 10).

Koru, A. G., El Emam, K., Zhang, D., Liu, H., Mathew, D. (2008). Theory of relative defect proneness. Empirical Software Engineering , 13 (5), 473–498.

Mardan, A. (2014). Express.. js Guide: the comprehensive book on express. js. Azat Mardan.

Marinescu, R. (2004). Detection strategies: metrics-based rules for detecting design flaws. In 2004. Proceedings. 20th IEEE International Conference on Software Maintenance. IEEE (pp. 350–359).

Marinescu, R., & Lanza, M. (2006). Object-oriented metrics in practice.

Mazinanian, D., & Tsantalis, N. (2016). Migrating cascading style sheets to preprocessors by introducing mixins. In Proceedings of the 31st IEEE/ACM International Cconference on Automated Software Engineering. ACM (pp. 672–683).

McCabe, T.J. (1976). A complexity measure. IEEE Transactions on software Engineering , 4 , 308–320.

Article   MathSciNet   MATH   Google Scholar  

Neamtiu, I., Foster, J.S., Hicks, M. (2005). Understanding source code evolution using abstract syntax tree matching. ACM SIGSOFT Software Engineering Notes , 30 (4), 1–5.

Nguyen, H.V., Nguyen, H.A., Nguyen, T.T., Nguyen, A.T., Nguyen, T.N. (2012). Detection of embedded code smells in dynamic web applications. In 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering (ASE). IEEE (pp. 282–285).

GitHub. (2016b). Node.js style guide [Online; accessed 17-October-2016]. [Online]. Available: https://github.com/felixge/node-style-guide .

NpmJS. (2016). npm-coding-style [Online; accessed 17-October-2016]. [Online]. Available: https://docs.npmjs.com/misc/coding-style .

Olbrich, S., Cruzes, D.S., Basili, V., Zazworka, N. (2009). The evolution and impact of code smells: a case study of two open source systems. In 3rd International Symposium on Empirical Software Engineering and Measurement, ESEM 2009 (pp. 390–400).

Palomba, F., Bavota, G., Di Penta, M., Fasano, F., Oliveto, R., De Lucia, A. (2018). On the diffuseness and the impact on maintainability of code smells: a large scale empirical investigation. Empirical Software Engineering , 23 (3), 1188–1221.

Peters, R., & Zaidman, A. (2012). Evaluating the lifespan of code smells using software repository mining. In 2012 16th European Conference on Software Mmaintenance and Reengineering (CSMR). IEEE (pp. 411–416).

Pfenning, F., & Elliott, C. (1988). Higher-order abstract syntax. In ACM SIGPLAN Notices, vol. 23, no. 7. ACM (pp. 199–208).

Saboury, A., Musavi, P., Khomh, F., Antoniol, G. (2017). An empirical study of code smells in JavaScript projects. In 2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER), IEEE (pp. 294–305).

Selim, G.M., Barbour, L., Shang, W., Adams, B., Hassan, A.E., Zou, Y. (2010). Studying the impact of clones on software defects. In 2010 17th Working Conference on Reverse Engineering. IEEE (pp. 13–21).

Shatnawi, R., & Li, W. (2006). An investigation of bad smells in object-oriented design. In 2006. ITNG 2006. 3rd International Conference on Information Technology: New Generations. IEEE (pp. 161–165).

Shihab, E., Ihara, A., Kamei, Y., Ibrahim, W. M., Ohira, M., Adams, B., Hassan, A. E., Matsumoto, K.-I. (2013). Studying re-opened bugs in open source software. Empirical Software Engineering , 18 (5), 1005–1042.

Singer, J.D., & Willett, J.B. (2003). Applied longitudinal data analysis: modeling change and event occurrence, Oxford University Press, Oxford.

Sjoberg, D.I.K., Yamashita, A., Anda, B., Mockus, A., Dyba, T. (2013). Quantifying the effect of code smells on maintenance effort. IEEE Transactions on Software Engineering , 39 (8), 1144–1156.

Stackoverflow. (2016). Developer survey results 2016, [Online; accessed 11-August-2016]. [Online]. Available: http://stackoverflow.com/research/developer-survey-2016 .

Śliwerski, J., Zimmermann, T., Zeller, A. (2005). When do changes induce fixes?. In ACM Sigsoft Software Engineering Notes, vol. 30, no. 4. ACM (pp. 1–5).

Therneau, T. (2000). R survival package.

Therneau, T.M., & Grambsch, P.M. (2000). Modeling survival data: extending the Cox model . Berlin: Springer.

Book   MATH   Google Scholar  

Tufano, M., Palomba, F., Bavota, G., Oliveto, R., Di Penta, M., De Lucia, A., Poshyvanyk, D. (2015). When and why your code starts to smell bad. In Proceedings of the 37th International Conference on Software Engineering-volume 1. IEEE Press (pp. 403–414).

Westergaard, H. (1932). Contributions to the history of statistics . London: P.S King.

MATH   Google Scholar  

Grunt. (2016). Who uses grunt [Online; accessed 4-October-2016]. [Online]. Available: http://gruntjs.com/who-uses-grunt .

Yin, R.K. (2002). Case study research: design and methods, 3rd, SAGE Publications, USA.

Download references

Author information

Authors and affiliations.

SWAT Laboratory, Polytechnique Montréal, Montréal, QC, Canada

David Johannes & Foutse Khomh

SOCCER Laboratory, Polytechnique Montréal, Montréal, QC, Canada

Giuliano Antoniol

You can also search for this author in PubMed   Google Scholar

Corresponding author

Correspondence to Foutse Khomh .

Additional information

Publisher’s note.

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Johannes, D., Khomh, F. & Antoniol, G. A large-scale empirical study of code smells in JavaScript projects. Software Qual J 27 , 1271–1314 (2019). https://doi.org/10.1007/s11219-019-09442-9

Download citation

Published : 22 March 2019

Issue Date : September 2019

DOI : https://doi.org/10.1007/s11219-019-09442-9

Share this article

Anyone you share the following link with will be able to read this content:

Sorry, a shareable link is not currently available for this article.

Provided by the Springer Nature SharedIt content-sharing initiative

  • Code smells
  • Fault-proneness
  • Survival analysis
  • Empirical study
  • Find a journal
  • Publish with us
  • Track your research

Search code, repositories, users, issues, pull requests...

Provide feedback.

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly.

To see all available qualifiers, see our documentation .

research-paper

Here are 26 public repositories matching this topic..., lifan0127 / ai-research-assistant.

Aria is Your AI Research Assistant Powered by GPT Large Language Models

  • Updated Feb 15, 2024

huda-lab / qetch

Qetch is a tool that allows users to freely sketch patterns on a scale-less canvas to query time series data without specifying query length or amplitude.

  • Updated Jul 14, 2023

ahmadassaf / research-library

🎓A set of research papers across a wide range of Conferences, Journals and Workshops in the Data Mining, Information Retrieval, Semantic Web, Machine Learning and AI topics

  • Updated Aug 13, 2019

STORM-IRIT / pcednet-supp

Companion website for the paper PCEDNet: A Light-Weight Neural Network for Fast and Interactive Edge Detection in 3D Point Clouds

  • Updated Apr 25, 2023

huda-lab / synner

Generating Realistic Synthetic Data

RUB-NDS / DISTINCT

Dynamic In-Browser Single Sign-On Tracer Inspecting Novel Communication Techniques

  • Updated Dec 18, 2023

jdbosser / GPU-Acoustics

Target strength (TS) calculation of 3D-models in the web browser using WebGL and three.js.

  • Updated Oct 26, 2020

ppml38 / shortest_edit_script

Novel algorithm to generate shortest edit script.

  • Updated Aug 22, 2022

zambujo / snsf-peerreview

Open Science Notebook

  • Updated Sep 21, 2019

dtran16 / curatedacademicjournal

blockchain-based application for peer reviewing academic research papers

  • Updated May 9, 2019

aaronxyliu / PTdetector

A chrome extension used for library detection. ASE 2023 paper artifact.

  • Updated Oct 16, 2023

Hsin-Hung / ScholarLink

a full-stack web app that suggests weekly research papers to subscribers based on specified interests

  • Updated Aug 10, 2023

MichiganNLP / deceptiondetection

Deception Detection project website

  • Updated Dec 7, 2019

paper-pub-cit / paper-pub-cit.github.io

Research Paper Publication and Cross-city Citation Globe

  • Updated Sep 15, 2023

enriquetomasmb / overleaf-dark-theme

Dark Theme for Overleaf

  • Updated Jul 29, 2021

raja-kumar / CSE-260-Computer-Graphics

Graduate Computer Graphics Course

  • Updated May 16, 2023

virajbhutada / Students-Grievance-System

A centralized and streamlined platform to efficiently manage and address grievances within educational institutions, fostering enhanced student feedback, satisfaction, institutional improvement, transparency, and collaborative resolution.

  • Updated Feb 17, 2024

adp6729 / react-mdl-portfolio

Personal portfolio for graduate work and professional projects.

  • Updated Feb 18, 2020

moonline / HSR.SA.HTML5-VoIP.App

Research paper: HTML5 based VoIP application (Implementation)

  • Updated Dec 19, 2013

moonline / HSR.SA.HTML5-VoIP

Research paper: HTML5 based VoIP application

Improve this page

Add a description, image, and links to the research-paper topic page so that developers can more easily learn about it.

Curate this topic

Add this topic to your repo

To associate your repository with the research-paper topic, visit your repo's landing page and select "manage topics."

  • Blogs by Topic

The WebStorm Blog

The JavaScript and TypeScript IDE

  • Twitter Twitter
  • Youtube Youtube

JavaScript and TypeScript Trends 2024: Insights From the Developer Ecosystem Survey

David Watson

For the last seven years, we at JetBrains have been running our Developer Ecosystem Survey in an effort to map out the changing developer landscape and the major technologies used. The results, both the raw data and analyzed reports, are shared with the community so we can all understand what’s happening in our ecosystem. Today, we’ll look at the results of this year’s survey, focusing on JavaScript and TypeScript .

An overview of the survey

Our 2023 Developer Ecosystem Survey brought together insights from 26,348 developers from all over the world. You can check out the survey results yourself for information covering a wide range of topics, from programming languages, tools, and technologies to useful demographics and fun facts. We’ll also take a look at the unique lifestyles of developers, shedding light on their passions and interests. To try to make the survey as fair and representative as possible, the methodology includes several stages that are designed to clean the data and eliminate any biases. You can read about the exact methodology we used here .

JavaScript insights

Javascript usage trends.

Once again, the survey reports JavaScript as the most-used programming language in 2023, taking its winning streak as the top language used up to seven years in a row. This is likely because JavaScript is a low-barrier language that powers a lot of front-end web development. Interestingly, its share has dipped slightly in each of the last three years, which might be an omen of future change since this decline has coincided with a rise in TypeScript adoption.

research paper for javascript

What do JavaScript users typically develop?

A massive 80% of JavaScript developers work primarily on websites. The second most common software products developed with JavaScript are utilities (small apps for small tasks). Only a small number use JavaScript to develop other types of software. Breaking the data down into the two main development branches, 86% of JavaScript developers work on frontend projects, with 34% also involved in the backend.

research paper for javascript

JavaScript and TypeScript code editors and IDEs

The results of the survey show a large percentage of respondents (51%) are using Visual Studio Code for their JavaScript and TypeScript development. The second most popular tool is WebStorm (21%), followed closely behind by “another IntelliJ-based IDE” (16%), otherwise known as JetBrains IDEs , which include PyCharm, IntelliJ IDEA, GoLand, and PhpStorm.

research paper for javascript

If you’re wondering if you should use a code editor or an IDE, the answer is simple – you can use both and switch between them depending on the task you’re working on. Code editors can be a better choice for quick edits or smaller projects, whereas IDEs tend to be more reliable when working with large projects or complex tasks.

JavaScript framework preferences

JavaScript frameworks and libraries are prevalent within the JavaScript developer community, with only 8% of JavaScript developers saying they don’t use them. Frameworks and libraries provide developers with tools and structures that simplify building complex and interactive web applications. Of these frameworks, the clear favorite is React, with 57% of JavaScript developers using it. According to the survey, the second most used is Vue (32%), with third place going to Next.js (27%). Angular and Express (20%) are tied for fourth place.

research paper for javascript

Typically, the three most popular frameworks for frontend development you’d expect are React, Angular, and Vue. The choice of framework largely depends on the project’s specific requirements and the team’s preferences.

Reasons why React might be the most used framework

  • React was first released on May 29, 2013. Though it wasn’t the first framework on the market, it did benefit from being the first of the big frameworks with a generally solid track record of performance. This, in turn, led to early mass adoption. Developers who learned it early were able to keep using it, as it has kept evolving to meet their needs.
  • React, like other UI frameworks, follows a component-based architecture, where UIs are built as a tree of reusable components. This modular approach makes it easier to manage and maintain code, as well as promote code reusability across different parts of an application.
  • React uses JSX, which is a syntax extension for JavaScript. JSX allows developers to write HTML-like code within JavaScript, providing a pleasant developer experience on account of most users’ familiarity with the relevant concepts.
  • React is flexible and can be used in various project types, ranging from small single-page applications to large, complex web applications. Its flexibility makes it a good choice for various development scenarios.

Module bundlers

Module bundlers are valuable tools for JavaScript developers. Beyond allowing you to bundle your files and assets in a way that ensures they are aware of each other, they also enable you to map the dependencies. Much like resolvers, module bundlers typically work by checking that the files necessary for all dependencies to work are available on initialization. They then process each file within a module and construct a dependency graph for them.

Once that’s done, the module bundler then consolidates these modules into a singular file, which is specified in the ‘output’ configuration parameter, and maintains a registry of all modules so you can correctly call/execute them as and when required.

research paper for javascript

The top module bundler of 2023 is webpack, with a massive 57% of JavaScript developers using it. Webpack has been around for 10 years and has continued to evolve to meet the changing needs of developers. That said, we’re starting to see wider adoption of alternatives such as Vite (38%) and esbuild (11%) as people search for better performance from a more minimal setup.

Unit testing

Unit testing, to the dismay of WebStorm Developer Advocate Jan Niklas Wortmann , is not exactly common practice among JavaScript developers, with 32% of the respondents not writing unit tests. Of the respondents that do, Jest is the unit testing framework of choice, with a 40% majority. Cypress is the second most used with 15%, with Mocha, Vitest, and Playwright all hovering around the 10% mark. Jest is mostly hassle-free, with no configuration needed to get it up and running. This might be a huge part of why unit testing is not adopted – it feels inaccessible and has a high barrier to entry.

research paper for javascript

Challenges faced by JavaScript developers

JavaScript continues to have its challenges, but the community continues to work on them. For instance, the asynchronous model has been improved with the introduction of async/await. Library and framework fatigue has slowed down, with the main libraries and frameworks now maturing and taking inspiration from each other. Love it or hate it, it lacks strong typing – a problem that is still yet to be solved – but with the advent of TypeScript, there is an easily implementable alternative that people can use.

TypeScript insights

Typescript adoption and growth.

JavaScript is a dynamically typed language that people have leveraged heavily and effectively, but this means it is widely accepted that errors are only discovered at runtime. There’s a shift towards the more type-safe TypeScript that can improve the overall developer experience, and the confidence developers have in their code. This can be seen in TypeScript’s increasing adoption over the years but also in the crossover with JavaScript when it comes to what developers use it for.

research paper for javascript

Why might people switch from JavaScript to TypeScript?

TypeScript is a superset of JavaScript with static typing, designed to play well with JavaScript projects, and can help teams gradually migrate existing projects. TypeScript also follows ECMAScript standards and typically supports the latest JavaScript features. This means developers can use features from future JavaScript specifications even before they are widely supported in browsers. The current stable release of TypeScript is 5.3.2 , with TypeScript 5.4 expected in March 2024.

The JavaScript and TypeScript ecosystem continues to evolve. It’s now nothing like it was back in 2016 – the technologies, frameworks, languages, and libraries are now beginning to mature, with commonalities and trends emerging in developer preferences. Tools like WebStorm will continue to grow and improve to help developers get the best out of their code and work effectively with JavaScript and TypeScript. We hope that new, innovative technologies continue to be developed to help us solve the issues and limitations of this ecosystem. With this goal in mind, we’ll continue to update our products in line with the ecosystem and needs of developers like ourselves.

Subscribe to Blog updates

By submitting this form, I agree that JetBrains s.r.o. ("JetBrains") may use my name, email address, and location data to send me newsletters, including commercial communications, and to process my personal data for this purpose. I agree that JetBrains may process said data using third-party services for this purpose in accordance with the JetBrains Privacy Policy . I understand that I can revoke this consent at any time in my profile . In addition, an unsubscribe link is included in each email.

Thanks, we've got you!

Discover more

research paper for javascript

The Angular Renaissance: Navigating the New Features With WebStorm

Learn about the changes that are reshaping the way Angular apps are being developed.

Vladislav Minaev

Exploring the Power of CSS Nesting: Simplifying Styling and Enhancing Readability

Let's look at CSS Nesting, how it works, and how it enables you to get more expressive in how you write your CSS code.

Jan-Niklas Wortmann

Create JavaScript Courses Inside WebStorm With EduTools

Learn about how you can leverage our EduTools plugin to create your own courses in WebStorm.

David Watson

Using Storybook With 11ty

Storybook is great for component-driven development. This blog post shows you how to use Storybook with 11ty.

Paul Everitt

Building a Research Assistant Tool with AI and JavaScript

Mahmud Adeleye

In this article, we’ll develop an AI-powered research tool using JavaScript, focusing on leveraging the latest artificial intelligence (AI) advancements to sift through tons of data faster.

We’ll start by explaining basic AI concepts to help you understand how the research tool will work. We’ll also explore the limitations of the research tool and some available tools that will help us enhance our AI research tool’s capabilities in a way that allows it to access tailored information more efficiently.

At the end of the article, you’ll have created an advanced AI research assistant tool to help you gain insights quicker and make more informed research-backed decisions.

Vector embeddings

Retrieval methods, javascript’s role in ai development, introducing openai’s node sdk, step 1: setting up your project, step 2: initialize a new node.js project, step 3: install openai node sdk, step 4: building the research assistant functionalities, limitations of the basic research tool, introduction to openai function calling, building an enhanced research assistant tool, step 1: set up the newsapi fetch function for external data, step 2: describe our function, step 3: integrating external tools into our ai assistant, step 4: run our ai assistant, background and basics.

Before we start building, it’s important we discuss some fundamental concepts that will help you better understand how popular AI-powered applications like Bard and ChatGPT work. Let’s begin with vector embeddings.

Vector embeddings are numerical representations of text-based data. They are essential because they allow AI models to understand the context of the text provided by the user and find the semantic relationship between the provided text and the tons of knowledge they’ve been trained on. These vector embeddings can then be stored in vector databases like Pinecone, allowing optimal search and retrieval of stored vectors.

AI models have been fine-tuned to provide satisfactory answers. To do that efficiently, they’ve been trained on vast amounts of data. They’ve also been built to rely on efficient retrieval techniques — like semantic similarity search — to quickly find the most relevant data chunks (vector embeddings) to the query provided.

When we supply the model with external data, as we’ll do in subsequent steps, this process becomes retrieval-augmented generation. This method combines all we’ve learned so far, allowing us to enhance a model’s performance with external data and synthesize it with similar vector embeddings to provide more accurate and reliable data.

Retrieval

JavaScript has been the most popular programming language for the past 11 years, according to the 2023 Stack Overflow survey . It powers most of the world’s web interfaces, has a robust developer ecosystem, and enjoys versatile cross-platform compatibility with other key web components like browsers.

In the early stages of the AI revolution, Python was the primary language used by AI researchers to train novel AI models. However, as these models become consumer-ready, there’s a growing need to create full-stack, dynamic, and interactive web applications to showcase the latest AI advancements to end-users.

This is where JavaScript shines. Combined with HTML and CSS, JavaScript is the best choice for web and (to some extent) mobile development. This is why AI companies like OpenAI and Mistral have been building developer kits that JavaScript developers can use to create AI-powered development accessible to a broader audience.

The OpenAI’s Node SDK provides a toolkit that exposes a suite of APIs that JavaScript developers can use to interact with their AI models’ capabilities. The GPT 3.5 and GPT 4 model series, Dall-E, TTS (text to speech), and Whisper (speech-to-text models) are available via the SDK.

In the next section, we’ll use the latest GPT 4 model to build a simple example of our research assistant.

Building a Simple Research Assistant Tool

Note: you can review the GitHub Repo as you go through the steps below.

Prerequisites

  • Basic JavaScript knowledge.
  • Node.js Installed. Visit the official Node.js website to install or update the Node.js runtime on your local computer.
  • OpenAI API Key. Grab your API keys , and if you don’t have one, sign up on their official website .

Run the command below to create a new project folder:

The command below will create a new package.json in your folder:

Run the following command:

Let’s create a new file named index.js in the folder and place the code below in it.

I’ll be adding inline comments to help you better understand the code block:

Run node index.js in the command line and you should get a result like that pictured below.

Research assistant

Please note that it’s not recommended to handle API keys directly in the frontend due to security concerns. This example is for learning purposes only. For production purposes, create a .env file and place your OPENAI_API_KEY in it. You can then initialize the OpenAI SDK like below:

As we move to the next section, think of ways you can improve our current AI assistant setup.

Development of a Robust Research Assistant Tool

Our research assistant is an excellent example of how we can use the latest AI models to improve our research flow significantly. However, it comes with some limitations, which are covered below.

Poor user experience . Our current setup needs a better user experience in terms of input. We can use a JavaScript framework like React to create input fields to solve this. Additionally, it takes a few seconds before we receive any response from the model, which can be frustrating. This can be solved by using loaders and integrating OpenAI’s built-in streaming functionality to ensure we get responses as soon as the model generates them.

Limited knowledge base . The current version relies on the GPT-4’s pre-trained knowledge for an answer. While this dataset is massive, its knowledge cutoff date is April 2023 at the time of writing. This means it might not be able to provide relevant answers to research questions about current events. We’ll attempt to solve this limitation with our next tool version by adding external data.

Limited context . When we delegate research tasks to a human, we expect them to have enough context to process all queries efficiently. However, our current setup processes each query in isolation, which is unsuitable for more complex setups. To solve this, we need a system to store and concatenate previous answers to current ones to provide full context.

OpenAI’s function calling feature was released in June 2023 , allowing developers to connect supported GPT models (3.5 and 4) with functions that can retrieve contextually relevant data external data from various sources like tools, APIs, and database queries. Integrating this feature can help us address some of the limitations of our AI assistant mentioned earlier.

  • NewsAPI key . Besides the prerequisites we mentioned for the current assistant version, we’ll need a free API Key from NewsAPI . They have a generous free developer tier that’s perfect for our needs.

Note: you can review the GitHub Repo as you go through the steps below and the OpenAI official Cookbook for integrating function calls into GPT models.

I’ve also added relevant inline code comments so you can follow through.

Note: you can look at the API documentation to see how the response is structured.

First, we’ll create a function to fetch the latest news based on your provided query:

Next, we’ll implement a tooling setup describing the composition of our external data function so the AI model knows what type of data to expect. This should include name , description , and parameters :

In this step, we’ll create a function called researchAssistant . It will prompt a conversation with OpenAI’s GPT-4 model, execute the specified external data function in tools, and integrate the responses dynamically.

To start with, we’ll define an array that keeps track of all our conversations with the AI Assistant, providing a detailed context when a new request is made:

Once this is done, we’ll set up the core functionality for the assistant. This involves processing the responses from external functions to generate a comprehensive and relevant report for you:

Our final step is to create a function that supplies the researchAssistant function query parameter with our research query and processes its execution:

Run node index.js in your terminal, and you should see a response similar to the one below.

Research Assiatant with External Data

Interestingly, the knowledge cutoff of the GPT-4 model was in April 2023, which was before the release of Apple’s Vision Pro in February 2024. Despite that limitation, the model provided a relevant research report because we supplemented our query with external data.

Other APIs you can integrate into your AI Assistant can be TimeAPI , Location API , or any other API with structured responses you have access to.

What an exciting journey it’s been! This tutorial explored key concepts that have aided our understanding of how popular AI-powered applications work.

We then built an AI research assistant capable of understanding our queries and generating human-like responses using the OpenAI’s SDK.

To further enhance our basic example, we incorporated external data sources via function calls, ensuring our AI model got access to the most current and relevant information from the Web. With all these efforts, in the end, we built a sophisticated AI-powered research assistant.

The possibilities are endless with AI, and you can build on this foundation to build exciting tools and applications that leverage state-of-the-art AI models and, of course, JavaScript to automate daily tasks, saving us precious time and money.

Download JavaScript Code Examples, Tutorials, Reference

google+javascriptbank

Log me automatically

research paper for javascript

  • Write for us
  • Link exchange
  • Documentation
  • Sharing resources
  • How to setup?

JavaScript Research Paper: 6 Writing Tips to Craft a Masterpiece  

SocialTwist Tell-a-Friend

Label: JavaScript Research Paper , Masterpiece (adsbygoogle = window.adsbygoogle || []).push({});

Free ipage web hosting for first year now.

research paper for javascript

Research, research, and research again. A properly researched research paper will take you much further than a rushed piece. Try to look at all aspects of the paper that you're writing. Get information from various sources so that you do not have a one-sided, biased viewpoint. Use a blend of sources, for example, use the internet, the library and journals to formulate the research paper with proper depth. An example of this could be if you're writing about the computer language JavaScript, you could mention what JavaScript is and how it came about and its users. However, if you research the article properly, you could go into detail about its future uses, how it is developed and how it has helped other technical languages to develop. Getting this information from a multitude of sources will cover all angles of this particular subject.

Picking topics wisely

research paper for javascript

If you have been given freedom of choice to pick what you want to write about, then make sure you pick a subject that you can comfortably write about, without encountering to make difficulties. Look at the subject that you have a genuine interest in as you'll find the subject matter far more enjoyable, to begin with. This will keep your interest alive and help you to write something which is informative and engaging to read. When you decide to pick your topic, make sure there's enough information on your chosen subject finally, when picking your subject, make sure that you can talk about more than one aspect of it. This will give your article greater depth.

Outline drafts

As with anything that you do, planning and preparation are very important. If you draft out your research paper and show how the structure will pad out, this will give you the chance to edit and re-edit your research paper before you commit to writing. Doing this will make you challenge yourself and ensure that each section has been researched properly. Once the final draft has been completed, you will be ready to start doing your final copy. Remember; don't be afraid to make adjustments along the way. When you start writing a research paper you may find that certain changes are required to keep the flow and integrity of the paper intact.

Taking notes

research paper for javascript

Taking proper notes when constructing a research paper is vital for achieving your goals. Good note taking will help you to understand the subject matter and help with the research required. Proper note taking can also help you with the planning of your research paper, as when you're taking any notes, you can highlight the areas of interest that you intend on mentioning in your chosen piece. If your notes are lacking in a certain area you could try comparing notes with some of your peers. They may have taken notes that you are not aware of and that could be an interesting addition to your research paper.

Reading similar articles

Never ever plagiarise somebody else's work. However, looking at the way someone else has constructed a research paper is a good way to see how it works well and where you may be able to improve on it. Another way of writing that killer research paper is by reading similar texts to what you're intending on writing. Next, brainstorm your thoughts once you have digested all of this information. Don't be tempted to write straight away after you have read other similar articles, as the risk of plagiarism will increase. It may be worth coming back to the research paper the next day after reading your brainstorming notes first. As mentioned above, drafting your research paper is key to making sure that you get the desired results. Make sure that reading your drafts is something that you do religiously.

The second pair of eyes

Once you have written you a draft copy, there is no harm in getting one of your friends or family members to read it and even read to you out loud so you can see how the article actually sounds. Sometimes, if you proofread the research paper yourself, you may inadvertently read things you haven't actually written. That's why having a second pair of eyes to cast over what you've written is a good way of making sure that your research paper reaches the desired quality. It is also a good idea to conduct this process after you have completed your final copy. You have obviously checked and approved your own research paper yourself, but reading it back to yourself again will give you the assurance that it sounds exactly as you intend it to.

We have covered a number of areas above which highlight the best ways to construct the perfect research paper. There will be other ways that can also help, e.g. contacting a research paper writing service online, but you need to concentrate on what is most suited to you.

  • Submit this to Twittley
  • Tweet This!
  • Submit this to Script & Style
  • Share this on Reddit
  • Share this on del.icio.us
  • Stumble upon something good? Share it on StumbleUpon
  • Share this on Mixx
  • Share this on Technorati
  • Share this on Blinklist
  • Post this on Diigo
  • Post this to MySpace
  • Share this on Facebook
  • Submit this to DesignFloat
  • Share this on Devmarks
  • Seed this on Newsvine
  • Add this to Google Bookmarks
  • Comment (0)

research paper for javascript

Write your comment

B

Newsletter

Cool Domains for Sale!

  • Super Hot PHP scripts
  • gomymobiBSB: eCommerce - Business Webite & Online Store Builder
  • DingPost - Auto Social Posting & Marketing Solutions
  • VipMag - Powerful News Script, VIP Blog Software & Magazine Platform with Subscription
  • NameLiz - Brandable Business Name Generator
  • iHoldCoin - Cryptocurrency Portfolio, Manager & Tracker
  • inOneSec. Incredible Facts & Statistics in One Second
  • Powerup for WEX.nz (BTC-e.com) - Make Website Great Again
  • zConfirm: Elegant Modal JavaScript confirm()
  • Awesome Mobile Site Builder: Build your mobile site maker service
  • Blogger Movie Publisher - Watch Movie Blog Maker
  • Awesome Newsletter Popup for Everyone, Every site
  • Like2Reveal: Facebook Like to Reveal Content
  • pTemplate: Better PHP Coding & HTML Design Separately
  • ENpaginator: Elegant Navigate Paginator

research paper for javascript

Let's be first member to do this

  • How to open a car sharing service
  • Vue developer as a vital part of every software team
  • Vue.js developers: hire them, use them and get ahead of the competition
  • 3 Reasons Why Java is so Popular
  • Migrate to Angular: why and how you should do it
  • The Possible Working Methods of Python Ideology
  • JavaScript Research Paper: 6 Writing Tips to Craft a Masterpiece
  • Learning How to Make Use of New Marketing Trends
  • 5 Important Elements of an E-commerce Website
  • How To Create A Successful Prototype For Your PCB
  • Top 10 Beautiful Christmas Countdown Timers
  • 65 Free JavaScript Photo Gallery Solutions
  • Best Free Linux Web Programming Editors
  • Adding JavaScript to WordPress Effectively with JavaScript Localization feature
  • Top 10 Best JavaScript eBooks that Beginners should Learn
  • Top 50 Most Addictive and Popular Facebook mini games
  • 16 Free Code Syntax Highlighters by Javascript For Better Programming
  • Top 10 Free Web Chat box Plug-ins and Add-ons
  • More 30 Excellent JavaScript/AJAX based Photo Galleries to Boost your Sites
  • The Ultimate JavaScript Tutorial in Web Design
  • JavaScript Countdown Timer | JavaScript Timer Countdown
  • Virtual Keyboard
  • Make link open in new tab/window
  • Dancing Animation Stars Cursor
  • Javascript Countdown Timer redirecting Affiliate Links
  • Go To URL Box
  • AJAX Page Content Loader
  • Truncate HTML Text
  • Main categories
  • All categories
  • Calculation
  • How-to Tutorials
  • Web/Blogging Tools
  • CSS Tips & Tricks
  • Mobile & Smartphone
  • PR Promotion
  • Infographic

JavaScript by day

Set as Homepage - Add to Favorites - Recommend us - Newsletter - Google +

Free JavaScript Code

Research and Application of Node.js Core Technology

Ieee account.

  • Change Username/Password
  • Update Address

Purchase Details

  • Payment Options
  • Order History
  • View Purchased Documents

Profile Information

  • Communications Preferences
  • Profession and Education
  • Technical Interests
  • US & Canada: +1 800 678 4333
  • Worldwide: +1 732 981 0060
  • Contact & Support
  • About IEEE Xplore
  • Accessibility
  • Terms of Use
  • Nondiscrimination Policy
  • Privacy & Opting Out of Cookies

A not-for-profit organization, IEEE is the world's largest technical professional organization dedicated to advancing technology for the benefit of humanity. © Copyright 2024 IEEE - All rights reserved. Use of this web site signifies your agreement to the terms and conditions.

JPMorgan Chase, TD draw AI talent through research labs

Outdoor shots of JPMorgan Chase and TD Bank Group buildings

JPMorgan Chase's artificial intelligence research team has published more than 400 papers, far more than any other large bank, according to research conducted by Evident. The group produced 45% of all AI research in banking last year. 

"Jamie Dimon went out and said, we're going to be an AI-first bank and we're going to actually be a tech company," said Alexandra Mousavizadeh, founder and CEO of Evident, in an interview. Recognizing that one of the things tech companies have is AI research labs, he hired Manuela Veloso, who had been a Carnegie Mellon University professor since 1992 and who is a "leading brain on AI," to run it.

There are two reasons why AI research labs are important, and why the number of banks doing AI research has jumped from 10 to 40 of the top 50 last year, according to Mousavizadeh. 

One is that doing research in-house helps companies develop artificial intelligence that works at scale, she said. The other is that banks with AI research labs can more easily attract top AI talent. 

AI research labs at JPMorgan Chase, TD Bank Group, RBC and other banks are not ivory towers. They work directly with business units to solve specific business problems and to bring their ideas into production. 

Banks that don't have these in-house groups have to rely on vendors and focus on vendor selection, due diligence and testing, Mousavizadeh said.

Building an AI lab

When Manuela Veloso joined JPMorgan Chase in 2018, it was something of a culture shock.

"It was a big change, after 30-plus years of being in academia," Veloso said. "But on the other hand, it's very exciting. I am a type of personality that loves complex problems and loves thinking about contributing to the success of the place where I am. I feel excited every day about solving more problems."

Of Veloso's team of 110 researchers, 75% have Ph.D.s in computer science, statistics, math or engineering; the rest have master's degrees. All are familiar with writing scientific publications and eager to share their work with the academic community and the rest of the world.

"Nobody asks them to write papers," Veloso said. "They basically have it in their blood like I do."

One recent paper studied how well large language models like GPT-4 can read and understand financial documents, compared to older models specifically tuned to these types of documents.

The papers do not mention JPMorgan Chase data; they use public data. 

"That's why we contribute so much to the advancement of AI in finance, because the research community can start understanding the problems that the finance industry faces, independently from the specifics," Veloso said.

TD Bank Group, which is headquartered in Toronto, acquired AI tech company Layer 6 in 2018 and it's become the bank's AI research lab. Last year, Layer 6 published 14 research papers that were presented at AI conferences. One recent paper on tabular data understanding and generation won an award at the 2023 Neural Information Processing Systems Conference. Layer 6 has also filed more than 60 patent applications. 

electronic health records with the University of Toronto and tech company Signal 1. The paper proposed a deep learning model that analyzes electronic health records to predict future events that could occur to a patient during a hospital stay, so doctors can optimize their care. 

"We're now exploring how this research could be applicable in a banking setting," said Maks Volkovs, senior vice president and chief AI scientist at Layer 6.

Bringing AI products to life

Such AI research teams work closely with other parts of their banks, their leaders say.

At TD, Layer 6 has created machine learning models that have improved predictive capabilities and introduced AI in every line of business, Volkovs said. The team has developed more than 67 AI use cases across the bank. 

"We are closely embedded with business teams and work together to create solutions that are focused on our colleagues and customers," Volkovs said. "Our researchers, who are also involved in applied work, actively participate in all stages from ideation and model development to deployment and ongoing monitoring."

Conformal Prediction Sets Improve Human Decision Making . The paper shows that humans can make more accurate decisions when they interact with machine learning models that provide predictions with high rates of estimated confidence (e.g., the model is 95% confident that a given image is of a book). 

"Our research was used to create a model that applies a similar approach that underwriters use in the residential mortgage pre-approval process," Volkovs said. "We use AI to provide a smooth pre-approval process for our customers and get them credit decisions in only a few minutes." 

At JPMorgan Chase, Veloso's group has monthly meetings with business leaders about the problems they need help solving.

"They don't ask us to do dashboards," Veloso said. In a recent meeting, Veloso's team heard that some salespeople had completed 30,000 client meetings. She offered to summarize and analyze those meetings. 

Veloso always hopes the business people will listen to her team and "have the wisdom and knowledge to decide when to change," she said. 

"That's the role of AI research – for them to be exposed to what can be done," Veloso said. "The more I show them things that they probably have not thought about before, the more success we bring to the firm. It's the level of 'aha,' the level of novelty that we may bring to their thinking." 

Getting models into production can take time, Veloso acknowledged. But for certain very practical projects, like using large language models to read enterprise documents, the process gets speeded up because it's something almost everyone in the bank can use.

"You can cut your time to production down a heck of a lot by having those research capabilities," Mousavizadeh said. "So you're much more nimble. All of the banks are looking at time to production right now because it affects how quickly you can ideate, how quickly you can get things into production."

Attracting tech and AI talent

When AI researchers, data scientists and developers are considering a job at a bank, they still want to be able to publish research, get cited in papers and present at AI conferences.

"It's super important for the banks that they have people [at conferences] because it's also a pipeline of talent," Mousavizadeh said. 

When Layer 6 joined TD, there were 15 people in the group. Today, there are 200 people in TD's AI and machine learning team. They've come from big tech companies, universities and other financial institutions.

A new model rates large banks on their efforts to develop and deploy artificial intelligence technology. 

JPMORGANCHASE-CITI-RBC

Team members have won top honors at a machine learning conference on recommender systems three times, making TD the only bank to have ever done this, Volkovs said. 

"These kinds of accomplishments help us build our brand globally and position us as a destination of choice for top talent," he said.

Mousavizadeh said she has seen an overall shift in banks' interest in AI research.

"You're suddenly seeing HSBC and BBVA leaning into this and doing more research, hiring more researchers, having it in house, being able to distribute it," she said. "It changes the mindset. They're also now able to hire that talent that they couldn't hire before. They're putting a stake in the ground: We're serious. Research is becoming essential." 

The same will soon be true of quantum computing, she predicts. 

Surprise overdraft fees and charges incurred by consumers who cash bad checks likely violate the law, state Attorney General Rob Bonta said. His message was especially notable because it was aimed at smaller institutions that have gotten less scrutiny from Washington.

California Attorney General Rob Bonta

An FDIC enforcement action against Lineage Bank is part of a wave of cases involving banks that have partnered with fintechs in recent years.

Tennessee welcome sign

After his aggressive cost-cutting raised profits above analysts' expectations, Block's CEO aims to retool several features of Square and Cash App to enable them to operate like a "social bank."

Jack Dorsey

The Department of Justice appoints Jonathan Mayer as its first chief AI officer, HTLF's CEO Bruce Lee plans to retire, Wilmington Trust's Doris Meister will step down in May, and more in the weekly banking news roundup.

A boat passes in front of the San Francisco skyline as seen from the Port of Oakland.

The USDA forecasted farm profits will plunge 26% this year, potentially creating credit quality challenges for lenders.

AB-FARM DATA-FLOURISH CHART -022124

The two companies in the largest bank merger since the 2008 financial crisis released details of their agreement. It leaves the door open for Discover to field better offers, though the payments company would pay a break-up fee of 4% if it accepts one.

Discover

Help | Advanced Search

Computer Science > Computer Vision and Pattern Recognition

Title: snap video: scaled spatiotemporal transformers for text-to-video synthesis.

Abstract: Contemporary models for generating images show remarkable quality and versatility. Swayed by these advantages, the research community repurposes them to generate videos. Since video content is highly redundant, we argue that naively bringing advances of image models to the video generation domain reduces motion fidelity, visual quality and impairs scalability. In this work, we build Snap Video, a video-first model that systematically addresses these challenges. To do that, we first extend the EDM framework to take into account spatially and temporally redundant pixels and naturally support video generation. Second, we show that a U-Net - a workhorse behind image generation - scales poorly when generating videos, requiring significant computational overhead. Hence, we propose a new transformer-based architecture that trains 3.31 times faster than U-Nets (and is ~4.5 faster at inference). This allows us to efficiently train a text-to-video model with billions of parameters for the first time, reach state-of-the-art results on a number of benchmarks, and generate videos with substantially higher quality, temporal consistency, and motion complexity. The user studies showed that our model was favored by a large margin over the most recent methods. See our website at this https URL .

Submission history

Access paper:.

  • Download PDF
  • HTML (experimental)
  • Other Formats

References & Citations

  • Google Scholar
  • Semantic Scholar

BibTeX formatted citation

BibSonomy logo

Bibliographic and Citation Tools

Code, data and media associated with this article, recommenders and search tools.

  • Institution

arXivLabs: experimental projects with community collaborators

arXivLabs is a framework that allows collaborators to develop and share new arXiv features directly on our website.

Both individuals and organizations that work with arXivLabs have embraced and accepted our values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only works with partners that adhere to them.

Have an idea for a project that will add value for arXiv's community? Learn more about arXivLabs .

Data, Privacy Laws and Firm Production: Evidence from the GDPR

By regulating how firms collect, store, and use data, privacy laws may change the role of data in production and alter firm demand for information technology inputs. We study how firms respond to privacy laws in the context of the EU’s General Data Protection Regulation (GDPR) by using seven years of data from a large global cloud-computing provider. Our difference-in-difference estimates indicate that, in response to the GDPR, EU firms decreased data storage by 26% and data processing by 15% relative to comparable US firms, becoming less “data-intensive.” To estimate the costs of the GDPR for firms, we propose and estimate a production function where data and computation serve as inputs to the production of “information." We find that data and computation are strong complements in production and that firm responses are consistent with the GDPR, representing a 20% increase in the cost of data on average. Variation in the firm-level effects of the GDPR and industry-level exposure to data, however, drives significant heterogeneity in our estimates of the impact of the GDPR on production costs.

We thank Guy Aridor, James Brand, Alessandro Bonatti, Peter Cihon, Jean Pierre Dubé, Joe Doyle, Ben Edelman, Liran Einav, Sara Ellison, Maryam Farboodi, Samuel Goldberg, Yizhou Jin, Garrett Johnson, Gaston Illanes, Markus Mobius, Devesh Raval, Dominik Rehse, Tobias Salz, Bryan Stuart, Taheya Tarannum, Joel Waldfogel, and Mike Whinston for helpful comments, and Abbie Natkin, Taegan Mullane, Doris Pan, Ryan Perry, Bea Rivera for excellent research assistance. We are also grateful to Han Choi for copyediting assistance. We gratefully acknowledge the support of the National Institute on Aging, Grant Number T32- AG000186 (Li) and the National Science Foundation Graduate Research Fellowship under Grant No 214106 (Li). The views expressed herein are those of the authors and do not necessarily reflect the views of the Federal Reserve Bank of Chicago, the Federal Reserve System, or the National Bureau of Economic Research.

Mert Demirer is a former paid postdoctoral researcher at Microsoft (a firm active in the cloud market, which this paper studies).

Diego Jiménez Hernández is a former paid postdoctoral researcher at Microsoft.

Dean Li is a former intern at Microsoft.

Sida Peng is a paid employee and minority equity holder at Microsoft.

MARC RIS BibTeΧ

Download Citation Data

  • data appendix

Mentioned in the News

More from nber.

In addition to working papers , the NBER disseminates affiliates’ latest findings through a range of free periodicals — the NBER Reporter , the NBER Digest , the Bulletin on Retirement and Disability , the Bulletin on Health , and the Bulletin on Entrepreneurship  — as well as online conference reports , video lectures , and interviews .

15th Annual Feldstein Lecture, Mario Draghi, "The Next Flight of the Bumblebee: The Path to Common Fiscal Policy in the Eurozone cover slide

  • Newsletters

OpenAI teases an amazing new generative video model called Sora

The firm is sharing Sora with a small group of safety testers but the rest of us will have to wait to learn more.

  • Will Douglas Heaven archive page

OpenAI has built a striking new generative video model called Sora that can take a short text description and turn it into a detailed, high-definition film clip up to a minute long.

Based on four sample videos that OpenAI shared with MIT Technology Review ahead of today’s announcement, the San Francisco–based firm has pushed the envelope of what’s possible with text-to-video generation (a hot new research direction that we flagged as a trend to watch in 2024 ).

“We think building models that can understand video, and understand all these very complex interactions of our world, is an important step for all future AI systems,” says Tim Brooks, a scientist at OpenAI.

But there’s a disclaimer. OpenAI gave us a preview of Sora (which means sky in Japanese) under conditions of strict secrecy. In an unusual move, the firm would only share information about Sora if we agreed to wait until after news of the model was made public to seek the opinions of outside experts. [Editor’s note: We’ve updated this story with outside comment below.] OpenAI has not yet released a technical report or demonstrated the model actually working. And it says it won’t be releasing Sora anytime soon. [ Update: OpenAI has now shared more technical details on its website.]

The first generative models that could produce video from snippets of text appeared in late 2022. But early examples from Meta , Google, and a startup called Runway were glitchy and grainy. Since then, the tech has been getting better fast. Runway’s gen-2 model, released last year, can produce short clips that come close to matching big-studio animation in their quality. But most of these examples are still only a few seconds long.  

The sample videos from OpenAI’s Sora are high-definition and full of detail. OpenAI also says it can generate videos up to a minute long. One video of a Tokyo street scene shows that Sora has learned how objects fit together in 3D: the camera swoops into the scene to follow a couple as they walk past a row of shops.

OpenAI also claims that Sora handles occlusion well. One problem with existing models is that they can fail to keep track of objects when they drop out of view. For example, if a truck passes in front of a street sign, the sign might not reappear afterward.  

In a video of a papercraft underwater scene, Sora has added what look like cuts between different pieces of footage, and the model has maintained a consistent style between them.

It’s not perfect. In the Tokyo video, cars to the left look smaller than the people walking beside them. They also pop in and out between the tree branches. “There’s definitely some work to be done in terms of long-term coherence,” says Brooks. “For example, if someone goes out of view for a long time, they won’t come back. The model kind of forgets that they were supposed to be there.”

Impressive as they are, the sample videos shown here were no doubt cherry-picked to show Sora at its best. Without more information, it is hard to know how representative they are of the model’s typical output.   

It may be some time before we find out. OpenAI’s announcement of Sora today is a tech tease, and the company says it has no current plans to release it to the public. Instead, OpenAI will today begin sharing the model with third-party safety testers for the first time.

In particular, the firm is worried about the potential misuses of fake but photorealistic video . “We’re being careful about deployment here and making sure we have all our bases covered before we put this in the hands of the general public,” says Aditya Ramesh, a scientist at OpenAI, who created the firm’s text-to-image model DALL-E .

But OpenAI is eyeing a product launch sometime in the future. As well as safety testers, the company is also sharing the model with a select group of video makers and artists to get feedback on how to make Sora as useful as possible to creative professionals. “The other goal is to show everyone what is on the horizon, to give a preview of what these models will be capable of,” says Ramesh.

To build Sora, the team adapted the tech behind DALL-E 3, the latest version of OpenAI’s flagship text-to-image model. Like most text-to-image models, DALL-E 3 uses what’s known as a diffusion model. These are trained to turn a fuzz of random pixels into a picture.

Sora takes this approach and applies it to videos rather than still images. But the researchers also added another technique to the mix. Unlike DALL-E or most other generative video models, Sora combines its diffusion model with a type of neural network called a transformer.

Transformers are great at processing long sequences of data, like words. That has made them the special sauce inside large language models like OpenAI’s GPT-4 and Google DeepMind’s Gemini . But videos are not made of words. Instead, the researchers had to find a way to cut videos into chunks that could be treated as if they were. The approach they came up with was to dice videos up across both space and time. “It’s like if you were to have a stack of all the video frames and you cut little cubes from it,” says Brooks.

The transformer inside Sora can then process these chunks of video data in much the same way that the transformer inside a large language model processes words in a block of text. The researchers say that this let them train Sora on many more types of video than other text-to-video models, varied in terms of resolution, duration, aspect ratio, and orientation. “It really helps the model,” says Brooks. “That is something that we’re not aware of any existing work on.”

“From a technical perspective it seems like a very significant leap forward,” says Sam Gregory, executive director at Witness, a human rights organization that specializes in the use and misuse of video technology. “But there are two sides to the coin,” he says. “The expressive capabilities offer the potential for many more people to be storytellers using video. And there are also real potential avenues for misuse.” 

OpenAI is well aware of the risks that come with a generative video model. We are already seeing the large-scale misuse of deepfake images . Photorealistic video takes this to another level.

Gregory notes that you could use technology like this to misinform people about conflict zones or protests. The range of styles is also interesting, he says. If you could generate shaky footage that looked like something shot with a phone, it would come across as more authentic.

The tech is not there yet, but generative video has gone from zero to Sora in just 18 months. “We’re going to be entering a universe where there will be fully synthetic content, human-generated content and a mix of the two,” says Gregory.

The OpenAI team plans to draw on the safety testing it did last year for DALL-E 3. Sora already includes a filter that runs on all prompts sent to the model that will block requests for violent, sexual, or hateful images, as well as images of known people. Another filter will look at frames of generated videos and block material that violates OpenAI’s safety policies.

OpenAI says it is also adapting a fake-image detector developed for DALL-E 3 to use with Sora. And the company will embed industry-standard C2PA tags , metadata that states how an image was generated, into all of Sora’s output. But these steps are far from foolproof. Fake-image detectors are hit-or-miss. Metadata is easy to remove, and most social media sites strip it from uploaded images by default.  

“We’ll definitely need to get more feedback and learn more about the types of risks that need to be addressed with video before it would make sense for us to release this,” says Ramesh.

Brooks agrees. “Part of the reason that we’re talking about this research now is so that we can start getting the input that we need to do the work necessary to figure out how it could be safely deployed,” he says.

Update 2/15: Comments from Sam Gregory were added .

Artificial intelligence

Ai for everything: 10 breakthrough technologies 2024.

Generative AI tools like ChatGPT reached mass adoption in record time, and reset the course of an entire industry.

What’s next for AI in 2024

Our writers look at the four hot trends to watch out for this year

  • Melissa Heikkilä archive page

Google’s Gemini is now in everything. Here’s how you can try it out.

Gmail, Docs, and more will now come with Gemini baked in. But Europeans will have to wait before they can download the app.

Deploying high-performance, energy-efficient AI

Investments into downsized infrastructure can help enterprises reap the benefits of AI while mitigating energy consumption, says corporate VP and GM of data center platform engineering and architecture at Intel, Zane Ball.

  • MIT Technology Review Insights archive page

Stay connected

Get the latest updates from mit technology review.

Discover special offers, top stories, upcoming events, and more.

Thank you for submitting your email!

It looks like something went wrong.

We’re having trouble saving your preferences. Try refreshing this page and updating them one more time. If you continue to get this message, reach out to us at [email protected] with a list of newsletters you’d like to receive.

IMAGES

  1. (PDF) JavaScript

    research paper for javascript

  2. How to make Your Chemistry Research Paper Get Visualized with

    research paper for javascript

  3. (PDF) A Systematic Literature Review and Quality Analysis of JavaScript

    research paper for javascript

  4. (PDF) SurveyWiz and FactorWiz: JavaScript Web pages that make HTML

    research paper for javascript

  5. Research paper Summary CS 455 4.docx

    research paper for javascript

  6. (PDF) Which one is better

    research paper for javascript

VIDEO

  1. JavaScript for Beginners- Rock-Paper-Scissors-Game-PartTwo

  2. Decoding an AgentTesla Loader

  3. 5 JavaScript Projects (Code Included!)

  4. Deep Learning Research Papers || Novel Research!

  5. JavaScript

  6. Essay I Thesis Statement I Drafting thesis statement I Characteristic I

COMMENTS

  1. Analysis of JavaScript Programs: Challenges and Research Trends

    In this article, we classify the client-side JavaScript research for the last decade or so into six topics: static analysis, dynamic analysis, formalization and reasoning, type safety and JIT optimization, security for web applications, and empirical studies.

  2. Modern JavaScript frameworks: A Survey Study

    JavaScript is used in today's web applications as a client script language and on the server side. The JavaScript language supports the Model View Controller (MVC) architecture that maintains a readable code and clearly separates parts of the program code.

  3. The Rise of JavaScript

    The Rise of JavaScript Abstract: In this special issue of CiSE, we focus on a small sample of libraries and tools written in JavaScript that might interest scientists and engineers.

  4. PDF The Essence of JavaScript

    The Essence of JavaScript Arjun Guha, Claudiu Saftoiu, and Shriram Krishnamurthi Brown University Abstract. We reduce JavaScript to a core calculus structured as a small-step operational semantics. We present several peculiarities of the language and show that our calculus models them.

  5. CSRF protection in JavaScript frameworks and the ...

    Research that studies security protections from the static analysis and framework analysis perspective includes works analyzing mitigations in frameworks in PHP, Ruby, Python, Java, but not JavaScript [27], [28]. Most often this research focuses on XSS, and we did not encounter any studies of CSRF protections specifically targeting server-side ...

  6. PDF Type Analysis for JavaScript

    JavaScript is an object-based language that uses prototype objects to model inheritance. As virtually all predefined operations are accessed via prototype objects, it is imperative that the analysis models these objects precisely. Objects are mappings from strings (property names) to values.

  7. JavaScript: the first 20 years

    This paper tells the story of the creation, design, evolution, and standardization of the JavaScript language over the period of 1995--2015. But the story is not only about the technical details of the language.

  8. Million.js: A Fast Compiler-Augmented Virtual DOM for the Web

    Interactive web applications created with declarative JavaScript User Interface (UI) libraries have increasingly dominated the modern internet. However, existing libraries are primarily made for run-time execution, and rely on the user to load and render web applications. This led us to create Million.js, a fast compiler-augmented virtual Document Object Model (DOM) for the web. Million.js ...

  9. 15949 PDFs

    Explore the latest full-text research PDFs, articles, conference papers, preprints and more on JAVASCRIPT. Find methods information, sources, references or conduct a literature review on...

  10. Analyzing best practices on Web development frameworks: The lift

    The paper equally explored Cake's built-in helpers, including the Asynchronous JavaScript And XML (AJAX) helper and explained how it worked with more advanced features. Shenoy ... Nevertheless, authors of this research paper consider that the comparison made above offers developers a way to select the Web framework that best suits their needs.

  11. (PDF) Type Analysis for JavaScript

    JavaScript is the main scripting language for Web browsers, and it is essential to modern Web applications. Programmers have started using it for writing complex applications, but there is still...

  12. PDF THE NATURE AND EVOLUTION OF JAVASCRIPT

    This thesis aimed to be a research paper by extracting the findings from multiple text-based sources and present them in two parts: the foundational definitions of ... JavaScript's original purpose, these limitations were imposed, creating a dynamic interaction with the user for very static web pages in the 90s. Nevertheless, as JavaScript ...

  13. [PDF] Semantics of asynchronous JavaScript

    This paper presents the first comprehensive formalization of the Node.js asynchronous execution model and defines a high-level notion of async-contexts to formalize fundamental relationships between asynchronous executions in an application. JavaScript code running in the Node.js runtime is a major platform for developers building cloud, mobile, or IoT applications.

  14. PDF Full Stack JavaScript: Web Application Development with MEAN

    based on a single language 'JavaScript'. [1.] This thesis was carried out as a research project on the topic 'Full Stack JavaScript'. The main objective of the thesis was to study the different components of the most popular Full Stack JavaScript framework, MEAN stack, and build a prototype application based on it.

  15. [Research Paper] Static JavaScript Call Graphs: A Comparative Study

    In this paper, we systematically compare five widely adopted static algorithms - implemented by the npm call graph, IBM WALA, Google Closure Compiler, Approximate Call Graph, and Type Analyzer for JavaScript tools - for building JavaScript call graphs on 26 WebKit SunSpider benchmark programs and 6 real-world Node.js modules.

  16. A large-scale empirical study of code smells in JavaScript projects

    JavaScript is a powerful scripting programming language that has gained a lot of attention this past decade. Initially used exclusively for client-side web development, it has evolved to become one of the most popular programming languages, with developers now using it for both client-side and server-side application development. Similar to applications written in other programming languages ...

  17. research-paper · GitHub Topics · GitHub

    JavaScript STORM-IRIT / pcednet-supp Star 16 Code Issues Pull requests Companion website for the paper PCEDNet: A Light-Weight Neural Network for Fast and Interactive Edge Detection in 3D Point Clouds learning point-cloud classification research-paper 3d pcednet Updated on Apr 25 JavaScript RUB-NDS / DISTINCT Star 4 Code Issues Pull requests

  18. [Research Paper] Static JavaScript Call Graphs: A Comparative Study

    [Research Paper] Static JavaScript Call Graphs: A Comparative Study DOI: 10.1109/SCAM.2018.00028 Conference: 2018 IEEE 18th International Working Conference on Source Code Analysis and...

  19. JavaScript and TypeScript Trends 2024: Insights From the Developer

    JavaScript is a dynamically typed language that people have leveraged heavily and effectively, but this means it is widely accepted that errors are only discovered at runtime. There's a shift towards the more type-safe TypeScript that can improve the overall developer experience, and the confidence developers have in their code.

  20. JavaScript trends in 2023. State of JavaScript report results

    Typescript popularity has been increasing for the last four year. Back in 2021, it was the most promising language for 2021 with a 78% usage ratio among professional developers and web development professionals. In 2023, TypeScript enjoys more interest than vanilla JavaScript - 20,7% of developers declare using nothing but TS as opposed to 8 ...

  21. PDF Web Page Designing Using Html, Css and Javascript

    WEB PAGE DESIGNING USING HTML, CSS AND JAVASCRIPT Rahul Semil*1 *1Student-4th Year, Department of Electronics (ECE), MITS Gwalior, Gwalior, M.P., India ABSTRACT This research paper discusses a number of important coding languages and software methods used within the web-based development process.

  22. Building a Research Assistant Tool with AI and JavaScript

    Step 2: Initialize a new Node.js project. The command below will create a new package.json in your folder:. npm init -y Step 3: Install OpenAI Node SDK. Run the following command:

  23. JavaScript Research Paper: 6 Writing Tips to Craft a Masterpiece

    A properly researched research paper will take you much further than a rushed piece. Try to look at all aspects of the paper that you're writing. Get information from various sources so that you do not have a one-sided, biased viewpoint. Use a blend of sources, for example, use the internet, the library and journals to formulate the research ...

  24. (PDF) Research and Analysis of the Front-end Frameworks and Libraries

    Finally, the paper summarizes the contributions and concludes with some possible future of front-end development in e-Business. Discover the world's research 25+ million members

  25. Research and Application of Node.js Core Technology

    Research and Application of Node.js Core Technology Abstract: Web development companies and developers can choose a variety of technology stacks to build Web applications. In the early days of network development, different technologies were used for front-end and back-end development.

  26. JPMorgan Chase, TD draw AI talent through research labs

    JPMorgan Chase's AI research group has published 400 papers. TD Bank Group's AI group, Layer 6, published 14 in 2023. JPMorgan Chase's artificial intelligence research team has published more than 400 papers, far more than any other large bank, according to research conducted by Evident. The group ...

  27. Snap Video: Scaled Spatiotemporal Transformers for Text-to-Video Synthesis

    Contemporary models for generating images show remarkable quality and versatility. Swayed by these advantages, the research community repurposes them to generate videos. Since video content is highly redundant, we argue that naively bringing advances of image models to the video generation domain reduces motion fidelity, visual quality and impairs scalability. In this work, we build Snap Video ...

  28. Data, Privacy Laws and Firm Production: Evidence from the GDPR

    Founded in 1920, the NBER is a private, non-profit, non-partisan organization dedicated to conducting economic research and to disseminating research findings among academics, public policy makers, and business professionals.

  29. OpenAI teases an amazing new generative video model called Sora

    OpenAI has built a striking new generative video model called Sora that can take a short text description and turn it into a detailed, high-definition film clip up to a minute long.. Based on four ...