---
title: "JavaScript, ML and LLMs"
publication: "JavaScript Weekly"
issue: 654
published_at: "2023-09-14"
canonical_url: "https://javascriptweekly.com/issues/654"
---

Plus JavaScript's newest bun.. time, and a first look at TypeScript 5.3. |        

#​654 — September 14, 2023 

[Read on the Web](https://javascriptweekly.com/issues/654)  

Together with [![Bryntum\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_560,h_100/e_make_transparent/co_white,e_outline:7/hs9vs3jkbbbrfz0twgvk.png)](https://bryntum.com/?utm_source=newsletter&utm_medium=email&utm_id=jsweekly-primary-20230914)  

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/vrfn1qbdceqs7xqnrkii.jpg)](https://bun.sh/blog/bun-v1.0)  

[Bun 1.0: Is It a Toolkit? Is It a Runtime? It's Both](https://bun.sh/blog/bun-v1.0) — You’ve used [Node](https://nodejs.org/en), you’ve seen [Deno](https://deno.com/), now [_Bun_](https://bun.sh/) has grown up too. It’s a performance-oriented server-side JS runtime built atop _JavaScriptCore_ and makes the unique claim of being _“a drop-in replacement for Node.js.”_ It includes extras like transpilation, bundling, package management, and a Jest-compatible test runner too. The post goes into a _lot_ of depth, but we enjoyed the Bun team’s [▶️ 10 minute introductory video](https://www.youtube.com/watch?v=BsnCpESUEqM). Does Bun deliver on all its promises yet? No. Is it promis_ing_? Yes. 

Jarred Sumner et al.   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/rclmnw09fy2zgzst7hgo.jpg)](https://bun.sh/blog/bun-v1.0)   

[Why Does `every()` Return `true` for Empty Arrays?](https://humanwhocodes.com/blog/2023/09/javascript-wtf-why-does-every-return-true-for-empty-array/) — Nicholas wondered how a condition can possibly be satisfied when there aren’t any values to test, so he dug into the language specs to understand the logic. 

Nicholas C. Zakas   [![\](https://copm.s3.amazonaws.com/737abac7.png)](https://bryntum.com/?utm_source=newsletter&utm_medium=email&utm_id=jsweekly-primary-20230914) 

[The Complete UI Component Library For Enterprise Web Apps](https://bryntum.com/?utm_source=newsletter&utm_medium=email&utm_id=jsweekly-primary-20230914) — A professional UI component library with power widgets like data grid, calendar, scheduler & Gantt charts. Includes API docs, guides and an unreasonable amount of demos to play with. Seamlessly integrates with React, Angular, Vue & Salesforce apps. 

Bryntum sponsor   

[A First Look at TypeScript 5.3](https://www.totaltypescript.com/typescript-5-3) — [TypeScript 5.2](https://devblogs.microsoft.com/typescript/announcing-typescript-5-2/) landed a few weeks ago, which means TypeScript 5.3 is already in the works (the final release is [due in November](https://github.com/microsoft/TypeScript/issues/55486)), with possible features to think about including Import Attributes, throw expressions, and isolated declarations. 

Matt Pocock   

**⚡️ IN BRIEF:** 

- 📅 [ViteConf](https://viteconf.org/23/) is taking place this October 5-6. It's free and online.
- The [August 2023 build of VS Code has just been released](https://code.visualstudio.com/updates/v1_82) and includes improvements to the JS debugger including WebAssembly module decompilation, as well as _Move to File_ and _Inline Variable_ refactorings.
- Linus Groh is working on a JavaScript engine in Zig called [Kiesel](https://codeberg.org/kiesel-js/kiesel), mostly as a learning project, but [it's passing 25% of test262 after four months](https://linus.dev/posts/kiesel-devlog-1/) of effort.
- While searching for something else, I encountered [this JavaScript tutorial from 1996](http://home.ubalt.edu/abento/js-tutor/javascr.htm) that's still online. Amazingly, most of it still works fine today.
- Esteemed Microsoft code archaeologist Raymond Chen [looks at how freestanding JS functions using `this` can be mistaken for a constructor](https://devblogs.microsoft.com/oldnewthing/20230907-00/?p=108734) by VS Code’s static analyzer.   

**🎉 RELEASES:** 

- [MikroORM 5.8](https://mikro-orm.io/blog/mikro-orm-5-8-released) – Powerful Node.js ORM.
- [Reason 3.10](https://reasonml.github.io/) – Write code in OCaml, but for the JS ecosystem.
- [Happy DOM 11.0](https://github.com/capricorn86/happy-dom) – A JS implementation of a web browser _sans_ UI.
- [Node.js v20.6.1 (Current)](https://nodejs.org/en/blog/release/v20.6.1)  

📒 Articles & Tutorials 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/l9grzs1mijbzfwab1pky.jpg)](https://philna.sh/blog/2023/09/14/javascript-array-grouping-methods/)  

[JavaScript's New Array Grouping Methods](https://philna.sh/blog/2023/09/14/javascript-array-grouping-methods/) — A look at `Object.groupBy` and `Map.groupBy`. [The proposal including these methods](https://github.com/tc39/proposal-array-grouping) is currently at stage 3 at TC39, but initial support is creeping into dev builds of browsers. 

Phil Nash   

[JPEG and EXIF Data Manipulation in JavaScript](https://getaround.tech/exif-data-manipulation-javascript/) — A look at how to pick through the JPEG format and read and replace EXIF tags directly without leaning on a third party library. 

Cédric Patchane   

[Frontend Performance Monitoring 101](https://sentry.io/resources/frontend-performance-monitoring-101/?utm_medium=paid-community&utm_source=javascriptweekly&utm_campaign=perf-fy24q3-101workshop&utm_content=newsletter-performance101workshop-register) — Learn the basics of JavaScript application performance monitoring to see (and fix) slow faster. Join us for a live AMA. 

Sentry sponsor   

▶[Building a Mario Game Complete with Auth and Score Saving](https://www.youtube.com/watch?v=1CVSI3MZNNg) — Ania tackles the implementation of a game in her usual thorough, step-by-step manner. 

Ania Kubów   

[Running a Playwright Script on AWS Lambda](https://steele.blue/playwright-on-lambda/) — If you’ve struggled to make it work too, Matt has some pointers. 

Matt Steele   

[A New Method to Validate URLs](https://www.stefanjudis.com/blog/validate-urls-in-javascript/) — `URL.canParse` [isn’t broadly supported](https://caniuse.com/?search=canParse) yet, but can be easily polyfilled. 

Stefan Judis   

[How to Run a GitHub Gist with `npx`](https://gist.github.com/kfox/1280c2f0ee8324067dba15300e0f2fd3) — This is an interesting way to quickly deploy a script. 

Kelly Fox   

🕑 Lei Mao has a cute example of using React in an ad-hoc way on a web page [to dynamically render an analog clock.](https://leimao.github.io/blog/Real-Time-React-Analog-Clock/) No build step. No JSX. 

▶️ Jack Herrington refutes [six reasons not to use React.](https://www.youtube.com/watch?v=4QFI4Fd4e0o)  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/gqztxef6fpsp8lvpl52n.jpg)](https://www.shadcn-vue.com/)   

[Shadcn for Vue: Components You Can Copy and Paste](https://www.shadcn-vue.com/) — A community-led Vue port of the [React-oriented shadcn/ui](https://ui.shadcn.com/), a suite of attractive components built with Tailwind CSS and Radix UI, thus making them easy to ‘copy and paste’ into your own apps. 

Radix Vue Project   

[FlexGrid by Wijmo: The Industry-Leading JavaScript Datagrid](https://www.grapecity.com/wijmo/flexgrid-javascript-data-grid?utm_source=CooperPress&utm_medium=JavaScript-Weekly&utm_campaign=FlexGrid-JS-Weekly-Minor-Sponsor-9-23) 

Wijmo from GrapeCity sponsor   

[npm-check-updates: Update `package.json` Dependencies to Latest Versions](https://github.com/raineorshine/npm-check-updates) — That is, as opposed to the _specified_ versions. It include a handy `-i` interactive mode so you can look at potential upgrades and then opt in to them one by one. 

Raine Revere   

[Starry Night 3.0: GitHub-Like Syntax Highlighting](https://github.com/wooorm/starry-night) — GitHub’s own syntax highlighter isn’t open source, but _Starry Night_ uses WebAssembly (to get access to the Oniguruma regex engine) to get as close as it can. 

Titus Wormer   

[Vuestic 1.8: Open Source UI Library for Vue 3](https://github.com/epicmaxco/vuestic-ui) — A library of more than 60 customizable components. [v1.8](https://github.com/epicmaxco/vuestic-ui/releases/tag/v1.8.0) introduces new Layout and Textarea components. [Official homepage](https://vuestic.dev/). 

Epicmax   

[Goxygen 0.7: Quickly Generate a Go Backend for a JS Project](https://github.com/Shpota/goxygen) — A tool that sets up a new Go-based project with Angular, React, or Vue in the front-end, and Docker and Docker Compose files to make it all work. 

Sasha Shpota   

[Deliver Real-Time Live Streams with Amazon IVS](https://aws.amazon.com/blogs/aws/new-deliver-interactive-real-time-live-streams-with-amazon-ivs/) — Amazon IVS enables developers to create dynamic real-time and low-latency video experiences. [Click here](https://aws.amazon.com/blogs/aws/new-deliver-interactive-real-time-live-streams-with-amazon-ivs/) to learn more. 

Amazon Web Services (AWS) sponsor   

[xterm.js 5.3.0: Build Terminals in the Browser](https://xtermjs.org/) — It’s used in [many projects](https://github.com/xtermjs/xterm.js#real-world-uses) like VS Code, cPanel, Azure Cloud Shell, and other browser-based IDEs. There’s a live demo on the homepage to try. 

xterm.js team   

- [Gridstack.js 9.2](https://github.com/gridstack/gridstack.js)
 ↳ Build interactive dashboards in minutes. ([Demos.](https://gridstackjs.com/#advancedDemo))
- [Accessible Astro Starter 3.0](https://github.com/markteekman/accessible-astro-starter)
 ↳ A starter theme for an Astro-powered blog.
- [Ant Design 5.9](https://ant.design/)
 ↳ Popular React UI library & design language.
- [📊 Reveal.js 4.6](https://revealjs.com/) – Write presentations in HTML.
- [Electron 26.2](https://github.com/electron/electron/releases/tag/v26.2.0)    

💻 Jobs  

[Find JavaScript Jobs with Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-javascriptweekly%29&utm_content=find-your-next-job) — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now. 
Hired     

🤖 A little JavaScript AI-side..  

AI, LLMs and machine learning have caught the imagination of many developers recently, whether through training and deploying models, calling out to third party APIs (like those OpenAI offers), or using tools like [GitHub Copilot](https://github.com/features/copilot) to write code. It's common, however, for a lot of AI/LLM experimentation to take place in Python, rather than JavaScript.. 

Nonetheless, there's an increasing number of projects in the JavaScript AI/ML space worth keeping an eye on, as well as an upcoming AI developer event being organized by two folks from the JavaScript space:   

[Transformers.js: State-of-the-Art Machine Learning for the Web](https://huggingface.co/docs/transformers.js/index) — A JavaScript library designed to be functionally equivalent to Hugging Face’s `transformers` Python library meaning you can run the same pretrained models using a very similar API. You can do things like [ML-powered speech recognition directly in your browser](https://huggingface.co/spaces/Xenova/whisper-web) using OpenAI’s _Whisper_ model. [GitHub repo.](https://github.com/xenova/transformers.js) 

Joshua Lochner et al.   

[Microsoft TypeChat: An Approach for Type-Safe LLM Responses](https://microsoft.github.io/TypeChat/blog/introducing-typechat/) — Anders Hejlsberg and Daniel Rosenwasser of TypeScript fame are just two of the prominent names attached to this project, demonstrating the huge interest within MS for LLMs. _TypeChat_’s goal is to work around the issue of LLMs outputting unstructured natural language and to direct output into a _typed_ form. 

Hejlsberg, Lucco, Rosenwasser et al.   

[WebLLM: Run LLM Models in the Browser with WebGPU](https://webllm.mlc.ai/) — Less directly JavaScript, as it uses WebGPU, but yet another way to run large language models directly within the browser and that you can control from JavaScript. [GitHub repo.](https://github.com/mlc-ai/web-llm) 

MLC LLM   

[TensorFlow.js: Machine Learning for JavaScript Developers](https://www.tensorflow.org/js) — Slightly lower level, but a great way to train and deploy models in the browser or in Node.js. There are, of course, [lots of demos,](https://www.tensorflow.org/js/demos) too. 

TensorFlow   

[JavaScript Library Lets Devs Add AI Capabilities to the Web](https://thenewstack.io/javascript-library-lets-devs-add-ai-capabilities-to-web/) 
Loraine Lawson (The New Stack)   

▶[A Primer on AI for Developers with Swyx from Latent Space](https://www.svelteradio.com/episodes/a-primer-on-ai-for-developers-with-swyx-from-latent-space) 
Svelte Radio    

**📅 Plus, two JavaScript folks are putting on an AI event..** 

As part of my interest in AI and ML, I'm attending what promises to be the technical AI event of the year in San Francisco next month: [The AI Engineer Summit.](https://www.ai.engineer/summit) 

The emerging 'AI engineer' category is at the intersection of AI/ML and code: where software engineers can access and implement powerful AI models with just an API. Andrej Karpathy believes that _"there's probably going to be significantly more AI engineers than there are ML engineers / LLM engineers."_ 

With speakers representing companies like OpenAI, Microsoft, Replit, Vercel, AutoGPT, Adept, LlamaIndex, and Notion, at the Hotel Nikko this October 8-10, the event is organized by two folks well known in our space: Swyx (who you may remember from his popular [The Third Age of JavaScript](https://www.swyx.io/js-third-age) post) and Benjamin Dunphy, formerly of Reactathon and Jamstack Conf. You can [apply to attend](https://ai.engineer/summit) or [get a free remote ticket](https://ai.engineer/summit) to tune in from wherever you are. 

If you're going to the _AI Engineer Summit,_ I'll see you there! 

👋         

Published by [Cooperpress](https://cooperpress.com/) and edited by [Peter Cooper](https://twitter.com/cooperx86) 

'JavaScript' is a trademark of Oracle Corporation in the US
We are not endorsed by or affiliated with Oracle. 

[Change your email address](https://javascriptweekly.com/edit_subscription/*|UID|*) or [stop getting this newsletter](https://javascriptweekly.com/leave/*|UID|*). 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
