The best backend language is the one you are most comfortable with ✊ A web app or mobile app is nothing without users and your users don’t care at all about what language your backend is written in.
Not really. I’d never write my backend in python or JavaScript. Neither is made for this use case and it shows when it comes to service stability and resource usage. Go is probably the best language for a backend. It’s easy to use and basically the fastest or one of the fastest ones so you don’t really have to worry about performance. It’s stable and also uses very little resources to achieve this performance. Rust is not a language for this kind of use case and Java and C# are some where in between so they’re fine to use but unless you already are invested in their stacks I’d probably not use them for new projects.
@@p19shelt Gin, Echo, Chi and iris are all great options. If you want something fully integrated like django there's beego. Gin is probably the best and most used one. Plenty of projects use Gin, it's kind of like the express of the Go world. Beego is often used on more corporate applications. You can also get started with the basic built in net/http library as most of the others just provide some kind of wrapper for it. If throughput is the most important using the x/net/http2 library instead of the net/http one is a good starting point.
I was in doubt about C# or others but seeing that he takes the 3rd position in all the parameters and has a medium of 7.6, made me realize that it is super good and is a jack of all trades, good for apps, web, gaming and others, the best thing is that its easy for me to learn as I already know Java and C
According to the weird statistics at 4:08, Java is twice as fast though 😂 (Java performs well, but usually it's the other way around, C being twice as fast)
For me personally, i think GoLang is a very good language to build backend. If you already know a bit of coding conventions and techniques, its pretty easy to learn. the learning curve is actually somewhat linear. on top of that, the performance is really good and the ecosystem is way more advanced than one might think. its in a pretty good shape. there are NOT ALOT of backend libs/ frameworks, but those which exist are very good and in no way worse to any backend lib/framework of typescript, there are just fewer of them.
The main reason there aren't many huge libs/frameworks is because the stdlib can very easily get you from start to finish, and it isn't even a "technically it can but..." kind of way, but a very real "it has everything you need" kind of way. Packages and libraries in Go are very much just for QoL and developer experience vs need. These kinds of videos always leave that bit out.
@@datguy4104 100% agree with you, ive personally never been in position where i need to write a lot of code to compensate for missing packages or features, the error handling feels natural and the code is really hard do get nested and hard to understand
0:22 - This is a misconception. JavaScript is very much asynchronous with its use of Promises and callbacks. You're confusing multithreading with asynchronous - they are not the same! Asynchronous just means that x process happens "somewhere else" (which doesn't have to be another thread and often actually is not another thread). I/O is inherently asynchronous - so it's a perfect candidate for Promises where you send a request and receive a response - which is then processed in a callback (or code after an await) that is queued to run in the event loop.
Ya I see this mistake often. And workers aren’t that hard. I think js gets a bad rep but it does have its issues especially with the community making all these packages every month and I think too much abstraction in areas that are key to learn for beginners.
@@jakes-dev1337 The only reason JS has any footing at all is because of Browsers. All in all, its a poorly designed language. Its easy to write, but filled to the brim with footguns. Writing and testing JS makes C++ look safe. It's easy to read, but its dynamic typing makes it impossible to understand what's going on. It doesn't require a compiler, but the amount of time you'll waste debugging makes compilation time look like nothing. Even old technologies like PHP put JS to shame.
For me, you rankings summarize what I think about C#: there will always be a better language for use case X, but in general, it is THE most consistent/general-purpose language (top 3 in every ranking you made). C# is the workhorse for the .NET ecosystem, which has really robust, enterprise-grade level, frameworks for almost any kind of application (excluding OS, critical systems and hardcore embedded programming): Web (both Front-end and Back-end), IoT, Native cross-plat devices, Machine Learning, Game development, etc. I think the ever-changing nature of C# is what it makes it all possible. One language for all these kinds of applications cannot be conservative about changing and adding features.
Grammar-wise I like Node.js + TypeScript being my first choice. But Golang is so good at built-in tooling and resource-saving. I’m currently working on two sister projects with similar functionalities in both languages. The same program Node takes me 30MB RAM (ts-node is even worse, over 120 MB), but Go only consumes 13 MB. The difference is clear.
@@sunnyarora3557there are many benchmarking tools. And to your second question, we have a bunch of ram for personal computers, on the server, we need more as we aim to serve the million users. The less resources it consumes, the more users can be served.
the thing about PHP is you need to know how to configure it, if you do then until you hit the lever where you start using load balancers it reks requests also it's funny how people call not having full type enforcement a vulnerability
Used C# professionally for 10 years. Very easy to use and has gotten a lot better over time, especially over the last 4 or so years. Only complaint is that since they never break backwards compatibility, there are many ways of doing some things and the older/bad/nonperformant APIs that you shouldn't use any more are still there. They sometimes mark them as obsolete (which doesn't break the code but generates a compiler warning with links to documentation for better ways) but its rare. I've started checking out Go this past week as a way of having some perspective of how other languages do things, but haven't really built anything with it yet. I did try using Rust before all the drama, but took a break from it, and now with the drama it kinda makes me not want to go back. May try Rust again if I end up not liking Go. If I was to start again having no programming knowledge, I'd probably go with Go based on the simple syntax.
Its much better to leave deprecated APIs in for too long than the exact opposite scenario - where you are given two weeks to change which APIs you use.
My biggest gripe with C# is Microsoft changing their mind about what direction they want to take the .Net framework in every 2 seconds. Might not affect web development that much but is a big issue for desktop development.
@spuzzdawg I usually either do web, console apps, or windows/linux services. Have built a couple of desktop apps, but was before .net core. I think when I considered .net core for a desktop app there was no drag and drop interface for core yet. Are you using MAUI?
Rust ecosystem is pretty big for all practical purposes. There's a crate (library) for almost everything that I've ever needed. I would like to see an example where rust doesn't have a nice library for something that other programming languages do.
Conaticus: "In this video, I will provide some unbiased information about each of this languages to help you decide." Also Conaticus in every other video: "I hate JavaScript" Seriously though, I feel like this type of content is what suits your channel the most. Keep it up!
One thing to note about PHP is that like JavaScript does with TypeScript, there's actually an extension/dialect of PHP called Hack which is written by Meta/Facebook, and supports nice features like static typing, and also JIT optimization. Apparently its slightly faster than PHP 7 :0
Very good video ! The only thing is that even if there are good language options for backend I have the feeling that the frontend will always dictate which language we will use for backend. And today frontend is all about javascript :)
Backends are harder to change once written. A new frontend can be made that may still depend on the previous era backend. In my job, I have a React frontend and a Java Tomcat backend. Originally the frontend was written in Java as well. I imagine a modern JS based frontend might go for a JS based backend as well, but that may change in the future.
I disagree heavily with this. You can do anything with JS. But you shouldn't do everything with JS. Pick the right tool for the job. Imagine Discord running their backend in JS lol
@@doxologist How many monthly active users do you really have though? If you have as many as Discord, then yes, I agree. But very few are that big, and require that extra power. It's okay to use a less performant option if it means faster development cycles.
not really. If you seperate backend and front end into two different services then they can be fully independent and you can write your backend however you want as long as it outputs the demanded response
@@dodibtw That's because you never worked in a startup. When you have few developers, you can't have this kind of luxury. You need to have people that are good at a lot of things, not experts in 1 area. It's why startups mostly wants full stack devs. Most startups go js backend and frontend it's to reduce this learning curve gap that full stack can have if they do frontend, backend and 2 different languages seem's more challenging then only js. Also, it's harder to find multi-language devs then only a guy that dit js
This list is poorly researched. He's claiming C# is slower than GO. In case you didn't know, there is a new C# runtime. One that is open source and cross platform and is as fast and sometimes faster than GO. Edit: Forget it. He says PHP has built-in support for multi-threading.
I agree with 95% of this. I would give Rust's developer experience a 6/10 at the very least, solely due to Cargo. I understand the learning curve is steep, but the actual DevX for rust is pretty good: 1. It has the most informative compiler of any language 2. Extremely easily to build on different architectures 3. Cargo has everything you'd need to install 3rd party packages for in JS and Python 4. Testing and Benching built in It mainly loses points on its ridiculous build times.
PHP is a really good prototyping language. It allows you to quickly build your app without too much of boilerplate or dependency issues. PHP 8 has significantly better performance thanks to the JIT compiler.
Golang has so many web frameworks like Gin,Mux,Fiber Echo,Chi etc. How to choose one ? And apart from API development, what I have to learn in Golang to get a job.
Just knowing a language or framework doesn't make you automatically employable. A language is just tools to translate your solution to some problem. Therefore you have to be able to solve problems - this is what is valuable. Tutorials on classes, functions or for loops don't teach that. You need to research the area of interest, be it web, operating systems, embedded systems, etc. Learn what typical problems people have/solve in your area of interest and reserch the hell out of them. Data storage and retrieval, performance bottlenecks, data structures, all of that good stuff.
It is. But as a go dev some things still are not quite there yet. It’s already perfectly usable, but for smaller projects it’s a little less easy to setup if you’re new to it.
It's a really "love it or hate it language", the language doesn't have proper OOP, doesn't have null safety and has a small community On the other hand it is easy to write, minimal and extremely fast. It's great if you like minimal programming language and functional programming instead of classes
@@roccociccone597 i have been working with GO can you plesase tell me what u feel is missing, for building big application. Apart from syntax level stuff(null safty etc) and generally people use it to build small microservices.
I haven’t seen any reasonably complex performance tests that show any significant difference in speed between c# and go. Go is compiled to native which gives it quicker startup speed, but c#’s runtime optimizations are impressive giving it an advantage in long running processes.
I haven't worked with PHP for a while, but i know that they have added types in the last 1 or 2 years. Now idk how if the interpreter can be setup to be strict when it comes to types.
The interpreter is very strict when it comes to types. If you pass a wrong type to a function it will just result in an "RuntimeError". Also you have the option to use `declare(strict_types=1);` to enforce type safety even more. But still it's not perfectly implemented yet. It will take a little bit more time until it's fully type safe.
Fresh content filled with outdated information, among other issues: PHP and Python both support static typing, but it's optional and less advanced than in languages designed with static typing from the beginning. Even in Ruby, you can introduce type annotations through dependencies (the author completely neglects this in their material). Ruby, starting from version 3, is notably faster. The introduction of the Ractor concurrency model (an actor model for Ruby) allows achieving true concurrency, greatly enhancing performance (the author remains silent on these matters in their material). The absence of extensive frameworks in Golang stems from the fact that the Go language boasts a rich standard library. Minimal abstractions, such as Gin or Fiber, suffice to achieve what larger frameworks in other languages offer. The Go programming approach eliminates the need for mammoth frameworks (the author fails to address this in their material). Statements like PHP having a concurrency model or Java being nearly as efficient as PHP are outright misconceptions that hardly deserve a response. In summary, this content appears to be authored by someone inexperienced in the programming world or, perhaps, lacking expertise...
These guys talk about ancient Java. We now have extremely performant Java based frameworks (Micronaut/Quarkus) and tech like Graalvm, etc. Although I would agree that Java sucks in terms of verbosity and boilerplate department.
In my early days I thought it was not a great environment to be in because of "m$". I've now been primarily a .NET (C#) developer for 5 years and it's been great. Been using a Mac for 3 of those years and the entire time been using Linux-based containers for development and development. =)
I probably will go with golang, easy syntax just learn it once, high performance which saves cost, time and improves user experience. I considered using rust but when i compared the time i need to learn rust and everything around it to write a better api than in golang it would probably take me 2 years, theprimeagon tried it and he's amazing at rust and still golang was better because rust has so many small things that you can optimize and if you dont do it its just better to use golang
Man idk wtf wrong with these performance folks. Performance is cheap, memory is cheap and CPU is cheap too! Like it does not matter for someone's todo app or a site with 23 monthly users. Unless your application needs high throughput, you probably never need that performance. The most costly thing in development is development time itself and go is fine for a todo app but when you wanna build a large application, it'll take far more time to build when compared to other well established languages. Like just stop with X hAs BeTTeR peRfOrManCE tHeN Y. It's nonsense.
@@zed5790 they try to teach us to work with critical applications and environments, because learning how to program a slow app isn't hard, so it is not worthy saying that "using javascript for you todo app is okay" because it's very obvious
@@zed5790Yeah, but it also depends on your use case/end goal. If you have a unicorn idea and want to serve users and go public with it as fast as possible, it would be advantageous to go with Javascript or Python, depending on your use case. However, if you want to learn memory management, working close to the metal, creating a language-agnostic tool/library, and other stuff that dynamic languages can't provide you, Python and Javascript aren't the solution for that. All in all, this is more of a test on your software engineering skills. You compare these languages over their advantages and disadvantages from their language design and overall ecosystem and decide from there.
I like C# as a language but I hate using it. Because Microsoft loves to chain you to use their ecosystem from text editor to database to Azure otherwise you will suffer a lot.
This was the case until a few years ago, and is still with .NET Framework. Since .NET has gone open source and multi-platform it really isn't tied to microsoft anymore
@@meowrbius Well at least Typescript isn't that vendor locked like C# you can write TS from any editor with all the good tooling. but for VS Code Yes I even left it for this reason. Microsoft makes great open source LSP's but then it makes a greater one closed source based on the open source one that only works on VsCode instead of contributing to the open version that anyone can use Nope let's make it closed source.
Personally I think not, most developers find that after using TypeScript for a while it is hugely more efficient to work with because of how helpful the compiler errors are
@@conaticus It has way better intellisense compared to JavaScript, I can create a type and it shows up in autocomplete. The typing also makes it more secure, since you cannot accidentally pass a wrong type into a function.
Ok, but I disagree with you on Ecosystem & Community ranking. Ruby could fit well in the second or third position. Rails can give you all the tools you need and Ruby has other tools beyond Rails. Don't forget that all of that modern programming approach such as convention over configuration, Git, tests, migrations and many others were created or popularized by Ruby community and spread to other languages. Another point I disagree is Developer Experience. I don't know about you but I prefer write as close as possible to my natural language than to the machine one. Python ok, but JavaScript? Go? Ruby behind PHP? lol And Ruby is not a dead language.
It's great playing around with SIMD (AVX-256 and AVX-512) with the new Java vector API. AI/ML without external dependencies. Also coming soon will be the ability to offload to the GPU seamlessly without needing to write CUDA/OpenCL. Very exciting times.
Great video, but I don't like developer experience category, go should have more points and javascript it self should be below 8, typescript improves dx but its not vanilla js. Lsp in go is so much better than in vanilla js
I agree with most, thinking about doing some projects in C# seeing this and all the comments supporting it. I strongly disagree with developer experience of javascript, I can not stand it. I enjoy writing Java waaaay more than I enjoy writing JS, the weird Object structure and unintuitive methods and functions are horrible. Python is in my opinion the best developer experience, thought it is slow and dangerous, but it allows for very complex tasks to be done in a readable one liner, whereas in JS you have many unintuitive syntax chains.
It is much more complicated. Java alone is nothing special. But Java + Spring + Maven central is far most developed ecosystem. I am writing really weird backends that for example authenticates with RADIUS, sending notification SNMP traps or communucates with CORBA. In java, easy. And for microservices the best candidate is golang with coroutines.
TypeScript, Python, Go, Rust, Swift, Kotlin, C#, C++, Solidity. These programming languages cover a wide range of applications: web development (backend and frontend), mobile, desktop, embedded systems, ML/AI, data analysis, and data science, game development, cybersecurity, networks and systems, automation and scripting, blockchain, AR/VR, DevOps, etc. They have promising futures, and numerous job opportunities are available. You just need to choose a couple of these languages, and you're good to go. Decide which field you want to specialize in, and choose a language accordingly. Also, keep in mind that some languages are more saturated in the market; for instance, TypeScript is in a highly competitive market with millions of programmers, while Go, Rust, and Solidity are less saturated.
You start by saying that you're going to provide an unbiased look at these languages and then at the end you say "this is my opinion". In general these lists that try to rate programming languages, they're not very constructive; you're comparing apples to oranges. Also, I love how you mention later versions of Python, PHP etc but you completely ignore Ruby 3.0. in Ruby 3.0, they made the JIT considerably faster and added much better multi-threaded support via libraries like reactor. Also this assumption that a smaller community means less security, it's just not correct. Look at JavaScript for example, they have one of the largest communities out of any programming language and yet I wouldn't consider it to be more secure because of that. In fact, given how many libraries try to do the same thing, you could very easily run into a case where you pick a library that ends up being malicious without realizing it. This happens all the time.
While I love C#, it’s easy to overlook the amount of good practices go imposes by design, such as the lack of a try catch, etc In my experience the developer experience has by far been the best in go
I work on laravel and it doesn't have multi threading, it is fast and its eloquent queries are great but i would rather choose go if u want performance but if u want easy to setup and a good compromise language framework laravel works pretty fine.
You focused way too much on the negatives of PHP. It's an extremely mature ecosystem and can be scaled just fine with tools like Swoole. It has a bad rep from legacy versions which have been fixed, and it's currently thriving. It's a highly productive stack, especially when using frameworks like Laravel.
I'm surprised that there is no mention of C or C++? They are still widely utilized and popular among many developers and programmers. In the TIOBE lists that are used in this video. C is at number 2 and C++ at number 3. I do think Rust will become more popular in the near future. Of course if you want an "easy ride" Rust might not be your cup of tea. Also "Zig", if it "takes off ", might also be something worth looking into. I do most of my programming in C.
@@InvixYTYou can write a web server and send http responses in C quite easily it's like 200 lines. Having to do stuff manually is a bit crude though.
1:36 "boilerplates"? What year is it, 2012? BTW, you mention that with JS you can have front-end and backend in same language. Why you skip the same feature on C#?
Python is easiest, but for some reason I prefer Java. I actually know more using Python, but I enjoy debugging Java. It might just be the abyss of self-hate I have deep in my soul.
By a small ecosystem I guess you mean not bloated with thousands of things that do the same thing in different ways, Python and JS is the worst you go through dependency hell and npm packages are the heaviest things in the universe
C# and Java have about the same DX for me. C# is bloated and let’s you do the same thing in 10 different ways. Go is lovely as it’s simple and pretty straightforward.
I have to contradict you on the java topic. While yea, you can use "old" threads which are just a thin wrapper over the system threads, java 21 provides you with virtual threads which are very efficient and you can have hundreds of them with not much of an impact..yea I know java gets a lot of hate but that is towards java 8 that is still widely used, but if you switch to java 15+ then you'll see that it gets faster and faster and less boilerplate and more efficient. And if you use Spring Framewoork with the spring boot module, life couldn't be sweeter
The only thing you need is "Choose the programming language that can pay your bills."
Surely
Php
The best backend language is the one you are most comfortable with ✊
A web app or mobile app is nothing without users and your users don’t care at all about what language your backend is written in.
well big companies LOVES (naturally) the features in the video
unless you want performance and wants to save money for your company
Not really. I’d never write my backend in python or JavaScript. Neither is made for this use case and it shows when it comes to service stability and resource usage. Go is probably the best language for a backend. It’s easy to use and basically the fastest or one of the fastest ones so you don’t really have to worry about performance. It’s stable and also uses very little resources to achieve this performance. Rust is not a language for this kind of use case and Java and C# are some where in between so they’re fine to use but unless you already are invested in their stacks I’d probably not use them for new projects.
@roccociccone597 barley any HTTP libraries worth learningtho.
@@p19shelt Gin, Echo, Chi and iris are all great options. If you want something fully integrated like django there's beego. Gin is probably the best and most used one. Plenty of projects use Gin, it's kind of like the express of the Go world. Beego is often used on more corporate applications. You can also get started with the basic built in net/http library as most of the others just provide some kind of wrapper for it. If throughput is the most important using the x/net/http2 library instead of the net/http one is a good starting point.
I'm more than happy with PHP + Laravel right now.
Laravel is a really awesome framework.
ewwww
@@harem_lord-FFMProblem ya goof?
I checked out Laravel's doc and even though I'm not a PHP dev. it looks nice and fun.
Tenancy supremacy
C# is the beautiful mix between a fast, robust and modern syntax language.
c# is the christian cousin to c++
@@krocznik2394 No that's Holy C
@@s1nistr433 hahaha i was refering to the pointer handling but this made me laugh
@@krocznik2394It's Java's son
FR@@HatakeyKakashi
I was in doubt about C# or others but seeing that he takes the 3rd position in all the parameters and has a medium of 7.6, made me realize that it is super good and is a jack of all trades, good for apps, web, gaming and others, the best thing is that its easy for me to learn as I already know Java and C
Lots of people write the language off because of the early days, Microsoft have really stepped up there game from .NET 5+ imo
I prefer to write my backend in pure C 🗿
According to the weird statistics at 4:08, Java is twice as fast though 😂
(Java performs well, but usually it's the other way around, C being twice as fast)
🗿
🗿
@@AntonioNoackJava can be faster than C with some very special cases, where the JVM can optimize away stuff that the C compiler can't.
I write my backend in asm x86 🗿
Always remember, someone somewhere is writing their backend in ASM
For me personally, i think GoLang is a very good language to build backend. If you already know a bit of coding conventions and techniques, its pretty easy to learn. the learning curve is actually somewhat linear. on top of that, the performance is really good and the ecosystem is way more advanced than one might think. its in a pretty good shape. there are NOT ALOT of backend libs/ frameworks, but those which exist are very good and in no way worse to any backend lib/framework of typescript, there are just fewer of them.
The main reason there aren't many huge libs/frameworks is because the stdlib can very easily get you from start to finish, and it isn't even a "technically it can but..." kind of way, but a very real "it has everything you need" kind of way. Packages and libraries in Go are very much just for QoL and developer experience vs need. These kinds of videos always leave that bit out.
@@datguy4104 100% agree with you, ive personally never been in position where i need to write a lot of code to compensate for missing packages or features, the error handling feels natural and the code is really hard do get nested and hard to understand
0:22 - This is a misconception. JavaScript is very much asynchronous with its use of Promises and callbacks. You're confusing multithreading with asynchronous - they are not the same! Asynchronous just means that x process happens "somewhere else" (which doesn't have to be another thread and often actually is not another thread). I/O is inherently asynchronous - so it's a perfect candidate for Promises where you send a request and receive a response - which is then processed in a callback (or code after an await) that is queued to run in the event loop.
Ya I see this mistake often. And workers aren’t that hard. I think js gets a bad rep but it does have its issues especially with the community making all these packages every month and I think too much abstraction in areas that are key to learn for beginners.
People hate on js but the proof is in the pudding. It works, and it's easy to write and read.
@@dixztube workers are hard to synchronise and to communicate between eachother. they also don't support async communication
@@jakes-dev1337 The only reason JS has any footing at all is because of Browsers. All in all, its a poorly designed language. Its easy to write, but filled to the brim with footguns. Writing and testing JS makes C++ look safe. It's easy to read, but its dynamic typing makes it impossible to understand what's going on. It doesn't require a compiler, but the amount of time you'll waste debugging makes compilation time look like nothing. Even old technologies like PHP put JS to shame.
I was wondering too! Thanks for making it clear
I just recently started using C# earlier this year I have very much enjoyed it to my surprise.
Can your share experience about C# and .net for the backend, im exploring to start backend but have confusion which backend framework should i pick?
Yes, please can you please tell Is C# still good for backend development? I am deciding between C# and Python.
@@AruhiArora I like it, very feature rich. I do it for work, i personally doing NestJS for my other products.
@AruhiArora for God's sakes take c#. Python for backend is insane
0:24 it's asynchronous by definition, but it doesn't support parallel execution.
For me, you rankings summarize what I think about C#: there will always be a better language for use case X, but in general, it is THE most consistent/general-purpose language (top 3 in every ranking you made).
C# is the workhorse for the .NET ecosystem, which has really robust, enterprise-grade level, frameworks for almost any kind of application (excluding OS, critical systems and hardcore embedded programming): Web (both Front-end and Back-end), IoT, Native cross-plat devices, Machine Learning, Game development, etc.
I think the ever-changing nature of C# is what it makes it all possible. One language for all these kinds of applications cannot be conservative about changing and adding features.
Developer Experience and Community Support are the most important for me, so I go with Javascript for FE and Python for BE.
Ewww two slow disgusting languages
You forgot Elixir, which is pretty good
Consistent winner C# & I love that ❤
Grammar-wise I like Node.js + TypeScript being my first choice. But Golang is so good at built-in tooling and resource-saving. I’m currently working on two sister projects with similar functionalities in both languages. The same program Node takes me 30MB RAM (ts-node is even worse, over 120 MB), but Go only consumes 13 MB. The difference is clear.
How can we measure RAM usage of language and why does it matter as we have plenty of it now?
You use Node.js for backend? I'm guessing Express.js
@@sunnyarora3557there are many benchmarking tools.
And to your second question, we have a bunch of ram for personal computers, on the server, we need more as we aim to serve the million users. The less resources it consumes, the more users can be served.
@@sunnyarora3557because you pay for the server memory probably
@@sunnyarora3557higher memory means more gc pauses = slower requests per second
the thing about PHP is you need to know how to configure it, if you do then until you hit the lever where you start using load balancers it reks requests
also it's funny how people call not having full type enforcement a vulnerability
Used C# professionally for 10 years. Very easy to use and has gotten a lot better over time, especially over the last 4 or so years. Only complaint is that since they never break backwards compatibility, there are many ways of doing some things and the older/bad/nonperformant APIs that you shouldn't use any more are still there. They sometimes mark them as obsolete (which doesn't break the code but generates a compiler warning with links to documentation for better ways) but its rare.
I've started checking out Go this past week as a way of having some perspective of how other languages do things, but haven't really built anything with it yet. I did try using Rust before all the drama, but took a break from it, and now with the drama it kinda makes me not want to go back. May try Rust again if I end up not liking Go. If I was to start again having no programming knowledge, I'd probably go with Go based on the simple syntax.
don't forget moving some packages out of System namespaces into Microsoft namespaces.
Its much better to leave deprecated APIs in for too long than the exact opposite scenario - where you are given two weeks to change which APIs you use.
My biggest gripe with C# is Microsoft changing their mind about what direction they want to take the .Net framework in every 2 seconds. Might not affect web development that much but is a big issue for desktop development.
@spuzzdawg I usually either do web, console apps, or windows/linux services. Have built a couple of desktop apps, but was before .net core. I think when I considered .net core for a desktop app there was no drag and drop interface for core yet. Are you using MAUI?
@@spuzzdawgmy biggest gripe with c# is Microsoft
Rust ecosystem is pretty big for all practical purposes. There's a crate (library) for almost everything that I've ever needed. I would like to see an example where rust doesn't have a nice library for something that other programming languages do.
Exactly. It might be small but pretty efficient and got everything any developer requires
async traits still make me want to vomit, but otherwise i agree
@@dogeplayz. Yeah async traits aren't there yet. I just try to program around them and avoid them as much as possible
@@dogeplayz. They are finally here!
@@CamaradaArdidamn!
Conaticus: "In this video, I will provide some unbiased information about each of this languages to help you decide."
Also Conaticus in every other video: "I hate JavaScript"
Seriously though, I feel like this type of content is what suits your channel the most. Keep it up!
JavaScript is by far the best bad programming language of all time
@@s1nistr433 truly wise words
🤣@@ExediceWhyNot
One thing to note about PHP is that like JavaScript does with TypeScript, there's actually an extension/dialect of PHP called Hack which is written by Meta/Facebook, and supports nice features like static typing, and also JIT optimization. Apparently its slightly faster than PHP 7 :0
Very good video ! The only thing is that even if there are good language options for backend I have the feeling that the frontend will always dictate which language we will use for backend. And today frontend is all about javascript :)
Backends are harder to change once written. A new frontend can be made that may still depend on the previous era backend. In my job, I have a React frontend and a Java Tomcat backend. Originally the frontend was written in Java as well. I imagine a modern JS based frontend might go for a JS based backend as well, but that may change in the future.
I disagree heavily with this. You can do anything with JS. But you shouldn't do everything with JS. Pick the right tool for the job. Imagine Discord running their backend in JS lol
@@doxologist How many monthly active users do you really have though? If you have as many as Discord, then yes, I agree. But very few are that big, and require that extra power. It's okay to use a less performant option if it means faster development cycles.
not really. If you seperate backend and front end into two different services then they can be fully independent and you can write your backend however you want as long as it outputs the demanded response
@@dodibtw That's because you never worked in a startup. When you have few developers, you can't have this kind of luxury. You need to have people that are good at a lot of things, not experts in 1 area. It's why startups mostly wants full stack devs. Most startups go js backend and frontend it's to reduce this learning curve gap that full stack can have if they do frontend, backend and 2 different languages seem's more challenging then only js. Also, it's harder to find multi-language devs then only a guy that dit js
This list is poorly researched. He's claiming C# is slower than GO. In case you didn't know, there is a new C# runtime. One that is open source and cross platform and is as fast and sometimes faster than GO.
Edit: Forget it. He says PHP has built-in support for multi-threading.
I checked some benchmarks even with this new runtime c# is consistently slower with the occasional win. Nothing much changed.
@@roccociccone597false
I agree with 95% of this. I would give Rust's developer experience a 6/10 at the very least, solely due to Cargo. I understand the learning curve is steep, but the actual DevX for rust is pretty good:
1. It has the most informative compiler of any language
2. Extremely easily to build on different architectures
3. Cargo has everything you'd need to install 3rd party packages for in JS and Python
4. Testing and Benching built in
It mainly loses points on its ridiculous build times.
Also community is loving Rust year on year(StackOverflow Surveys)
did you use ruby 3 for the performance test? it is supposed to be 3 times faster than v2, and if memory doesnt fail me, it is faster than python
Poor research from the dude! He thinks that the community and support is better in js 😂
PHP is a really good prototyping language. It allows you to quickly build your app without too much of boilerplate or dependency issues. PHP 8 has significantly better performance thanks to the JIT compiler.
PHP all the way! Did you see that? It’s faster than NodeJS
Golang has so many web frameworks like Gin,Mux,Fiber Echo,Chi etc. How to choose one ? And apart from API development, what I have to learn in Golang to get a job.
Just knowing a language or framework doesn't make you automatically employable. A language is just tools to translate your solution to some problem. Therefore you have to be able to solve problems - this is what is valuable. Tutorials on classes, functions or for loops don't teach that. You need to research the area of interest, be it web, operating systems, embedded systems, etc. Learn what typical problems people have/solve in your area of interest and reserch the hell out of them. Data storage and retrieval, performance bottlenecks, data structures, all of that good stuff.
It’s Go. I’m not a Go developer, but cmon, let’s be realistic here
I picked up Go in like 3 dys, it's minimalist af
It is. But as a go dev some things still are not quite there yet. It’s already perfectly usable, but for smaller projects it’s a little less easy to setup if you’re new to it.
It's a really "love it or hate it language", the language doesn't have proper OOP, doesn't have null safety and has a small community
On the other hand it is easy to write, minimal and extremely fast. It's great if you like minimal programming language and functional programming instead of classes
@@s1nistr433 not having OOP is not a reason for why a language is good or not.
@@roccociccone597 i have been working with GO can you plesase tell me what u feel is missing, for building big application. Apart from syntax level stuff(null safty etc) and generally people use it to build small microservices.
Rust has an almost complete ecosystem and once you have learned the borrow checker you don’t have to deal with stuff like js bs
learning the borrow checker: "it's being 84 years". xD
C# FTW! 🚀
3:40 Javas threads use system threads so why would it be less efficient than "traditional multithreading" whats the difference
c# is so comfy and u can used for almost anything
The best backend language is the one that pays your bills
I haven’t seen any reasonably complex performance tests that show any significant difference in speed between c# and go.
Go is compiled to native which gives it quicker startup speed, but c#’s runtime optimizations are impressive giving it an advantage in long running processes.
Helpful video, thank you!
I haven't worked with PHP for a while, but i know that they have added types in the last 1 or 2 years. Now idk how if the interpreter can be setup to be strict when it comes to types.
The interpreter is very strict when it comes to types. If you pass a wrong type to a function it will just result in an "RuntimeError". Also you have the option to use `declare(strict_types=1);` to enforce type safety even more. But still it's not perfectly implemented yet. It will take a little bit more time until it's fully type safe.
PHP had types for a while now
you said that GO is the fastest language in this list having Rust in it
Why not talk about Cpp? It is extremely popular and used in backend work by some of the largest companies out there
Fresh content filled with outdated information, among other issues:
PHP and Python both support static typing, but it's optional and less advanced than in languages designed with static typing from the beginning. Even in Ruby, you can introduce type annotations through dependencies (the author completely neglects this in their material).
Ruby, starting from version 3, is notably faster. The introduction of the Ractor concurrency model (an actor model for Ruby) allows achieving true concurrency, greatly enhancing performance (the author remains silent on these matters in their material).
The absence of extensive frameworks in Golang stems from the fact that the Go language boasts a rich standard library. Minimal abstractions, such as Gin or Fiber, suffice to achieve what larger frameworks in other languages offer. The Go programming approach eliminates the need for mammoth frameworks (the author fails to address this in their material).
Statements like PHP having a concurrency model or Java being nearly as efficient as PHP are outright misconceptions that hardly deserve a response.
In summary, this content appears to be authored by someone inexperienced in the programming world or, perhaps, lacking expertise...
You didn't take into account the jit java compiler when it's warned up not even go can match it's speed
These guys talk about ancient Java. We now have extremely performant Java based frameworks (Micronaut/Quarkus) and tech like Graalvm, etc. Although I would agree that Java sucks in terms of verbosity and boilerplate department.
TLDR; C# is best
you always manage to post stuff I actually find interesting👌
C# is the best general-purpose programming language ever created. Simply the best!
In my early days I thought it was not a great environment to be in because of "m$". I've now been primarily a .NET (C#) developer for 5 years and it's been great. Been using a Mac for 3 of those years and the entire time been using Linux-based containers for development and development. =)
Most bs thing i ever read today (i read a lot of stupid stuff)
@@event-sourcing i was staying away from c# due to fear of vendor lock, i really hate microsoft and windows
@@sitter2207 I wonder why nobody every forked dotnet and freed it from microsoft
Java hold my 🍺
Nice video and you did a fair ranking/rating job overall.
What are the music you used for the video? They sound amazing
I use C for backend, and it is great.
Shill me on it. What are the top couple frameworks, if there are any.
Hi Sir can you help me learn how to do backend things in c language please
@@DYnosCode Sir you are to be reading the docs please sir thank you sir
@@datguy4104 none, you write everything from scratch according to specs
@@datguy4104 Yes, I read a lot of documentation about specs
Nim is by far my favorite, can compile into C code. Otherwise I'll just stay with C.
I probably will go with golang, easy syntax just learn it once, high performance which saves cost, time and improves user experience. I considered using rust but when i compared the time i need to learn rust and everything around it to write a better api than in golang it would probably take me 2 years, theprimeagon tried it and he's amazing at rust and still golang was better because rust has so many small things that you can optimize and if you dont do it its just better to use golang
Man idk wtf wrong with these performance folks. Performance is cheap, memory is cheap and CPU is cheap too! Like it does not matter for someone's todo app or a site with 23 monthly users. Unless your application needs high throughput, you probably never need that performance.
The most costly thing in development is development time itself and go is fine for a todo app but when you wanna build a large application, it'll take far more time to build when compared to other well established languages.
Like just stop with X hAs BeTTeR peRfOrManCE tHeN Y. It's nonsense.
@@zed5790 they know that, I think the one that doesn't get it is you lol
@@zed5790 but we also know deep down every developer wants their todo app to have a trillion users
@@zed5790 they try to teach us to work with critical applications and environments, because learning how to program a slow app isn't hard, so it is not worthy saying that "using javascript for you todo app is okay" because it's very obvious
@@zed5790Yeah, but it also depends on your use case/end goal. If you have a unicorn idea and want to serve users and go public with it as fast as possible, it would be advantageous to go with Javascript or Python, depending on your use case. However, if you want to learn memory management, working close to the metal, creating a language-agnostic tool/library, and other stuff that dynamic languages can't provide you, Python and Javascript aren't the solution for that.
All in all, this is more of a test on your software engineering skills. You compare these languages over their advantages and disadvantages from their language design and overall ecosystem and decide from there.
im using python for almost one yr for back-end and it is very easy, if performance is in need i use c to help python run faster
The choice of language should be decided by your team.
I like this kind of stuff special from you side😊
I like C# as a language but I hate using it. Because Microsoft loves to chain you to use their ecosystem from text editor to database to Azure otherwise you will suffer a lot.
This was the case until a few years ago, and is still with .NET Framework. Since .NET has gone open source and multi-platform it really isn't tied to microsoft anymore
Everyone says this and then proceeds to go with Typescript and VS code lol
@@meowrbius Well at least Typescript isn't that vendor locked like C# you can write TS from any editor with all the good tooling. but for VS Code Yes I even left it for this reason. Microsoft makes great open source LSP's but then it makes a greater one closed source based on the open source one that only works on VsCode instead of contributing to the open version that anyone can use Nope let's make it closed source.
@@meowrbius nah, Neovim brother. I do use TS for frontend stuff but my backends are mostly golang
@@meowrbius Not everyone uses TS. We use JS Doc but we do use VS Code though.
Ruby certainly isn't 7th in Developer Experience, or in any other comparison.
is there a single advantage of using javascript instead of typescript
Personally I think not, most developers find that after using TypeScript for a while it is hugely more efficient to work with because of how helpful the compiler errors are
@@conaticus It has way better intellisense compared to JavaScript, I can create a type and it shows up in autocomplete. The typing also makes it more secure, since you cannot accidentally pass a wrong type into a function.
No build step, most likely the one advantage
@@oszi7058 There often is one, since people use babel for features that are not yet implemented in node.
@@oszi7058 yup, iirc this one was the decising factor for svelte to ditch typescript, going to JSDOC
Great video and I agree. C# is great 🎉
Idgaf about back end but since I enjoy your videos I'll watch
I appreciate this ranking.
Ok, but I disagree with you on Ecosystem & Community ranking. Ruby could fit well in the second or third position. Rails can give you all the tools you need and Ruby has other tools beyond Rails. Don't forget that all of that modern programming approach such as convention over configuration, Git, tests, migrations and many others were created or popularized by Ruby community and spread to other languages.
Another point I disagree is Developer Experience. I don't know about you but I prefer write as close as possible to my natural language than to the machine one. Python ok, but JavaScript? Go? Ruby behind PHP? lol
And Ruby is not a dead language.
It's great playing around with SIMD (AVX-256 and AVX-512) with the new Java vector API. AI/ML without external dependencies. Also coming soon will be the ability to offload to the GPU seamlessly without needing to write CUDA/OpenCL. Very exciting times.
Great video, but I don't like developer experience category, go should have more points and javascript it self should be below 8, typescript improves dx but its not vanilla js. Lsp in go is so much better than in vanilla js
Another masterpiece of a video.
I agree with most, thinking about doing some projects in C# seeing this and all the comments supporting it.
I strongly disagree with developer experience of javascript, I can not stand it. I enjoy writing Java waaaay more than I enjoy writing JS, the weird Object structure and unintuitive methods and functions are horrible. Python is in my opinion the best developer experience, thought it is slow and dangerous, but it allows for very complex tasks to be done in a readable one liner, whereas in JS you have many unintuitive syntax chains.
It is much more complicated.
Java alone is nothing special. But Java + Spring + Maven central is far most developed ecosystem. I am writing really weird backends that for example authenticates with RADIUS, sending notification SNMP traps or communucates with CORBA. In java, easy.
And for microservices the best candidate is golang with coroutines.
in go not coroutines is Goroutine
i think every language is great
C#
What’s the track played during the video?
C#💪💪
TypeScript, Python, Go, Rust, Swift, Kotlin, C#, C++, Solidity.
These programming languages cover a wide range of applications: web development (backend and frontend), mobile, desktop, embedded systems, ML/AI, data analysis, and data science, game development, cybersecurity, networks and systems, automation and scripting, blockchain, AR/VR, DevOps, etc.
They have promising futures, and numerous job opportunities are available. You just need to choose a couple of these languages, and you're good to go.
Decide which field you want to specialize in, and choose a language accordingly. Also, keep in mind that some languages are more saturated in the market; for instance, TypeScript is in a highly competitive market with millions of programmers, while Go, Rust, and Solidity are less saturated.
You mean java has no future?
You start by saying that you're going to provide an unbiased look at these languages and then at the end you say "this is my opinion". In general these lists that try to rate programming languages, they're not very constructive; you're comparing apples to oranges. Also, I love how you mention later versions of Python, PHP etc but you completely ignore Ruby 3.0. in Ruby 3.0, they made the JIT considerably faster and added much better multi-threaded support via libraries like reactor. Also this assumption that a smaller community means less security, it's just not correct. Look at JavaScript for example, they have one of the largest communities out of any programming language and yet I wouldn't consider it to be more secure because of that. In fact, given how many libraries try to do the same thing, you could very easily run into a case where you pick a library that ends up being malicious without realizing it. This happens all the time.
This sounds entirely AI generated
The best thing about ruby is it's metaprogramming. If you're not using it you're missing out.
I see no one mentioning Django. But you know it reigns!!!!
can I write backend using C?
you can, if you like suffering 💀
probably, but should you?
at **least** c++ if you go down that dark path
While I love C#, it’s easy to overlook the amount of good practices go imposes by design, such as the lack of a try catch, etc
In my experience the developer experience has by far been the best in go
I think C# is quite bloated. It has too many ways of doing the same thing. That just results in less readable code in general.
Looks like on average, c# is the best since its 3rd in every single leaderbaord
I work on laravel and it doesn't have multi threading, it is fast and its eloquent queries are great but i would rather choose go if u want performance but if u want easy to setup and a good compromise language framework laravel works pretty fine.
You focused way too much on the negatives of PHP. It's an extremely mature ecosystem and can be scaled just fine with tools like Swoole. It has a bad rep from legacy versions which have been fixed, and it's currently thriving. It's a highly productive stack, especially when using frameworks like Laravel.
i'm genuinely curious , is Golang worth learning? i mean would i actually make money/get jobs from learning golang?
I think the community support for PHP is much bigger than C# and Java. Remember more than half of the internet runs on wordpress and PHP.
And where is C/C++?
Scala is not on list. Why?
I'm surprised that there is no mention of C or C++? They are still widely utilized and popular among many developers and programmers. In the TIOBE lists that are used in this video. C is at number 2 and C++ at number 3. I do think Rust will become more popular in the near future. Of course if you want an "easy ride" Rust might not be your cup of tea. Also "Zig", if it "takes off ", might also be something worth looking into. I do most of my programming in C.
You do backend website development in c or c++??
@@InvixYTYou can write a web server and send http responses in C quite easily it's like 200 lines. Having to do stuff manually is a bit crude though.
@@maazali9604 no I'm sure you can. But why would you tho. I can't think of anyone that actually does.
@@InvixYT I guess if you want to handcraft http responses and full control of the server? Other than that there is really no point.
@@maazali9604 yeah exactly, me neither
1:36 "boilerplates"? What year is it, 2012?
BTW, you mention that with JS you can have front-end and backend in same language. Why you skip the same feature on C#?
Background music name?
Where is C++?
C++?
Does Assembly count as a back-end language?
Python is easiest, but for some reason I prefer Java. I actually know more using Python, but I enjoy debugging Java. It might just be the abyss of self-hate I have deep in my soul.
I think Rust's complexity and rules will keep it from every truly being a top language
i wish i could just do everything in python buts it's just SO SLOW
By a small ecosystem I guess you mean not bloated with thousands of things that do the same thing in different ways, Python and JS is the worst you go through dependency hell and npm packages are the heaviest things in the universe
1:12
C, C++, Pascal, Rust?
Shouldn't ecosystem n community and scalability be the same list?
I agree with you
Can you please mention the metrics outlined at the video.
C# and Java have about the same DX for me. C# is bloated and let’s you do the same thing in 10 different ways. Go is lovely as it’s simple and pretty straightforward.
I have to contradict you on the java topic. While yea, you can use "old" threads which are just a thin wrapper over the system threads, java 21 provides you with virtual threads which are very efficient and you can have hundreds of them with not much of an impact..yea I know java gets a lot of hate but that is towards java 8 that is still widely used, but if you switch to java 15+ then you'll see that it gets faster and faster and less boilerplate and more efficient. And if you use Spring Framewoork with the spring boot module, life couldn't be sweeter
dont switch between dark mode and light mode
I'll choose the most consistent ofc, C#