---
title: "Splitting up sentences with Intl.Segmenter"
publication: "JavaScript Weekly"
issue: 617
published_at: "2022-12-02"
canonical_url: "https://javascriptweekly.com/issues/617"
---

Plus TC39 themes, making the JS ecosystem faster, going from Vue to Svelte, and let's give Mithril.js a chance. |        

#​617 — December 2, 2022 

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

Together with [![AppSignal logo\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,e_trim,w_700,h_120/e_make_transparent/co_white,e_outline:7/lme8p344dw1aodshz9px.png)](https://blog.appsignal.com/2022/11/24/appsignal-3-0-for-nodejs-introduces-opentelemetry-support.html?utm_source=javascript-weekly-sponsored&utm_medium=email&utm_campaign=2022-11-24)  

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/kn5qxhrls2cd9olmbedl.jpg)](https://marvinh.dev/blog/speeding-up-javascript-ecosystem/)  

[Speeding Up the JS Ecosystem, One Library at a Time](https://marvinh.dev/blog/speeding-up-javascript-ecosystem/) — JavaScript projects are often so reliant upon dependencies that there are many opportunities to speed up swathes of the ecosystem by fixing small performance issues. Here, one of [Preact’s](https://preactjs.com/) developers shares how he’s been discovering such low hanging, yet hidden, fruit. Learning these techniques will take you (and us, hopefully) far. 

Marvin Hagemeister   

TC39 Updates: [The 93rd Meeting of Ecma TC39](https://github.com/tc39/agendas/blob/main/2022/11.md) — JavaScript's esteemed council of elders (not quite, but you get the idea) got together ([photographic proof](https://twitter.com/Jason_williams/status/1598072130100346880/photo/1)) over the past few days to advance various proposals. [Iterator Helpers](https://github.com/tc39/proposal-iterator-helpers), [Explicit Resource Management](https://github.com/tc39/proposal-explicit-resource-management) and [Set Methods](https://github.com/tc39/proposal-set-methods) all move to stage 3. 

TC39 and Miscellaneous   [![\](https://copm.s3.amazonaws.com/0ac5c3fa.png)](https://blog.appsignal.com/2022/11/24/appsignal-3-0-for-nodejs-introduces-opentelemetry-support.html?utm_source=javascript-weekly-sponsored&utm_medium=email&utm_campaign=2022-11-24) 

[AppSignal for Node.js 3.0 Introduces OpenTelemetry Support](https://blog.appsignal.com/2022/11/24/appsignal-3-0-for-nodejs-introduces-opentelemetry-support.html?utm_source=javascript-weekly-sponsored&utm_medium=email&utm_campaign=2022-11-24) — AppSignal now supports OpenTelemetry, the open-source standard for telemetry data collection. We’ve also added support for 6 new integrations in this release. 

AppSignal sponsor   

Electron.js Roundup: [v22.0 Released, Bye Windows 7, and Hi _Forge_](https://www.electronjs.org/blog/electron-22-0) — The long standing cross-platform desktop framework continues to evolve. v22 jumps up to Chromium 108 and Node 16.17.1. Also: 

- [Support for Windows 7, 8, and 8.1 ends here.](https://www.electronjs.org/blog/windows-7-to-8-1-deprecation-notice) v22 is the final version to support Windows < 10.
- [Electron Forge 6.](https://www.electronjs.org/blog/forge-v6-release) _Forge_, now totally rewritten, is now the official 'batteries-included' build tool for packaging and distributing Electron apps. 

OpenJS Foundation   

**IN BRIEF:** 

- 🎄 Like puzzles? This year's [Advent of Code](https://adventofcode.com/) has begun.
- 📅 There's an online [_Rust for JavaScript Developers_ workshop](https://workshop.shuttle.rs/) taking place on December 14 where you'll see an Express.js app rewritten into Rust. It's free but I imagine there's a limit to numbers.
- Eagerly awaiting TypeScript 5? [There's a TypeScript 5.0 iteration plan.](https://github.com/microsoft/TypeScript/issues/51362) The first beta is due in late January 2023.
- The [_Storybook_](https://storybook.js.org/) project (popular component dev tool) has [shared an update on a new API](https://storybook.js.org/blog/framework-api/) designed to make support for things like Vite, Next.js, Svelte, Remix and Nuxt easier to roll out in 2023. _"Zero-config support for any framework."_   

**RELEASES:** 

- [Tesseract.js 4.0](https://github.com/naptha/tesseract.js/releases/tag/v4.0.0)
 ↳ Pure JS OCR for more than 100 languages.
- [Superagent 8.0.4](https://github.com/visionmedia/superagent) – Popular HTTP client API.
- [Prisma 4.7](https://github.com/prisma/prisma/releases/tag/4.7.0)
 ↳ Next-gen ORM for Node.js & TypeScript.
- [Lerna 6.1](https://github.com/lerna/lerna)
 ↳ Build multiple packages from the same repo.
- [Node.js 19.2.0 (Current)](https://nodejs.org/en/blog/release/v19.2.0/)  

📒 Articles & Tutorials 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/sj0voyc0jjhv1dd1jod3.jpg)](https://www.stefanjudis.com/today-i-learned/how-to-split-javascript-strings-with-intl-segmenter/)  

[Splitting Strings into Sentences, Words or Graphemes with `Intl.Segmenter`](https://www.stefanjudis.com/today-i-learned/how-to-split-javascript-strings-with-intl-segmenter/) — No libraries needed here. Give `Intl.Segmenter` a locale and granularity and it'll divide up your strings to your heart’s content. [It has broad support](https://caniuse.com/mdn-javascript_builtins_intl_segmenter_segment) except for, curiously, Firefox. 

Stefan Judis   

[Migrating from Vue 2 to Svelte](https://escape.tech/blog/from-vue2-to-svelte/) — After two years of Vue 2, a team had a decision to make: move to Vue 3 or give Svelte a try? 

Sophie Boulaaouli (Escape)   

[Breakpoints and `console.log` Is the Past, Time Travel Is the Future](https://wallabyjs.com/?utm_source=cooperpress&utm_medium=javascriptweekly&utm_content=javascriptweekly) — 15x faster JavaScript debugging than with breakpoints and console.log, now with support for Vitest. 

Wallaby.js sponsor   

[Working with Zustand for Easier React State Management](https://tkdodo.eu/blog/working-with-zustand) — Some tips for using [Zustand](https://zustand.surge.sh/), a quite minimal state management library with a rather enthusiastic userbase, I've found. 

TkDodo   

📊 [An Introduction to the LibJS JavaScript Engine](https://docs.google.com/presentation/d/1-chE3GTNFnNRwZqk4Bf3GCPV_nINfKG-NUTM4IeEnVc/edit#slide=id.p) — An interesting slide deck about a JS implementation you’ve probably not heard of (but which has a [very strong showing](https://twitter.com/awesomekling/status/1596779722184105984) in [test262 conformance](https://libjs.dev/test262/)). 

Linus Groh   

V8: [Pointer Compression in Oilpan](https://v8.dev/blog/oilpan-pointer-compression) — This is _barely_ about JS but shows off the low level optimizations the V8 team does to make JavaScript more efficient for us. This is about using smaller pointers, because who _needs_ 64 bits anyway? 

Bikineev and Lippautz (V8 Team)   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/morrvybxax46slpw8rix.jpg)](https://tympanus.net/codrops/2022/11/29/sketchy-pencil-effect-with-three-js-post-processing/)  

[Sketchy Pencil Effect with Three.js Post-Processing](https://tympanus.net/codrops/2022/11/29/sketchy-pencil-effect-with-three-js-post-processing/) — 3D development always gets my head spinning a bit, but this sketched pencil effect is quite unique. 

Maya Nedeljković Batić   

[The State of Notifications Report - User Preferences](https://www.courier.com/download-state-notification-report/?source=email&utm_medium=javascript-weekly-12-2&utm_content=state-of-notifications) 

Courier.com sponsor   

[On Building a New JS Linting Experience for Visual Studio](https://devblogs.microsoft.com/visualstudio/building-a-new-javascript-linting-experience-in-visual-studio/) 
Maria Solano (Microsoft)   

[Testing Static Types in TypeScript](https://2ality.com/2022/11/testing-static-types-typescript.html) 
Dr. Axel Rauschmayer  

🛠 Code & Tools  

[Neutralino.js 4.9: Lightweight Cross Platform Desktop App Framework](https://github.com/neutralinojs/neutralinojs/releases/tag/v4.9.0) — Think Electron but with a rather different approach: no embedded Chromium or Node.. it uses a system’s existing Web browser APIs, with the resulting pros and cons. v4.9 adds a new API supporting custom backend code in _any_ language (that can communicate over a WebSocket).[Homepage](https://neutralino.js.org/). 

Neutralinojs   

[Mithril.js: Client-Side Framework for Single Page Apps](https://mithril.js.org/) — A neat alternative to things like Vue, React or Angular. It’s been around for years and deserves more attention we feel. Mithril is compact, fast, and runs closer to vanilla JS than the alternatives so is well suited for bringing together vanilla JS libraries. Want to compare it to `$your_favorite_framework`? [Here you go](https://mithril.js.org/framework-comparison.html). 

Mithril   

[A Professional Scheduling Component for React, Vue, Angular Apps](https://bryntum.com/products/schedulerpro/) — Schedule doctors, machines or your next trip to Mars. Easily done with the Scheduler Pro widget. Free 45-day trial. 

Bryntum sponsor   

[Vanilla Extract: Zero-Runtime Stylesheets in TypeScript](https://vanilla-extract.style/) — Using TypeScript as a preprocessor, you can use this framework agnostic approach to write type-safe, static CSS. Not my cup of tea, but the homepage does a good job on selling the idea. 

SEEK   

[Choices.js 10.2: A Configurable Select Box/Text Input Plugin](https://choices-js.github.io/Choices/) — Lots of examples or you can go straight to [the GitHub repo](https://github.com/Choices-js/Choices). 

Josh Johnson   

[Reapop 4.2: Customizable Notifications for React Apps](https://louisbarranqueiro.github.io/reapop/) — This project’s homepage is a big self demo. Keep clicking on “Random notification” to fill your view. [GitHub repo](https://github.com/LouisBarranqueiro/reapop). 

Louis Barranqueiro     

💻 Jobs  

[Software Engineer](https://www.stickermule.com/career/6de4ccd8-7e58-4b65-9a25-62354972bdbd) — Join our "kick ass" team. Our software team operates from 17 countries and we're always looking for more exceptional engineers. 
Stickermule   

[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) — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers. 
Hired      

- [jsdoc-to-markdown 8.0](https://github.com/jsdoc2md/jsdoc-to-markdown)
 ↳ Generate Markdown from [JSDoc](https://en.wikipedia.org/wiki/JSDoc)-annotated JS.
- [`<relative-time>` 4.0](https://github.com/github/relative-time-element/releases/tag/v4.0.0)
 ↳ GitHub's Web Component extension to`<time>`.
- [Bootbox.js 6.0](https://github.com/makeusabrew/bootbox)
 ↳ Bootstrap `alert`, `confirm` & modal wrappers.
- [Minimatch 5.1.1](https://github.com/isaacs/minimatch)
 ↳ Glob matcher library, as used in npm.
 `minimatch("bar.foo", "*.foo")`
- 🎸 [SVGuitar 2.2](https://github.com/omnibrain/svguitar) – SVG guitar chord rendering.
- [TWGL.js 5.3](https://github.com/greggman/twgl.js) – WebGL, but less verbose.
- [React Tabs 6.0](https://github.com/reactjs/react-tabs) – Accessible tab component.
- [OCLIF 3.3](https://github.com/oclif/oclif) – Node.js CLI framework.          

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
