► What should I test next? ► AWS is expensive - Infra Support Fund: buymeacoffee.com/antonputra ► Benchmarks: ruclips.net/p/PLiMWaCMwGJXmcDLvMQeORJ-j_jayKaLVn&si=p-UOaVM_6_SFx52H
@@a0flj0 Rust is on whole other level. IDK why would anyone redo anything in Golang if he has resources. Go is a good language to bootstrap things, but it falls off quickly in almost any scenario. Even if you use much slower languages than Rust or Go, if they're popular they still usually have much better approaches typing and error handling in requests. And then you can just keep adding instances endlessly. Poorly optimized, awfully written NodeJS without typescript would have 0 advantages over simple server in Go, but you can still just throw 16GB RAM and 8 server instances at it and it would work like charm.
@@commonfolk663 most projects don't need Rust or even Go and can do very well with Node. But at the end it's just a case by case and resources availability question.
I do like these tests since it's mirroring what I'm seeing from techempower benchmarks between nodejs and go-std where Plaintext only really tests server handling. JSON 1-query 20-query Fortunes Updates Plaintext 561,077 299,223 18,137 256,269 7,765 738,221 //Go-std 320,168 95,776 6,860 70,833 3,048 454,082 //NodeJS
@@_garicas I think both. Sometimes I miss strong typing but honestly, in case of JS I totally get it. It can be an issue for big projects but it also in case of JS can be a benefit for the small services. I also like package management. And I like the simplicity of working with objects, where I can do whatever I like manipulations.
Thanks Anton. I wanted to improve the node code after I saw the previous terrible performance. I have used node for years now and I knew it could do better than what I saw initially. I will never argue node is better than go but I will say it is a very good runtime for most projects if you know how to use it.
At my previous company we were hosting multiple web applications including one that had around 42 million unique visitors every month. Everything was hosted on NodeJS servers within a Kubernetes cluster in AWS. It's very impressive what you can achieve with this runtime and K8s.
I really appreciate this series of videos comparing frameworks, languages, and configurations. It is interesting to see a semi-naive implementation vs an optimized implementation comparison. It is helpful to understand how much configuration can matter. Thanks for making and sharing this content with us.
@@s1v7 It will come out like that, but it would be useful to see and compare the cpu and memory consumptions. Also, Deno and Bun still cannot use all the nodejs libraries. So it is still problematic to switch from nodejs to bun or deno.
Very nice comparison, especially the part about the concurrency internals of the languages. The animations were fantastic as well! I was wondering, which tools did you use to make them?
ChatGPT suggests it's actually a percent of 1 vCPU, which is one CPU thread or one core. I will read further. It's a cool demo either way. Got me reading more details than I expected
I did some more reading, and the limits are definitely in vCPUs, which are cores. In AWS, they state: "Each vCPU on Graviton-based Amazon EC2 instances is a core of AWS Graviton processor." Therefore, a m7g.large is 2 cores, or 2000 millicores, or 2 vCPUs. Azure is similar. Immensely enjoyed the journey of reading into the details. Thanks for providing such interesting demos like these
Thanks! I knew from personal experience NodeJS is crazy fast for a scripting language. I’m seriously interested in seeing a runtime battle. Bun, Node, Deno, and there are some serverless runtimes too, but I guess the big three are the interesting ones.
The differences are far less than I expected. JavaScript is pretty good! What I really like to see is the same benchmark, but using bun (and possibly Deno)
Hey Anton I was the one that suggested to use the cluster module in the last video. Thanks for making another Node vs Golang and briefly discussing the cluster module and going in depth in kubernetes. I know you will be a very big youtuber because you listen to us in the comments thanks again man!
Another one who sits in front of a computer to write nonsense, 90% of applications don't need this 'high concurrency' that Go claims to have. Nowadays, there are scalable structures like AWS, edge computing, etc. In the tech world, everything changes; don't expect Node.js to remain so inferior to Go in the coming years, or don't be surprised if the tables turn. Which, in reality, wouldn’t even be that significant because a development structure doesn’t live off benchmarks alone.
Thank you so much for your videos, i really appreciate your job! If you're using NodeJS i recommend using cluster mode for each 4 cpu cores, simply because libuv default config (i tried modifying this config and performs worse)
As someone who works in a small company where we deploy Python flask as a backend for internal development, I would love to see a Flask vs FastAPI vs GO (or Node), just to see what are the performance differneces at things beyond the scale that I'll probably ever see
in a battle of snails, flask is synchronous. That means it accepts/process 1 request per time, this is a HUGE bottleneck while FastAPI is asynchronous by nature. You're have to deploy multiple webworkers to make flask "useful", but that cost compute resources. FastAPI = async def baby, concurrency to the roof. But in the end, python is single-threaded (GIL), so don't expect anything close to a full compiled /JIT language. Python is alone on his own league, of poor performance and speed. I suggest you to start changing from Flask to FastAPI, it needs very little change in the code, in 5 minutes you change everything just routes and request objects, and you'll gain a HUGE concurrency performance.
@@thelearningmachine_ Thats the fun part to watch the battle of the snails and see the actual bad performance. And I have been trying to migrate from Flask to Fast. But I'm currently the only dev in my company and they want more software/features churned out instead of improving our bottlenecks. I'd preferably rebuild everything in NodeJS or .NET
@@thelearningmachine_ Thats the fun part to watch the battle of the snails and see the actual bad performance. And I have been trying to migrate from Flask to Fast. But I'm currently the only dev in my company and they want more software/features churned out instead of improving our bottlenecks or hiring more devs. I'd preferably rebuild everything in NodeJS but that's a lot of time I currently do not have.
Thanks for the follow up. I think this really shows that JS is pretty good. Considering how easy it is to write and can still compete with something like go or Java is amazing
Java vs C# vs Go with all the optimizations. That would be a good comparison. Maybe even default C# vs optimized C# just like this video's Go comparison.
True, but in real world, the difference would be much bigger with expanding complexity, libraries, frameworks, scalabilities, etc. I am mainly code in JS now but i know for sure that Go would destroy JS performance in most production cases since i have code in both language in comparable projects. Go also has a very fast framework (fiber) and overall higher quality libraries
Anton, why is there CPU throttling when the CPU usage on Go: default and Go are not at the 1 CPU limit? Is the CPU plot not showing iowait or iosteal? Does `cpuset` do anything in a k8s env? When using raw hardware, using cpuset to avoid cross-socket traffic helps performance a great deal. If you're capping at 1cpu, then one may as well pin it to that core so it doesn't have to worry about floating to another core or socket. Thanks for the diligent videos!
thank you, nice video. I would like to benchmark my own projects, do you have a video that explain how to setups basics benchmark ? that would be great thx you
Why did you run 2 replicas with gomaxprocs=1 instead of 1 replica with gomaxprocs=2 and 2000m limit? Your second test clearly shows that this has an impact on the performance of the go app. Also, now that you switched to 2 core machines why not remove the cpu limit entirely? We discussed before about starvation of system resources but with 2000m limit on a 2 core machine the same starvation can happen so there should not be a difference right?
i get your point. i used gomaxprocs=1 and a 1 CPU limit just to have the same settings as for node.js. regarding the second question, in theory yes, but i haven't tested that scenario yet.
So I was right saying it was cause it's single threaded. Ps you tried so hard to make go look good enough compared with js. 🙂 I appreciate what you are doing, it's super cool content! Being a java dev I'd really like to see how best of each language setups compare. I mean like eg combining best go, rust, js, java for instance. One more time - it’s super cool what you’re doing!
the number of triggered JS people here is quite funny. If we constantly say he didn't do it right, I can say use go fiber and literally destroy JS once and for all.
@@spicynoodle7419 indeed, though I prefer the libraries built on stdlib as they're more than fast enough and have better compatibility. But if you need raw speed fiber is awesome.
For those who knows your Chanel very well, it's useless to blur the screen on the beginning of the benchmark videos 😂😂😂 we all know that the blue line is for go lang, what surprises me most, is node not being a green line 😂😂😂😂😂
You can get unpredictable throttling or performance penalties from neighboring containers that don't have resource limits and consume all available resources. These containers can not only starve other containers running on the same node, but more importantly, they can interfere with system components and make nodes unavailable.
compare two technologies is really hard because you need to understand deeply how they work. you did better now going more deeper how nodejs works and it's fair to say that go has a wonderful resources management
Rust will obviously be even better, since Anton already did a similar test of Rust vs Go, and Rust was decisively better than Go. But, as someone already mentioned above, for a very large number of applications node is good enough, i.e. you don't get enough runtime savings from using a compiled, statically typed language that generates more efficient binaries to justify the higher development time costs. Node has a very well carved out niche in which it is pretty much the best choice, and unlikely to be replaced by anything in the foreseeable future.
@@AntonPutra The reason I make the comment is that I think Node (and Java, and C#) are in the realm of companies that are looking at Rust and C++ (because C23) because it has a potential "very large" benefit that may be too big to ignore in light of the fact where the trade-off used to be much greater before Rust and in older versions of C++ that were not modern enough for a modern workforce and a modern codebase and architecture, but now is much more relevant.
@@AntonPutra true :D and you should never listen to a single youtube commenter :D but just in case you get that feedback from multiple sources, that might be something to improve. This far, its just "at least one person thinks this could have more concise" :D
Funny to observe people still think Bun is really Node killer and really faster & better 😁 ( one more killer, oh no 😁) Like, uWebSocket used by Bun faster than Rust Actix Web, so the comparison with NodeJS related on req/res for sure will be faster lol, but at the same time checking if string starts with some specific substring was ~14 times slower vs NodeJS. Checkmate.
Just take a look at the amount of Bun devs/community and think how much time do they need to fix all the problems/bugs they have, to deliver everything NodeJS has today. I guess lots.
He did a comparison of Rust and Go, similar to this one, after he got feedback on an initial version. Rust came out on top of Go both times in absolutely every metric. Not by an astronomic amount, but, IIRC, by somewhat more than Go is better than node in this comparison. Which translates to Rust being better than node by an even larger margin than Go is.
@@roccociccone597 its not that its faster......the question is how faster....if the difference is small then there is no need to learn Go or new technology and stick to JS and optimise in other parts of the application
True. Yet JS due to it's availability and 0 learning curve - makes everyone think they're pro in JS. That's why 90% of publicly available of JS is total crap. So JS has it's niche where it excels. But people will still multiply shit with it
@@AlexanderMoon Golang is so much easier to learn and use from get-go than Typescript, Node ecosystem alone probably takes couple years to learn and is required to do any real job. Go is a wonderful language to make things fast and easy, cut corners and do relatively good job. But anything you have time to think about, Go is one of the worst languages even when compared to Node/Typescript, with poorly written type system, weird error handling and worst of all, - limited support for main paradigms, - OOP and FP. It feels like golang has weirdly good publicity. Despite only universal advantage being its simplicity.
@@commonfolk663 disagree. learning a language is not same as learning an ecosystem. Go is way more complex than JS. JS has barely no types bypassing aspects such as typesafety, mem allocations, immutability, concurrency whatsoever. So no, JS learning curve is incomparably smaller than Go's.
maybe one day, we cpp devs get a rest api test to once and for all decide which is the “fastest”. actix or drogon? p.s. i tried rust, it’s ok. i hate fighting with the compiler. i’d rather shoot my self in the foot
► What should I test next?
► AWS is expensive - Infra Support Fund: buymeacoffee.com/antonputra
► Benchmarks: ruclips.net/p/PLiMWaCMwGJXmcDLvMQeORJ-j_jayKaLVn&si=p-UOaVM_6_SFx52H
It's really cool that you make new videos with the corrections, we can all check those PRs here and learn something new.
thanks, the more mistakes i make, the more content i generate 😂
Now we can finally justify moving all of our tech stacks over to Go and blow our 2 users minds.
He also did a test Rust vs Go, also in two versions, an initial one and one after receiving feedback. Rust is way better than Go.
python -> go pipeline is 100% worth it. 10x improvements on the same hardware are pretty typical with a moderately complex application.
@@a0flj0 Rust is on whole other level. IDK why would anyone redo anything in Golang if he has resources.
Go is a good language to bootstrap things, but it falls off quickly in almost any scenario. Even if you use much slower languages than Rust or Go, if they're popular they still usually have much better approaches typing and error handling in requests. And then you can just keep adding instances endlessly. Poorly optimized, awfully written NodeJS without typescript would have 0 advantages over simple server in Go, but you can still just throw 16GB RAM and 8 server instances at it and it would work like charm.
😂
@@commonfolk663 most projects don't need Rust or even Go and can do very well with Node. But at the end it's just a case by case and resources availability question.
Very impressive that NodeJS can handle so many req/s considering it's running on a VM (v8) and Go compiles to native code.
I do like these tests since it's mirroring what I'm seeing from techempower benchmarks between nodejs and go-std where Plaintext only really tests server handling.
JSON 1-query 20-query Fortunes Updates Plaintext
561,077 299,223 18,137 256,269 7,765 738,221 //Go-std
320,168 95,776 6,860 70,833 3,048 454,082 //NodeJS
yeah, V8 has JIT, NodeJS has C++ addons, and so on
Fully agree, being mostly java dev I'm impressed by js (node) performance. And I know you wouldn't hear it often from Java devs - JS is cool language!
@@kamurashev do you think the language itself is cool (syntax, semantics, etc) or the runtime? Or both?
@@_garicas I think both. Sometimes I miss strong typing but honestly, in case of JS I totally get it. It can be an issue for big projects but it also in case of JS can be a benefit for the small services. I also like package management. And I like the simplicity of working with objects, where I can do whatever I like manipulations.
Thanks Anton. I wanted to improve the node code after I saw the previous terrible performance. I have used node for years now and I knew it could do better than what I saw initially. I will never argue node is better than go but I will say it is a very good runtime for most projects if you know how to use it.
true
At my previous company we were hosting multiple web applications including one that had around 42 million unique visitors every month. Everything was hosted on NodeJS servers within a Kubernetes cluster in AWS. It's very impressive what you can achieve with this runtime and K8s.
I really appreciate this series of videos comparing frameworks, languages, and configurations. It is interesting to see a semi-naive implementation vs an optimized implementation comparison. It is helpful to understand how much configuration can matter. Thanks for making and sharing this content with us.
thanks!
Node vs Bun vs Deno please
next 💯
let me guess - bun will be the fastest, node - the slowest
@@s1v7 It will come out like that, but it would be useful to see and compare the cpu and memory consumptions. Also, Deno and Bun still cannot use all the nodejs libraries. So it is still problematic to switch from nodejs to bun or deno.
@@AntonPutra really interesting
deno had major update (v2), interesting how much better it's gotten
@@snatvb Still in RC and not released ? But yeah, definetly want to see Deno V2
Please make PHP8.3 (FPM and Swoole) vs NodeJS comparison. This is what most of web uses now.
soon
I love Swoole. Traditionally, PHP is very slow. Would be nice to see Swoole running against Node or GO
Thank you:) I was going to ask for Deno and Bun versions, looks like I am not the only one.
yes it is next
Much better benchmark. Thing I like about Go is that you are mostly sure about your code scaling well the moment you write it.
true, it's easy to scale
Very nice comparison, especially the part about the concurrency internals of the languages. The animations were fantastic as well! I was wondering, which tools did you use to make them?
Amazing work, brother. Thanks for the benchmark 🤩
thank you!
Great about benchmark video like always!!! But this is even better with the explanation about CPU use in Kubernetes.
thanks i tried :)
Great series, really enjoy these. One point - In Kubernetes 1000m (1000 millicores) is 1 CPU core, not 1 CPU
1 CPU = 1000 millicores = 100% of 100ms which is default enforceable interval in cgroups
ChatGPT suggests it's actually a percent of 1 vCPU, which is one CPU thread or one core. I will read further. It's a cool demo either way. Got me reading more details than I expected
I did some more reading, and the limits are definitely in vCPUs, which are cores. In AWS, they state: "Each vCPU on Graviton-based Amazon EC2 instances is a core of AWS Graviton processor."
Therefore, a m7g.large is 2 cores, or 2000 millicores, or 2 vCPUs. Azure is similar.
Immensely enjoyed the journey of reading into the details. Thanks for providing such interesting demos like these
Thanks! I knew from personal experience NodeJS is crazy fast for a scripting language. I’m seriously interested in seeing a runtime battle. Bun, Node, Deno, and there are some serverless runtimes too, but I guess the big three are the interesting ones.
+Workerd probably easy to containerize.
Deno vs. Node.js vs Bun is next
The differences are far less than I expected. JavaScript is pretty good! What I really like to see is the same benchmark, but using bun (and possibly Deno)
coming soon
Hey Anton I was the one that suggested to use the cluster module in the last video. Thanks for making another Node vs Golang and briefly discussing the cluster module and going in depth in kubernetes. I know you will be a very big youtuber because you listen to us in the comments thanks again man!
thank you!
Let’s do elixir vs golang
okay, it's already very close to the top of my list 😊
@@AntonPutravote for elixir as well. Thank you
Congratulations to Golang for its fair participation in NodeJS Paralympics.
Lol
😂
Another one who sits in front of a computer to write nonsense, 90% of applications don't need this 'high concurrency' that Go claims to have. Nowadays, there are scalable structures like AWS, edge computing, etc. In the tech world, everything changes; don't expect Node.js to remain so inferior to Go in the coming years, or don't be surprised if the tables turn. Which, in reality, wouldn’t even be that significant because a development structure doesn’t live off benchmarks alone.
@@MarcusTorres-zv5cv Yeah, there are scalable structures. AWS billing goes brrrr...
@@MarcusTorres-zv5cv ok junior
Now that was a fair run. Next I'd like to see the same but using frameworks for both. I'd pick hono for node and gin for go.
i'll compare the most popular js frameworks and will do a final comparison with go😊
Thank you so much for your videos, i really appreciate your job! If you're using NodeJS i recommend using cluster mode for each 4 cpu cores, simply because libuv default config (i tried modifying this config and performs worse)
well, it's not the best option to deploy to kubernetes on a standalone VM, for sure
As someone who works in a small company where we deploy Python flask as a backend for internal development, I would love to see a Flask vs FastAPI vs GO (or Node), just to see what are the performance differneces at things beyond the scale that I'll probably ever see
in a battle of snails, flask is synchronous. That means it accepts/process 1 request per time, this is a HUGE bottleneck while FastAPI is asynchronous by nature. You're have to deploy multiple webworkers to make flask "useful", but that cost compute resources. FastAPI = async def baby, concurrency to the roof. But in the end, python is single-threaded (GIL), so don't expect anything close to a full compiled /JIT language. Python is alone on his own league, of poor performance and speed.
I suggest you to start changing from Flask to FastAPI, it needs very little change in the code, in 5 minutes you change everything just routes and request objects, and you'll gain a HUGE concurrency performance.
@@thelearningmachine_ Thats the fun part to watch the battle of the snails and see the actual bad performance. And I have been trying to migrate from Flask to Fast. But I'm currently the only dev in my company and they want more software/features churned out instead of improving our bottlenecks.
I'd preferably rebuild everything in NodeJS or .NET
@@thelearningmachine_ Thats the fun part to watch the battle of the snails and see the actual bad performance. And I have been trying to migrate from Flask to Fast. But I'm currently the only dev in my company and they want more software/features churned out instead of improving our bottlenecks or hiring more devs. I'd preferably rebuild everything in NodeJS but that's a lot of time I currently do not have.
Much better!
Thank you very much for adjusting your setup
always trying to fix my mistakes
Very nice explanation about requests and limits
thank you!
Thanks for the follow up. I think this really shows that JS is pretty good. Considering how easy it is to write and can still compete with something like go or Java is amazing
yes it pretty good, just be careful how you deploy it
Nodejs performance actually quite good, nice.
yes
Thanks for doing the part2 ❤
my pleasure! i'll do more node in the future including comparing cluster mode with horizontal scaling
Would love a video on how to do such benchmark with those graphs
i'll do it in the near future
These videos are awesome. Do you get a pretty high AWS bill from running these kinds of tests?
thanks! I need to set up an infra support fund 😊
Java vs C# vs Go with all the optimizations. That would be a good comparison. Maybe even default C# vs optimized C# just like this video's Go comparison.
will do
Really cool videos, may I know the program you use for video animations?
thanks! sure adobe suite
Way better now...
yes thanks
Thank you sir, it was very well explained up to the point.
thank you!
I love Anton! Can you also do these same tests using a k8s ARM architecture? please
i did one in the past with graviton, and i'll definitely refresh it soon
Great video! Could you share which monitoring application you're using to collect all those graphs?
Great video! Can you please do something to improve Java application performance on K8s as well? Thanks!
yes, i'll come back to Java soon
Vote up for this
Amazing, as usual. Thank you!
thanks!😊
the difference is not as big as I expected
True, but in real world, the difference would be much bigger with expanding complexity, libraries, frameworks, scalabilities, etc. I am mainly code in JS now but i know for sure that Go would destroy JS performance in most production cases since i have code in both language in comparable projects. Go also has a very fast framework (fiber) and overall higher quality libraries
yes, and i haven't started comparing deno or bun with go yet 😊
@@AntonPutra yeah do bun next
Never thought it would be this close
yeap, i'll test more. i want to know how nodejs cluster mode compares with standalone
It will be interesting to see Elixir vs go lang
will do
@@AntonPutra Thank you Anton,amazing videos learning a lot
Thank you for this video and I hope you can do video of optimized Django,with ninja and celery or other optimization. My best regards
thanks! yes in the future I'll improve it
this is so useful! thank you!
my pleasure!
great vid! how you pronounce availability is funny tho lol
thanks :)
As compare to last node vs go, in this node performed very close to golang.
yes due to improvements
Go vs Bun please!!!
yes, but deno vs. node.js vs bun is next, then with go
@@AntonPutra ty!
Anton, why is there CPU throttling when the CPU usage on Go: default and Go are not at the 1 CPU limit? Is the CPU plot not showing iowait or iosteal? Does `cpuset` do anything in a k8s env? When using raw hardware, using cpuset to avoid cross-socket traffic helps performance a great deal. If you're capping at 1cpu, then one may as well pin it to that core so it doesn't have to worry about floating to another core or socket.
Thanks for the diligent videos!
I'll double check
thank you, nice video.
I would like to benchmark my own projects, do you have a video that explain how to setups basics benchmark ? that would be great thx you
not yet but i'll create one soon
Why did you run 2 replicas with gomaxprocs=1 instead of 1 replica with gomaxprocs=2 and 2000m limit?
Your second test clearly shows that this has an impact on the performance of the go app.
Also, now that you switched to 2 core machines why not remove the cpu limit entirely? We discussed before about starvation of system resources but with 2000m limit on a 2 core machine the same starvation can happen so there should not be a difference right?
i get your point. i used gomaxprocs=1 and a 1 CPU limit just to have the same settings as for node.js. regarding the second question, in theory yes, but i haven't tested that scenario yet.
Thank you.
my pleasure, bun is next
Why don't you add dashboards to the source code? Can you solve it? It might be interesting, maybe for reusing your tests
i have it here - github.com/antonputra/tutorials/tree/main/lessons/135
i'm planing to create another tutorial on monitoring soon
MongoDB vs Postgres ( or Mysql ) please.
i think it's much easier to scale mongo horizontally then postgres with read only replicas, but i'll see what i can do
This had me wondering what would be the theoretical max limit a language can handle if given higher specs.
well it depends how many threads they create and in general adapt to multi core processors but i'm sure there is a limit
So I was right saying it was cause it's single threaded.
Ps you tried so hard to make go look good enough compared with js. 🙂
I appreciate what you are doing, it's super cool content!
Being a java dev I'd really like to see how best of each language setups compare. I mean like eg combining best go, rust, js, java for instance.
One more time - it’s super cool what you’re doing!
thanks 🙂
Ever going to see Bun , Deno vs something ?
yes, it's next for sure: deno vs. node.js vs bun. i just need to fix the mistakes before moving on to the next one
I am interested in your explanation on this video. What animation did you use for your video?
adobe suite
Insane!
yeah i know 😊
Perfect..
thanks!
What is that monitoring setup ?? dashboard looking clean.
thanks, i use prometheus + grafana, basic staff
the number of triggered JS people here is quite funny. If we constantly say he didn't do it right, I can say use go fiber and literally destroy JS once and for all.
Go fiber goes brrrrtt
@@spicynoodle7419 indeed, though I prefer the libraries built on stdlib as they're more than fast enough and have better compatibility. But if you need raw speed fiber is awesome.
@@spicynoodle7419 You should see how crazy Fiber-Prefork is in multicore systems.
I only have experience with gin. I know fiber is superior, but is the syntax similar? I want to migrate if it is
😂
For those who knows your Chanel very well, it's useless to blur the screen on the beginning of the benchmark videos 😂😂😂 we all know that the blue line is for go lang, what surprises me most, is node not being a green line 😂😂😂😂😂
i'll start picking random colors thanks for the tip 😊
Hope you do Erlang vs Zig vs Rust
ok noted!
Thank you for your content
Can you do the same for Django vs FastApi vs Flask
yes, i'll cover python frameworks more in near soon
please compare CROW (C++) vs Java or GO ??? pleaseeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
will do! but next Deno vs. Node.js vs Bun
Nice man, could you please also create .NET vs Java benchmark.
sure in the future
@@AntonPutra appreciate
What would be the effect if i do not set cpu limits at all?
You can get unpredictable throttling or performance penalties from neighboring containers that don't have resource limits and consume all available resources. These containers can not only starve other containers running on the same node, but more importantly, they can interfere with system components and make nodes unavailable.
compare two technologies is really hard because you need to understand deeply how they work. you did better now going more deeper how nodejs works and it's fair to say that go has a wonderful resources management
bro is javascript one of the easiest language to learn lol.
he's not talking about the language, he's referring to the underlying runtime and architectural considerations @@skuwamy
@@skuwamy you just need to learn the sintaxe to create scalable application, understood
@@elvispalaceit’s not about syntax
@@EdwinMartin lol, I think he is being sarcastic 😅 Wait…?
Round 3 -> Nodejs(fastify) vs go
Yeah lets use Go Fiber so that these javascript devs get triggered again hahha.
next, i'll do deno vs. node.js vs bun, then take the fastest and compare it with go 😊
can we get laravel benchmark?
yes a maybe one or more for js and then php
@@AntonPutra thank you
i would like to see Laravel vs Node vs Golang :)
i'll do some php soon
Now do Node vs Rust so we can really blow them out the water xD
Rust will obviously be even better, since Anton already did a similar test of Rust vs Go, and Rust was decisively better than Go. But, as someone already mentioned above, for a very large number of applications node is good enough, i.e. you don't get enough runtime savings from using a compiled, statically typed language that generates more efficient binaries to justify the higher development time costs. Node has a very well carved out niche in which it is pretty much the best choice, and unlikely to be replaced by anything in the foreseeable future.
i'll do a comparison with rust, but probably with bun
@@AntonPutra The reason I make the comment is that I think Node (and Java, and C#) are in the realm of companies that are looking at Rust and C++ (because C23) because it has a potential "very large" benefit that may be too big to ignore in light of the fact where the trade-off used to be much greater before Rust and in older versions of C++ that were not modern enough for a modern workforce and a modern codebase and architecture, but now is much more relevant.
elixir would be interesting 🙂
i'll do it in near future
I'm no benchmark pro but for it to be fair shouldn't you enable Worker Threads in Node?
if you want to deploy it on standalone server or VM you would create as many workers as you have cores but in K8s just scale horizontaly
Still waiting for the .NET part 2 :(
I'll definitely come back to it and improve in near future
Please compare bun vs go va rust
close :) next Deno vs. Node.js vs Bun
wait bun vs go vs rust? huh?
@@skuwamy bun is written in rust
First! Thanks for making these btw
my pleasure!
Could you compare cloudflare workers with hono vs go aws lambda?
ok, i'll see what i can do
@@AntonPutra Thank you, your channel one of the best things that I checking in moring in my subscriptions.
Can someone explain to me what Anton means when he says Go starts caching requests?!?
the explanation of milicores kind of ... looped? it felt like it was explaining the same concept 3 different ways
well, maybe i tried to give as many examples as possible
@@AntonPutra true :D and you should never listen to a single youtube commenter :D but just in case you get that feedback from multiple sources, that might be something to improve.
This far, its just "at least one person thinks this could have more concise" :D
Are you going to test nodejs with fastify (with pm2 load balancer with max 3 cores config?) vs go?
well maybe i'll do fastify, next Deno vs. Node.js vs Bun
@@AntonPutraNice! Would love to see how fastify performs with load balancer vs go std.
Please do a video on SurrealDB vs PostgreSQL
ok noted
Can you compare the GoLang and Scala web framworks like ZIO Http?
yes i'll do scala in the future
Funny to observe people still think Bun is really Node killer and really faster & better 😁
( one more killer, oh no 😁)
Like, uWebSocket used by Bun faster than Rust Actix Web, so the comparison with NodeJS related on req/res for sure will be faster lol,
but at the same time checking if string starts with some specific substring was ~14 times slower vs NodeJS.
Checkmate.
Just take a look at the amount of Bun devs/community and think how much time do they need to fix all the problems/bugs they have, to deliver everything NodeJS has today.
I guess lots.
testing bun right now
fastapi vs go
noted
Please do a node js vs rust
He did a comparison of Rust and Go, similar to this one, after he got feedback on an initial version. Rust came out on top of Go both times in absolutely every metric. Not by an astronomic amount, but, IIRC, by somewhat more than Go is better than node in this comparison. Which translates to Rust being better than node by an even larger margin than Go is.
yeah, in the future, but probably not node. instead, deno or bun vs rust
Let's see how Dart (with Shelf) competes
ok noted
Bun(Hono) vs Go...... Please
Go is faster. That's about it
deno vs. node.js vs bun is next, then i'll compare it with go
@@roccociccone597 its not that its faster......the question is how faster....if the difference is small then there is no need to learn Go or new technology and stick to JS and optimise in other parts of the application
Which nodejs version do u use?
just updated the video description - node.js (22.9) vs go (1.23.1) performance comparison
hi. what about python and php?
will do soon
Please do rails vs phoenix
Lots of javascript devs got triggered in your last video hahahaha
Haha exactly
True. Yet JS due to it's availability and 0 learning curve - makes everyone think they're pro in JS. That's why 90% of publicly available of JS is total crap. So JS has it's niche where it excels. But people will still multiply shit with it
@@AlexanderMoon Golang is so much easier to learn and use from get-go than Typescript, Node ecosystem alone probably takes couple years to learn and is required to do any real job. Go is a wonderful language to make things fast and easy, cut corners and do relatively good job. But anything you have time to think about, Go is one of the worst languages even when compared to Node/Typescript, with poorly written type system, weird error handling and worst of all, - limited support for main paradigms, - OOP and FP.
It feels like golang has weirdly good publicity. Despite only universal advantage being its simplicity.
@@commonfolk663 disagree. learning a language is not same as learning an ecosystem. Go is way more complex than JS. JS has barely no types bypassing aspects such as typesafety, mem allocations, immutability, concurrency whatsoever. So no, JS learning curve is incomparably smaller than Go's.
No one likes express.js performance. That's a fact.
i try to replicate your grafana histogram but i failed, do you mind to share the json of it?
sure - github.com/antonputra/tutorials/tree/main/lessons/135
Can you do bun vs go please ?
no one mentioned ruby or ruby on rails
😊
Php vs php concurrent vs go please
soon
Where I can find a client code/config? Thanks!!
i need to refactor it and i'll make it public
Gleam vs Rust vs GO pls u should test it 🙏
noted!
maybe one day, we cpp devs get a rest api test to once and for all decide which is the “fastest”.
actix or drogon?
p.s. i tried rust, it’s ok. i hate fighting with the compiler. i’d rather shoot my self in the foot
yes i'll do it, but i promised some more js, Deno vs. Node.js vs Bun next
The blurring on the first few minutes is irrelevant. We can figure which one is go and nodejs by line color and character lenghta 😂
😇
Go vs Encore.ts pleaseeeee
noted!
What about a PHP vs Go or Rust video? I'm sure a lot of people could use the result 😂
he has rust vs zig
@@bhavyakukkar yeah, I saw that, but I can't use that to push PHP people to change technology to Rust or Go to go faster/save on hardware 😀
i'll do php soon