We have prepared this article in order to compare both approaches and present the list of in house and outsourcing advantages and disadvantages. We hope that it will help you choose the option that suits you best.
When I started my adventure with programming, I couldn’t understand why there were so many paths to choose from, even with my limited knowledge of programming languages and frameworks. The possibility of creating games was what pushed me into programming, so I went for Java (I also didn’t know about Unity either).
After hours of blood, sweat, and tears, I created my first RPG with 2 NPCs, one player, a simple map, 4 dialogs and a few actions. Realizing this was not worth it, I gave up and started searching for a simpler way. When I discovered Processing, I fell in love with it; everything was so much simpler. I could make similar things in the browser window using P5.js with very few syntax changes.
This euphoria lasted until I tried to create my first ‘serious’ app. I was aiming to simulate a wind effect on a map of Poland using real data from weather stations with P5.js. The end result was to create thousands of particles flowing across a map, leaving traces and drawing wind movement, something a little like this. After some experimentation, I discovered my method made it terribly laggy and slow. I didn’t have enough skills to optimize it any better, so again I gave up. I started to focus more on optimizing my code and gaining more understanding. There are two basic ways: either it’s simple or it’s fast.
- You can use Processing, but it won’t be as fast as Java.
- You can use Node.js, but it won’t be as fast as Go or Rust.
|Rust||3.15||159,212||756||11.53||87% 92% 88% 100%|
|Go||25.25||374,780||1013||87.65||87% 88% 86% 86%|
|Node.js||28.93||892,352||994||96.16||84% 81% 82% 85%|
Binary-tree benchmark via Benchmarks Game
So why even bother?
So why is everyone so hyped about Node? The example above may not apply in reality, but it still demonstrates that Rust can be as much as 9 times faster than Node!
With its huge community and brilliant package tool, Node is developing at an outstanding rate. Their most recent package registered sales of NPM in excess of one million!
Last year chart via Medium
Yes, it’s true. You can write programs for microcontrollers (ESP32-WROVER) using Node. Here’s a link if you’re interested: https://www.lowjs.org/.
Without going into too much detail about React Native or Flutter, it’s even simpler to create a Node application on your mobile device.
3. Desktop applications
Electron allows you to create a desktop application using Node. It’s not the greatest solution, but if you want to make some simple, memory-cheap application or move an existing web one, you should really consider trying it.
But remember not to rely on Electron when dealing with high RAM utilization. Read more about why not here.
Content Management Systems are dominated by PHP solutions.
Over 61% of sites with CMS use WordPress and less than 0.1% use Node’s most popular headless CMS – Ghost. While it will take years to overtake that market, I believe this perspective of writing the same language in frontend and backend will win over many full-stack developers. I hope to see Ghost integration and webhooks in further development, so writing custom plugins will be as easy as in WP or even easier. Remember how powerful a tool NPM is and imagine similar plugin library for your CMS. Wouldn’t it be great?
5. Web Development, React SSR, Pug
6. Node OS (Fuchsia)
To elaborate a bit:
– The “new platform” is Fuchsia.
– The position is a full-time software engineer position at Google Munich.
– I’m not considering remote at this point in time.
– Experience with Node.js core development, C++, and C++ toolchain would come in handy.
— Yang Guo (@hashseed) March 19, 2019
Conclusion – Node is one language to rule them all?
So is Node.js our ultimate “one ring to rule them all”? Of course not, it’s just a catchy title. There is no #1 programming language and probably never will be.
But it is a very interesting multipurpose tool which allows you to quickly create prototypes of all sorts of applications. It’s perfect when creating MVP and I, for one, am really looking forward to its bright and glorious future.