@AntonPutra, me again from the original Rails vs NodeJS video. This is a great improvement, thank you so much! And shoutout to Konstantin Ilchenko for the PR
man, your videos are such a blast. nowadays google always show AI generated stuff when you look to compare benchmarks, it's nice to have these well crafted videos with these tests so we as developers can weigh the pros and cons. Keep the good work!
I think you should have gone completely the other way about this benchmark. Instead of changing Ruby implementation to be more 'barebones' it would be more interesting to see Ruby on Rails vs NestJS/AdonisJS (some MVC framework).
@nothassy784 I can already tell it blows everything out of the water. It had the use case of millions of real-time connected users that required no down time and had to make a single application run on multiple cores across a network decades before the internet was in the hands of consumers and before Javascript was a concept. The erlang vm truely is a work of art.
Quick investigation shows that Ruby uses a third-party HTTP server, 'rage-iodine,' written in C-so it's not purely Ruby. To keep things fair, should we compare by using a third-party HTTP server like uWS for Node.js too? That way, it's mangoes to mangoes.
well, my original version was slow, but I got a PR with 5-10 improvements. I'll test it in the future with Django. PR - github.com/antonputra/tutorials/pull/335
But it useless anyway how many projects use 'vanila ruby' without any Rails and sticks and whatever? So Interesting real scenarios not 'fine-tune-useless-thing'
@@maksimmuruev423I’ll entertain the idea that Rails is slow, but it is indeed fast enough and getting better all the time. It is also super easy to slim down or optimize due to its emphasis on conventions. I’ve worked in Rails for over 12 years and strayed plenty of times. Nothing comes close to the productivity gains. Meat Rails apps are mostly created because it’s so easy to use people build projects that outgrow their capability. People who know what they’re doing make Rails scream.
In language benchmarks too, Ruby is slow. It's quick here because the code was purposely written for this benchmark specifically and use an HTTP server written in C.
Thank you so much for making this video. I am a Polyglot programmer and Rails is my happy place. The one area I have absolutely zero experience is Kubernetes as it’s not widely used in the eco system. I didn’t care that the last episode compared Rails to Node. It’s not a competition. I mean by definition it technically it is, but technically correct isn’t actually the best kind of correct 😅 I feel like you got more push back than you deserved from that video, but for me I was just curious what was going on with the K8 configuration. I’m super happy to see this update. Thanks to you and whomever created the PR. I didn’t have time but it’s been bugging me since last week. One of these days I’ll have to use K8s, and I’ll look for your content :)
I am sure this is a stupid idea, but I would like to see how does AWS k8 clustter compares to a single $1-2k custom built ('gaming' hardware or pro server component whatever) physical server, and an application (Java, Dotnet, PHP, Node, Ruby whatevre) and DB running directly on the OS (No VMs, no docker etc). Second scenario, $1 - 2k single server running k8 and the infra, vs AWS. I have computers like this Dell Latitude Laptop that's 14yo, has been used almost on a daily basis until recently, still works, and also regular consumer grade custom build PCs around same age and even older. But yeah, no horizontal (at least no auto) scaling here.
actually, you can easily use them for CI/CD as agents or workers. Even GitHub Actions allows you to use your own hardware, even from your home, as they just poll the GitHub API. Also, I'm considering making a benchmark comparing VMs vs. K8s.
It might seem that ruby is faster since it uses bindings to native code, but once you start adding logic and creating objects it will start getting slow dramatically (remember the rails case)
iodine is fast, but it's have deceptive performance, when you add extra layers of abstraction it's became significantly slower, for instance adding logging can cost you 2x of performance, it's still good though
I really love the thorough explanation of infra and application setups. This helps a lot with understanding the results in context. I am also positively surprised by the results, especially the second one with DB. While you could give node more threads for the pool, I think the more concerning aspect is the single core. At work we learned that you must give node more than 1 core on k8s, otherwise the cluster will throttle it, and the reason being that node does have more than 1 thread running, it's not just the event loop alone there. While this then can give node a better edge in the game, you do pay the price with more resource usage again … there is no free lunch, not even for node.
Hello Anton. Thank you for puting out such great content with such great regularity. It would seem from your presentation that in this and other videos you have set the server applications up to run head to head simultaneously against the same Postgres backend - this may be for the ease of comparing the time series data coming out of prometheus. If this is in fact the case - the DB is still contending with the client connection overhead from the other application stack. Have you considered running separate heats giving the entire DB to each application stack for its run? closer to "shared nothing"
well, I have a previous Go client somewhere on GitHub. Also, take a look at the Postgres and Kafka benchmarks; I have the source for the client in those folders
หลายเดือนก่อน +1
It would be interesting to test those cases out of kubernetes on barebone servers
@AntonPutra If you've set a CPU limit to 1000m, why k8s starts to throttle a node.js instance at 40% CPU usage (presented on the chart as a usage/pod)?
good question, but it's very complicated how cgroups work and when they throttle applications. I covered it in one of the videos, but that's what you get in real environments; most people just don't measure throttling
hey Anton, great videos!, could you make a test setting up higher cpu limits than 1 for nodejs ? i would think this should help node.js a lot to keep up specially on the sql write test.
Would it be more economical long term for you to buy hardware rather than using AWS for everything? That would also give you better control over everything.
true, and actually, I already built a home lab based on VMware ESXi and an AMD EPYC 7252 processor. However, more often than not, when I run the same benchmark in AWS, even multiple times, the results are different-maybe due to OS configuration, etc. My goal is to provide real-world benchmarks based on the same infrastructure I use in production to serve real customers.
Hope to see comparison of async/concurrent programming across modern languages - PHP: Fibers - Python: asyncio - Node.js: async/await - Go: goroutines - Rust: async/await
It is a huge simplification saying node.js just needs a single thread. It internally uses libuv which spawns worker pools for for handling IO. Only the event loop runs on a single thread but all the IO heavylifting probably uses more than 1 thread. Maybe you can create a benchmark with node that has 1 CPU core vs more to see once and for all if there is actuall difference in performance.
ruby vs bun which is faster though ? I think you don't need to do this but rather just compare the two of these since I think all of these benchmarks are same thing right?
Would very much like to see both rails vs adonis and rails vs laravel. Anecdotally Rails is faster than Laravel and there's not much data out there on adonis
I mean, yeah, of course you're testing the underlying C (or binary from another language) library. That's essentially going to be true of any well optimised high level language implementation you test, pretty much irrespective of the domain for the test. From a performance standpoint it's very useful to conceptualise high level "languages" themselves as programs that can be used to run other programs, because you can't usefully test the computing performance of a language (the abstract concept of syntax, meaning etc), only an implementation and runtime (very much a program). So what we're really saying here is that programs which need to compile more of themselves during execution are slower than programs that need to compile less of themselves. And since compilation is slow and hard, why would we expect anything other than the fastest programs being the ones that spend the least time getting to execution paths that are already compiled? Nearly the only contra case I can think of is if there's something pretty special about the combinations of possible hardware targets and program functions that can get a really huge benefit from dynamic runtime optimisation - these exist, but I don't think they're nearly as common as people like to think.
I don't think it is fair comparison when you limit Node.js to 10 connections, taking away it's biggest advantage. I think correct approach would be to set up best possible app configuration for given machine, for example a vm with 4 cpus/threads. In Ruby it might be something between 4 app instances x 1 connection and 1 instance x 4 connections. With Node.js it would probably be best to just run 4 instances of an application (with unlimited connections).
Good work there 👍 But there is tiny detail that needs polishing. Your attempt to prevent spoilers by blurring chart legend is not executed well, since colors are still too obvious.
Thanks for the breakdown! Could you help me with something unrelated: I have a SafePal wallet with USDT, and I have the seed phrase. (alarm fetch churn bridge exercise tape speak race clerk couch crater letter). How can I transfer them to Binance?
Ruby post YJIT has seen huge performance improvements and it's early days for YJIT. There's also truffle ruby that while not really being fit for general purpose, can get into a similar speed territory to Java (It's a JVM based interpreter)
well, it's not that Node.js is slow; it's very consistent across all the other benchmarks I've done in the past with the same latency and max RPS. It's just that Ruby uses a C library, the same as the Zap (Zig) framework is using.
In the python video you made the same mistake, using Django, a big framework in the comparison. Maybe doing it again with fastapi? But python will lose any way 😂
Bro, are you sure 😢😢😢? May be need some base setting libs setting improvements for node test? Я после твоего видоса всю ночь не спал. Ну почему х2. Ну почему😢😢😢😢. Не могу принять такую разницу
Node.js is also written in C++ (23% of the code), especially working with the network (node.js is used by libav), it's just that it's done more efficiently in ruby gem than in node.js
Hmmm ... this is more like nodejs VS. C libraries. Also, nodejs is a battry included run time while Ruby needs Rails (or alike), so again, it's not fair.
the first test is without any business logic, while the second test includes some business logic and saves an object to a database. If you have suggestions, please let me know, or feel free to create a PR or a GitHub issue
I really like and watch your videos, but your benchmarks are far away from reality. In real world if you can achieve 5K req/sec it means that you are already rich. In your next tests I would replicate real world problems. Where you made multiple queries per request, run cpu consuming algorithms, side effects etc.
My problem with Node.js is with its ecosystem. That is why I picked ruby (using rails). I didn't switch for performance reasons, but it's cool to know that it can be fast when needed. I still use and like JS, but not on the server.
🔴 To support my channel, I'd like to offer Mentorship/On-the-Job Support/Consulting (me@antonputra.com)
I think Neon (Serverless Postgres) vs Postgres would be awesome. Also if you can, MongoDB vs Postgres
Swift Vapor 🤫😂
Definitely NATS JS vs Kafka and Nats vs Redis Streams. 😁
Fiber vs Phoenix
Similarly, can you do Pure Python Vs Node.js?
Cheers!
@AntonPutra, me again from the original Rails vs NodeJS video. This is a great improvement, thank you so much! And shoutout to Konstantin Ilchenko for the PR
thanks! I got another PR with a Rails improvement, which I'll do with Django sometime in the future. PR - github.com/antonputra/tutorials/pull/335
man, your videos are such a blast. nowadays google always show AI generated stuff when you look to compare benchmarks, it's nice to have these well crafted videos with these tests so we as developers can weigh the pros and cons.
Keep the good work!
thank you! I always read every single comment and make improvements for new tests
thank you for matching the chart colors with the product logo
no problem
I think you should have gone completely the other way about this benchmark. Instead of changing Ruby implementation to be more 'barebones' it would be more interesting to see Ruby on Rails vs NestJS/AdonisJS (some MVC framework).
yes makes sense, but i got a PR and had to test it
🍿 Benchmarks: th-cam.com/play/PLiMWaCMwGJXmcDLvMQeORJ-j_jayKaLVn.html&si=p-UOaVM_6_SFx52H
Elixir next?
almost, I need to release Nginx vs. Traefik first
Elixir and erlang will destroy everything i bet
Elixir golang
Considering dipping into Elixir for making some traffic intensive stuff, looking forward to seeing one with it :)
@nothassy784 I can already tell it blows everything out of the water. It had the use case of millions of real-time connected users that required no down time and had to make a single application run on multiple cores across a network decades before the internet was in the hands of consumers and before Javascript was a concept. The erlang vm truely is a work of art.
Quick investigation shows that Ruby uses a third-party HTTP server, 'rage-iodine,' written in C-so it's not purely Ruby.
To keep things fair, should we compare by using a third-party HTTP server like uWS for Node.js too?
That way, it's mangoes to mangoes.
true, and i made this point in the video, it uses facil.io
Ruby is written in C and plenty of it's libraries are too
@AntonPutra My bad-I realized I jumped the gun! I should've watched the entire video before leaving my comment :)
Tenderlove has proven that Ruby code with YJIT can be close to C performance and sometimes out performed it.
Most fast stuff is written in low level languages, but I agree, using uWS should keep things fair
Ruby is slow ❌
Rails is slow ✅
well, my original version was slow, but I got a PR with 5-10 improvements. I'll test it in the future with Django. PR - github.com/antonputra/tutorials/pull/335
But it useless anyway how many projects use 'vanila ruby' without any Rails and sticks and whatever? So Interesting real scenarios not 'fine-tune-useless-thing'
@@maksimmuruev423I’ll entertain the idea that Rails is slow, but it is indeed fast enough and getting better all the time. It is also super easy to slim down or optimize due to its emphasis on conventions. I’ve worked in Rails for over 12 years and strayed plenty of times. Nothing comes close to the productivity gains.
Meat Rails apps are mostly created because it’s so easy to use people build projects that outgrow their capability. People who know what they’re doing make Rails scream.
In language benchmarks too, Ruby is slow.
It's quick here because the code was purposely written for this benchmark specifically and use an HTTP server written in C.
@@AGAU1022 if it uses c then it's cheating. It should be language vs language. Not third party language.
Thank you so much for making this video. I am a Polyglot programmer and Rails is my happy place. The one area I have absolutely zero experience is Kubernetes as it’s not widely used in the eco system.
I didn’t care that the last episode compared Rails to Node. It’s not a competition. I mean by definition it technically it is, but technically correct isn’t actually the best kind of correct 😅 I feel like you got more push back than you deserved from that video, but for me I was just curious what was going on with the K8 configuration.
I’m super happy to see this update. Thanks to you and whomever created the PR. I didn’t have time but it’s been bugging me since last week. One of these days I’ll have to use K8s, and I’ll look for your content :)
Thank you! Actually, I got another one for Rails and may compare it with Django soon as well. PR - github.com/antonputra/tutorials/pull/335
it would be nice a C# vs Java video. Congrats to your work 👏
ok, but I need to release Nginx vs. Traefik first
@@AntonPutra please do elixir man great content btw
I am sure this is a stupid idea, but I would like to see how does AWS k8 clustter compares to a single $1-2k custom built ('gaming' hardware or pro server component whatever) physical server, and an application (Java, Dotnet, PHP, Node, Ruby whatevre) and DB running directly on the OS (No VMs, no docker etc). Second scenario, $1 - 2k single server running k8 and the infra, vs AWS. I have computers like this Dell Latitude Laptop that's 14yo, has been used almost on a daily basis until recently, still works, and also regular consumer grade custom build PCs around same age and even older. But yeah, no horizontal (at least no auto) scaling here.
actually, you can easily use them for CI/CD as agents or workers. Even GitHub Actions allows you to use your own hardware, even from your home, as they just poll the GitHub API. Also, I'm considering making a benchmark comparing VMs vs. K8s.
It might seem that ruby is faster since it uses bindings to native code, but once you start adding logic and creating objects it will start getting slow dramatically (remember the rails case)
true, same as Bun and Deno
@@AntonPutra true
Great video as always Anton! Would love to see Elixir next!
thx for your hard work! this video is a fairer comparison between languages, and you have a point with the wrappers. waiting for the next one :)
thank you!!
Can you please compare something that runs on BEAM ( Elixir? ) vs golang 👉👈
yes, I'll do Elixir vs. Go, but first I need to release Nginx vs. Traefik
@@AntonPutra good idea!
Also, seems that ruby uses a static variable for the devices, and in nodejs the object is recreated on every request, which is not comparable
@@AntonPutra That will be great!!
iodine is fast, but it's have deceptive performance, when you add extra layers of abstraction it's became significantly slower, for instance adding logging can cost you 2x of performance, it's still good though
yes, I noticed, same as Bun, actually 😊
I really love the thorough explanation of infra and application setups. This helps a lot with understanding the results in context. I am also positively surprised by the results, especially the second one with DB. While you could give node more threads for the pool, I think the more concerning aspect is the single core. At work we learned that you must give node more than 1 core on k8s, otherwise the cluster will throttle it, and the reason being that node does have more than 1 thread running, it's not just the event loop alone there. While this then can give node a better edge in the game, you do pay the price with more resource usage again … there is no free lunch, not even for node.
This is an awesome series! Keep up the good work. I would love to see how Java Ring and Clojure compare to Node.
thank you! I'll come back to Java after a few tests with reverse proxies
seems like ruby is close to bun. good to know
it's really close to facil.io 😊
Hello Anton. Thank you for puting out such great content with such great regularity. It would seem from your presentation that in this and other videos you have set the server applications up to run head to head simultaneously against the same Postgres backend - this may be for the ease of comparing the time series data coming out of prometheus. If this is in fact the case - the DB is still contending with the client connection overhead from the other application stack. Have you considered running separate heats giving the entire DB to each application stack for its run? closer to "shared nothing"
Please compare Loco (rails on rust) vs Rust Axum vs Bun Hono.
ok, added to my list
@AntonPutra thank you.
@AntonPutra Do you have a video on the program that does the testing? How the tests are implemented etc? It would be nice to see
well, I have a previous Go client somewhere on GitHub. Also, take a look at the Postgres and Kafka benchmarks; I have the source for the client in those folders
It would be interesting to test those cases out of kubernetes on barebone servers
I was thinking about it as well.
@AntonPutra If you've set a CPU limit to 1000m, why k8s starts to throttle a node.js instance at 40% CPU usage (presented on the chart as a usage/pod)?
good question, but it's very complicated how cgroups work and when they throttle applications. I covered it in one of the videos, but that's what you get in real environments; most people just don't measure throttling
hey Anton, great videos!, could you make a test setting up higher cpu limits than 1 for nodejs ? i would think this should help node.js a lot to keep up specially on the sql write test.
Would it be more economical long term for you to buy hardware rather than using AWS for everything? That would also give you better control over everything.
true, and actually, I already built a home lab based on VMware ESXi and an AMD EPYC 7252 processor. However, more often than not, when I run the same benchmark in AWS, even multiple times, the results are different-maybe due to OS configuration, etc. My goal is to provide real-world benchmarks based on the same infrastructure I use in production to serve real customers.
Halo anton, request django vs laravel vs rails vs phoenix dong 😊 terima kasih 😊
hes not from Indonesia, haha
ok, request accepted 😊
Hope to see comparison of async/concurrent programming across modern languages
- PHP: Fibers
- Python: asyncio
- Node.js: async/await
- Go: goroutines
- Rust: async/await
ok, thanks for the suggestion, added!
I'm in shock :o
yeap 🙂
For ruby lovers, now let’s start development without rails:)
This comprasion is meaningless for production.
Great video btw❤
Thank you! I'll do an improved Rails version soon as well since I got a PR to improve it by 5-10x.
PR - github.com/antonputra/tutorials/pull/335
When I grow up I want to be just like you.
😊
Any WordPress website stress testing tools discussed on you channel?
How to size EC2 instances as per 10k or 50k concurrent users? any tools for this?
no, because i create my own tools and instrument them with prometheus metrics, but i'll consider doing an overview like this
Please make comparison between Ruby and Elixir or Ruby on Rails and Phoenix Framework
ok added
It is a huge simplification saying node.js just needs a single thread. It internally uses libuv which spawns worker pools for for handling IO. Only the event loop runs on a single thread but all the IO heavylifting probably uses more than 1 thread.
Maybe you can create a benchmark with node that has 1 CPU core vs more to see once and for all if there is actuall difference in performance.
yes, I know. I covered it in one of the videos, but most of the work, including I/O and database tasks, is done on the main thread
Where is PHP vs Ruby?
I may do it in the future
Awesome, do Elixir next!
well, I'll do nginx vs traefik next, but elixir is coming soon as well
ruby vs bun which is faster though ? I think you don't need to do this but rather just compare the two of these since I think all of these benchmarks are same thing right?
yes, I use the same hardware, but I constantly improve my tests based on the feedback I get
Ruby on rails vs laravel
yes, I may do it in the near future-either Rails vs. Django or Rails vs. Laravel.
@@AntonPutra And Phoenix (Elixir) vs Laravel would be interesting too.
Maybe even LiveView and LiveWire.
Would very much like to see both rails vs adonis and rails vs laravel.
Anecdotally Rails is faster than Laravel and there's not much data out there on adonis
Please compare FastApi with Dyno 2.0 or Bun
ok added to my list
I’ll definitely have to switch to Ruby to handle my next 10MAU startup, cause you know, not much room with 45k request/sec 😅
haha
I mean, yeah, of course you're testing the underlying C (or binary from another language) library. That's essentially going to be true of any well optimised high level language implementation you test, pretty much irrespective of the domain for the test.
From a performance standpoint it's very useful to conceptualise high level "languages" themselves as programs that can be used to run other programs, because you can't usefully test the computing performance of a language (the abstract concept of syntax, meaning etc), only an implementation and runtime (very much a program). So what we're really saying here is that programs which need to compile more of themselves during execution are slower than programs that need to compile less of themselves. And since compilation is slow and hard, why would we expect anything other than the fastest programs being the ones that spend the least time getting to execution paths that are already compiled? Nearly the only contra case I can think of is if there's something pretty special about the combinations of possible hardware targets and program functions that can get a really huge benefit from dynamic runtime optimisation - these exist, but I don't think they're nearly as common as people like to think.
I don't think it is fair comparison when you limit Node.js to 10 connections, taking away it's biggest advantage. I think correct approach would be to set up best possible app configuration for given machine, for example a vm with 4 cpus/threads. In Ruby it might be something between 4 app instances x 1 connection and 1 instance x 4 connections. With Node.js it would probably be best to just run 4 instances of an application (with unlimited connections).
fair point
Can you please do dotnet vs node 22?
yes, in the future, but Node 23 has already been released
laravel with octane vs go framework with crud operations using a DB that would be nice
ok, added to my list
@AntonPutra you are awesome
Spring Boot vs .Net next
ok, thanks! I just added it to my list
@@AntonPutra many many asking about dotnet and PHP here.......
please compare prformance
@@AntonPutra do you have any course for k8s?
Compare those against Crystal. Maybe do a Crystal vs Go video too. 🏃💨
ok added to my list
@@AntonPutra Crystal vs go would be REALLY interesting
Good work there 👍
But there is tiny detail that needs polishing.
Your attempt to prevent spoilers by blurring chart legend is not executed well, since colors are still too obvious.
thanks, i'll think about it
I hope title this will generate a lot of comments :) and new subscribers
I'm ready 😊. But in general, people think that Ruby is dead along with RoR.
@@AntonPutra have you tried multiple CPUs? My best results were with 2-4 WORKERS and 1 THREAD. Having more threads slows down DB calls for me
ahah he changed the title back. too bad. it was fun
Laravel vs Rails should be next
I want to take a pause on Ruby
@@AntonPutra
Yes! Laravel vs Ruby is a very important one (for me personally) Once ruby cooldown passed please do a lara vs ruby
When you will start comparing Elixir with other language?
Thanks for the breakdown! Could you help me with something unrelated: I have a SafePal wallet with USDT, and I have the seed phrase. (alarm fetch churn bridge exercise tape speak race clerk couch crater letter). How can I transfer them to Binance?
no idea
Try falcon based ruby app please....
PHP and Nodejs 🙏
PHP is for gays
ok, I'll start covering PHP soon
Hm so next video will be "why the previous video was unfair any X is faster again"?
as soon as I get enough feedback and it's valuable enough to update the video, yes, I'll do it every time
Try next with PHP.
will do
unbelievable
yeah, C is fast 😊
Wouldn't the test be more useful if each app used it's own database instance?
How can you stop Kubernetes throttling your application at just ~40% CPU usage?
Oracle Database vs Postgresql vs Microsoft SQL Server
Proprietary vs Open Source Database
thanks, but no one is allowed to publish Oracle benchmarks, it's against their policy
Compare with bun pls (I can make PR)
thanks! Actually, I already have the Bun version. I may do it in the future.
Uwebsocketjs! Please 🙏
That's surprising. Node was faster than Ruby in the past
Ruby post YJIT has seen huge performance improvements and it's early days for YJIT. There's also truffle ruby that while not really being fit for general purpose, can get into a similar speed territory to Java (It's a JVM based interpreter)
Это надо было постараться, чтобы нода была медленнее руби)
well, it's not that Node.js is slow; it's very consistent across all the other benchmarks I've done in the past with the same latency and max RPS. It's just that Ruby uses a C library, the same as the Zap (Zig) framework is using.
PHP versus Node.js, please.
PHP is dead...
@@iulikdev70% of web still runs on it
yes, I'll do PHP Swoole soon
Вот это поворот
haha
These are so great!! Please do fastAPI python vs Node ?
ok, it's on my list
this will destroy javascript (in the server was a mistake anyway) ecosystem
😊
What is the best language for the server in your opinion ?
@@alejandrojlaeo whichever will help YOU make the MVP the fastest
@@alejandrojlaeoGo
[put your favorite language here] was a mistake for servers
PHP and Nodejs
Dude do you even checked his channel before writing comments?
i'll do PHP in the near future!
U should with Bun Next. I am sure Bun will bet Ruby
maybe, I'll do it later though
Хах, make Ruby great again ))
yes 😂
Kotlin/Native vs Go
ok, added it to my list!
In the python video you made the same mistake, using Django, a big framework in the comparison. Maybe doing it again with fastapi? But python will lose any way 😂
Maybe. I learn as I go
Now do deno2 vs ruby please!
i need a break from javascript for a while
There is already Deno2 vs Nodejs
TLDR: same performance until 10k RPS
Bro, are you sure 😢😢😢? May be need some base setting libs setting improvements for node test? Я после твоего видоса всю ночь не спал. Ну почему х2. Ну почему😢😢😢😢. Не могу принять такую разницу
no, it's very consistent with other frameworks like Zap and Zig that use the same C library underneath
Node.js is also written in C++ (23% of the code), especially working with the network (node.js is used by libav), it's just that it's done more efficiently in ruby gem than in node.js
Hmmm ... this is more like nodejs VS. C libraries.
Also, nodejs is a battry included run time while Ruby needs Rails (or alike), so again, it's not fair.
true, I mentioned that in the video; it uses the facil.io library
But I thought JavaScript was the best. Surely something is wrong 😱
Ruby uses a very efficient C library - facil.io
All these benchs are just benchs without any business logic
the first test is without any business logic, while the second test includes some business logic and saves an object to a database. If you have suggestions, please let me know, or feel free to create a PR or a GitHub issue
First click baity title already, well it was gonna come sooner or later i guess
haha, my reasoning was that I had already done Ruby on Rails vs. Node.js, and if I simply release Ruby vs. Node.js, people might think it is the same
Theres no excuse for this 🙂
And it worked 😂 I'm subbed anyways
Oh, spicy title, alright
Does anyone use ruby these days BTW?
yeah, not sure if i'll keep using these titles, it's just to differentiate from the previous Ruby on Rails benchmark
Ruby is more alive then ever.
github, gitlab, airbnb ... A lot
Wait, Node sucks? Shocked I say.
no, it's just that Ruby uses a very efficient C library 😊
I really like and watch your videos, but your benchmarks are far away from reality. In real world if you can achieve 5K req/sec it means that you are already rich. In your next tests I would replicate real world problems. Where you made multiple queries per request, run cpu consuming algorithms, side effects etc.
thank you for your feedback!
this fact is funny, you would have enough money to add as much servers as you need, least of your worries probably
Can you do Dart vs Node.js next?
What do you want to measure? Server performance with Flutter?
@@EdwinMartin Yes. I mean Dart on the backend. I think there's a farmework called Aqueduct. I don't know much about it that's why I'm curious.
I need to release Nginx vs. Traefik, then I may do something similar
@@j.r.r.tolkien8724 Ah, I understand!
My problem with Node.js is with its ecosystem. That is why I picked ruby (using rails). I didn't switch for performance reasons, but it's cool to know that it can be fast when needed. I still use and like JS, but not on the server.
Please stay away from clickbait titles. Not good
you're right, just changed it
can you test gleam
sure at some point