Logo
    Search

    Why the creator of Node.js® created a new JavaScript runtime

    enMarch 19, 2024

    Podcast Summary

    • Intel AI resourcesIntel's resources at intel.com/edgeai offer open-source code snippets and helpful guides for developers working on AI applications using popular models like Yolo v8 and PADM, potentially saving time and resources during development and deployment.

      For developers working on AI applications using popular models like Yolo v8 and PADM, Intel provides valuable resources such as open-source code snippets and helpful guides at intel.com/edgeai. This can help speed up development time and ensure seamless deployment of applications. During this episode of the Stack Overflow podcast, Ryan Dahl, the creator of Node.js and Deno, shared his journey into software development and the creation of Node.js in 2009. He left Node.js in 2012 but returned in 2019 with Bert Belder to improve the JavaScript runtime. They started Deno, which is TypeScript-first and uses Rust instead of C++ for implementation. Initially, Deno was a small project, but it gained significant attention and contributors. With the realization that there was a potential business opportunity, they founded the Deno company to continue building the open-source projects and commercial projects using the technology. When Node.js first emerged, most people thought of JavaScript as primarily for client-side programming. However, Ryan explained that programming web servers with JavaScript is similar to programming websites, making it a successful choice for server-side applications. For developers working on AI applications, Intel's resources at intel.com/edgeai can help streamline the development process and ensure successful deployment, ultimately saving time and resources.

    • Node.js and JavaScript connectionNode.js, built on JavaScript, is popularly used for web server programming due to its minimal IO capabilities and single threaded nature, with an estimated tens of millions of developers using it. Deno, a JavaScript runtime, faces challenges in building an edge function system due to security and performance concerns.

      Node.js and JavaScript share a strong connection due to JavaScript's minimal IO capabilities and the single threaded nature of JavaScript, making it an ideal choice for programming web servers. Node.js's popularity is significant, with an estimated tens of millions of developers using it, and it plays a crucial role in powering websites through various applications like bundling JavaScript scripts. Deno, a newer player in the game, faces challenges in building an edge function system due to the complexity of handling untrusted code from numerous users while ensuring security and performance. The infrastructure, Deno Sub hosting, powers Netlify Edge Functions, and while it may seem simple, it requires careful consideration of security and performance concerns to efficiently respond to new requests.

    • Deno's focus on security and new abstraction layerDeno is a cloud-based runtime prioritizing security and offering a new abstraction layer for server development, allowing developers to focus on their applications without worrying about low-level details, with support for serverless functions and WebSockets.

      Deno is a cloud-based, multi-tenant JavaScript runtime focused on handling many users at once, with careful considerations given to security in regards to additions like file IO and WebSockets. Deno's architecture is serverless, meaning resources can be garbage collected at any moment, but WebSockets are supported for long-polling requests. The team behind Deno aims to create a new abstraction layer for servers, potentially surpassing the traditional Docker container and Linux syscall levels. This new layer would allow developers to focus on their applications without worrying about unnecessary details. An emerging abstraction layer, such as Deno Deploy and Deno sub hosting, is still under development and offers an alternative to traditional UNIX systems. Additionally, Ryan mentioned another project, JSR, which is an alternative to NPM, as part of Deno's efforts to level up the JavaScript ecosystem.

    • JavaScript ecosystem evolutionJSR is an initiative to extend NPM, offer modern security features, and provide a more secure and modern alternative for publishing JavaScript and TypeScript code.

      The JavaScript ecosystem, being the most important programming language for the web, requires continuous evolution to address its unique challenges. The current issue lies in the incompatibility between Common JS and ESM module systems, with Node being slow to adopt ESM. This complexity, coupled with the stagnation of NPM and its security concerns, calls for a modern solution. JSR (JavaScript Registry) is an initiative aimed at extending NPM and improving the JavaScript ecosystem. JSR offers a modern place to publish JavaScript and TypeScript code, providing a superset of NPM functionality. JSR packages can depend on NPM modules, ensuring compatibility and network effects. Security is a major concern in the current NPM ecosystem, with instances of hackers taking over modules and injecting malicious code. JSR addresses this by implementing modern security features, such as sigstore, which provides increased visibility into the code uploaded by random users. JSR is not intended to replace NPM but rather to complement it, offering a more secure and modern alternative for publishing JavaScript and TypeScript code. The importance of the JavaScript ecosystem necessitates continuous improvement, and initiatives like JSR are crucial steps towards addressing the challenges it faces.

    • Trust and security in software developmentCryptographic attestations and signatures on a blockchain help ensure transparency and trust in the origin and build process of software packages, while Deno's secure sandbox and controlled permissions mitigate risks associated with running untrusted code.

      The discussion revolves around the importance of trust and security in the development and distribution of software packages, specifically in the context of GitHub actions and Deno. The speakers emphasized the need for cryptographic attestations and signatures, which can be published on a blockchain, to ensure transparency and trust in the origin and build process of packages. This builds a web of trust and allows users to verify the authenticity and security of the code they are using. Additionally, Deno, a new JavaScript runtime, was highlighted for its security features, such as a secure sandbox and controlled permissions, which help mitigate the risks associated with running untrusted code from the internet. The speakers also mentioned the work of StackLock, a company founded by the co-founder of Kubernetes, which aims to address the security concerns and issues in the Node.js ecosystem, particularly with NPM. Overall, the discussion underscores the importance of trust and security in software development and distribution, and the potential benefits of implementing cryptographic attestations and secure runtime environments.

    • JavaScript Runtime (JSR)JSR is a new registry that enhances transparency and security for JavaScript packages, providing proper documentation, modern best practices, and a transparent ledger, aiming to trace all software running inside containers back to verified users, reducing supply chain risks, and designed to work alongside existing package managers.

      The Java Script Runtime (JSR) is a new registry aimed at enhancing the transparency and security of JavaScript packages. It's an open-source alternative to existing registries like NPM, and it focuses on providing proper documentation, modern best practices, and a transparent ledger for packages. The ultimate goal is to ensure that all software running inside containers can be traced back to verified users, reducing supply chain risks. JSR is still in its early stages, but it offers benefits without requiring a complete infrastructure overhaul. It's designed to work alongside existing package managers, and it's completely open source and MIT licensed. The registry aims to help mitigate the risks of the open-source movement, where the origin of code can sometimes be unclear, and to provide better attribution for all dependencies in a microservice.

    • JavaScript futureJavaScript is essential for web browsers, ECMAScript modules and TypeScript are shaping its future, and the browser will continue to dictate its evolution.

      JavaScript is here to stay, deeply embedded in web browsers and essential for the functioning of many online platforms. The future of JavaScript lies in closing the gap between browser and server-side code, with ECMAScript modules and TypeScript playing significant roles. The browser will continue to dictate the future of JavaScript, and TypeScript, as a useful superset of JavaScript with added types, is likely to become part of the standards over time. A great question from a Stack Overflow user was answered on the show, demonstrating the importance of sharing knowledge and asking questions in the JavaScript community.

    Recent Episodes from The Stack Overflow Podcast

    The problem with the tech debt mindset

    The problem with the tech debt mindset

    Chelsea Troy defines technical debt and maintenance load in her blog post, “Stop saying ‘technical debt.’”

    Learn more about technical bankruptcy in this blog post, “Monitoring debt builds up faster than software teams can pay it off.”

    Joel Spolsky’s classic blog post on avoiding rewriting code from scratch – Things you should never do, part I.

    Technical debt as explained by Ward Cunningham, who coined the term.

    Code as an asset, a conversation from Hacker News.

    Middleware is the “software glue” that provides services to applications beyond those available from the operating system. 

    Ratpack framework is a toolkit for creating high performance web applications.

    React is a front end javascript library.

    jQuery is a JavaScript library designed to simplify HTML.

    Questions about functional programming.

    User shout out! Nikoksr received the lifeboat badge after answering a question related to math.pow.

    Java, but why? The state of Java in 2024

    Java, but why? The state of Java in 2024

    You can connect with Lenny Primak at Flow Logix, X, LinkedIn, Github, or Mastodon

    Got questions about Java? Check out the site.

    Apache Groovy is a Java programming language. 

    Virtual Threads reduce the effort put into writing and maintaining code as well as observing high-throughput concurrent applications.

    Apache Shiro is an open-source security framework that can do authentication, authorization, cryptography, and session management. 

    Jakarta EE, or Jakarta Enterprise Edition, is a suite of services that helps developers write enterprise applications for the Java platform. 

    The framework helping devs build LLM apps

    The framework helping devs build LLM apps

    LlamaIndex is a data framework for building LLM applications. Check out the open-source framework or get started with the developer community, LlamaHub.

    Looking for a deeper understanding of RAG? Start with our guide.

    Wondering how to import `SimpleDirectoryReader` from LlamaIndex? This question has you covered.

    Jerry Chen is a partner at Greylock. Connect with him on LinkedIn.

    Read Jerry Lu’s posts on the LlamaIndex blog or connect with him on LinkedIn.

    We chat search from both sides now

    We chat search from both sides now

    Stack Overflow and Elastic are collaborating to improve the search experience using vector search and generative AI. Learn more about the new AI features for Stack Overflow for Teams, including Enhanced Search.

    Learn more about the Elastic platform, including vector search. Developers can start building here.

    Connect with Paul, Steffi, and Gregor on LinkedIn.

    Stack Overflow user chepner won a Lifeboat badge for answering How do I use __repr__ with multiple arguments?.

    What can devs do about code review anxiety?

    What can devs do about code review anxiety?

    Carol is an applied clinical and intervention scientist: she develops and tests cognitive, behavioral, and social interventions that activate key mechanisms to elicit change. Learn more about understanding and mitigating code review anxiety (the full version of her article is here).

    You can also check out the code review anxiety workbook.

    Pluralsight’s Developer Success Lab is a team of scientists studying how developers work, learn, and innovate. 

    Explore more of Carol’s work on code review anxiety, her bio, or her other work, from developer productivity and stress management to coding with GenAI. 

    Connect with Carol on LinkedIn or Mastodon.

    How to build open source apps in a highly regulated industry

    How to build open source apps in a highly regulated industry

    Before Medplum, Reshma founded and exited two startups in the healthcare space – MedXT (managing medical images online acquired by Box) and Droplet (at-home diagnostics company acquired by Ro). Reshma has a B.S. in computer science and a Masters of Engineering from MIT.

    You can learn more about Medplum here and check out their Github, which has over 1,200 stars, here.

    You can learn more about Khilnani on her website, GitHub, and on LinkedIn.

    Congrats to Stack Overflow user Kvam for earning a Lifeboat Badge with an answer to the question: 

    What is the advantage of using a Bitarray when you can store your bool values in a bool[]?

    A very special 5-year-anniversary edition of the Stack Overflow podcast!

    A very special 5-year-anniversary edition of the Stack Overflow podcast!

    Cassidy reflect on her time as a CTO of a startup and how the shifting environment for funding has created new pressures and incentives for founders, developers, and venture capitalists.

    Ben tries to get a bead on a new Moore’s law for the GenAI era: when will we start to see diminishing returns and fewer step factor jumps? 

    Ben and Cassidy remember the time they made a viral joke of a keyboard!

    Ryan sees how things goes in cycles. A Stack Overflow job board is back! And what do we make of the trend of AI assisted job interviews where cover letters and even technical interviews have a bot in the background helping out.

    Congrats to Erwin Brandstetter for winning a lifeboat badge with an answer to this question:  How do I convert a simple select query like select * from customers into a stored procedure / function in pg?

    Say goodbye to "junior" engineering roles

    Say goodbye to "junior" engineering roles

    How would all this work in practice? Of course, any metric you set out can easily become a target that developers look to game. With Snapshot Reviews, the goal is to get a high level overview of a software team’s total activity and then use AI to measure the complexity of the tasks and output.

    If a pull request attached to a Jira ticket is evaluated as simple by the system, for example, and a programmer takes weeks to finish it, then their productivity would be scored poorly. If a coder pushes code changes only once or twice a week, but the system rates them as complex and useful, then a high score would be awarded. 

    You can learn more about Snapshot Reviews here.

    You can learn more about Flatiron Software here.

    Connect with Kirim on LinkedIn here.

    Congrats to Stack Overflow user Cherry who earned a great question badge for asking: Is it safe to use ALGORITHM=INPLACE for MySQL?