<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Programming on Olivier Lespagnon</title><link>https://olivierlespagnon.com/tags/programming/</link><description>Recent content in Programming on Olivier Lespagnon</description><generator>Hugo -- gohugo.io</generator><language>fr</language><lastBuildDate>Mon, 13 Feb 2023 08:06:25 +0600</lastBuildDate><atom:link href="https://olivierlespagnon.com/tags/programming/index.xml" rel="self" type="application/rss+xml"/><item><title>NodeJS is broken</title><link>https://olivierlespagnon.com/posts/tech/nodejs-is-broken/nodejs_is_broken/</link><pubDate>Mon, 13 Feb 2023 08:06:25 +0600</pubDate><guid>https://olivierlespagnon.com/posts/tech/nodejs-is-broken/nodejs_is_broken/</guid><description>&lt;p&gt;I&amp;rsquo;m not here to only critisize NodeJS. In fact it is the framework we use at my work, and in a LOT of companies.
It has served us well over the years in the browser, and after that, it has continued to help us on the server. Given the widespread knowledge of javascript, it&amp;rsquo;s understandable that many people also reach for it when implementing their backends.&lt;/p&gt;
&lt;h2 id="cpu"&gt;CPU&lt;/h2&gt;
&lt;p&gt;JavaScript&amp;rsquo;s main disadvantage on the server is its single-threaded nature, which makes it difficult to fully utilize all the cores available. Developers must manually distribute the work to enable more cores, which is challenging and can result in inefficiencies compared to other platforms. The most common approach is to create multiple application instances, one per core, to take advantage of available processing power. However, developers using Rust, Go, or .NET do not have to worry about this issue, as their selected async runtime will handle this for them.&lt;/p&gt;</description></item></channel></rss>