Ask HN: Fastest Web Framework? Rails, Django, Node.js, ASP.NET, PHP on HHVM
8 comments
The new kid on the block is Go. It has a lot of the features that frameworks claim baked into the language. The only caveat I can think of is how new the environment is.
Google [1] and Dropbox [2] have started using it successfully. And we all know the scale at which they operate.
Another thing to consider is this will provide a back end and allow you to use any type of front end that you wish.
[1]: https://talks.golang.org/2012/splash.article
[2]: https://tech.dropbox.com/2014/07/open-sourcing-our-go-librar...
Google [1] and Dropbox [2] have started using it successfully. And we all know the scale at which they operate.
Another thing to consider is this will provide a back end and allow you to use any type of front end that you wish.
[1]: https://talks.golang.org/2012/splash.article
[2]: https://tech.dropbox.com/2014/07/open-sourcing-our-go-librar...
Go is nowhere near as fast as Rails to get something off the ground and running. Go is great and my other workhorse language, but don't lie to OP.
From OP:
"Which one's the fastest in terms of processor performance? Something which will let me scale with minimum hardware."
Getting off the ground and running quickly was not a requirement.
"Which one's the fastest in terms of processor performance? Something which will let me scale with minimum hardware."
Getting off the ground and running quickly was not a requirement.
They all have plus/minus. It is hard to say without knowledge of your app. You say in terms of CPU, but all have different characteristics.
We use node extensively, great overall for quick to market and i/o type operations but requires some decent design choices to make it perform and easily maintainable.
PHP is good and you see tons of very scalable sites using it. It has issues, and done poorly (like anything) it can be a real bitch to deal with.
ASP.NET is the last one I would ever use at this point (although I spent years writing large systems in it). Mostly because of cost to deploy and scaling it can be a royal pain in the ass on top of expensive. Not that it can't be done, and done big and good. Just expensive to me compared to the other options.
Rails, I don't do anything with today. Not a bad platform from my understanding, quick to market, but generally not thought of for high performance applications. But again, design probably is the biggest factor here.
Frankly if I needed all out CPU performance for say an image filter or something along those lines, I'd write that functionality in C/C++ and connect it to any one of those frameworks. At which point I'd pick the web framework that got me to market the fastest.
If you have someone else building it, make sure they pick the one they are best in, or seek them out for being the best at what they do. Don't go to an ASP.NET shop and ask them to do it in Rails because you think that is the right framework. They might be able to do it, but unless the framework is a core competency it will never be as good as it should be.
We use node extensively, great overall for quick to market and i/o type operations but requires some decent design choices to make it perform and easily maintainable.
PHP is good and you see tons of very scalable sites using it. It has issues, and done poorly (like anything) it can be a real bitch to deal with.
ASP.NET is the last one I would ever use at this point (although I spent years writing large systems in it). Mostly because of cost to deploy and scaling it can be a royal pain in the ass on top of expensive. Not that it can't be done, and done big and good. Just expensive to me compared to the other options.
Rails, I don't do anything with today. Not a bad platform from my understanding, quick to market, but generally not thought of for high performance applications. But again, design probably is the biggest factor here.
Frankly if I needed all out CPU performance for say an image filter or something along those lines, I'd write that functionality in C/C++ and connect it to any one of those frameworks. At which point I'd pick the web framework that got me to market the fastest.
If you have someone else building it, make sure they pick the one they are best in, or seek them out for being the best at what they do. Don't go to an ASP.NET shop and ask them to do it in Rails because you think that is the right framework. They might be able to do it, but unless the framework is a core competency it will never be as good as it should be.
this might help, it provides benchmarks for most of the popular frameworks: http://www.techempower.com/blog/2014/05/01/framework-benchma...
If you're going to hire someone to do it, asking them what their preference is might be better than saying, "We're going to use x."
If you're going to hire someone to do it, asking them what their preference is might be better than saying, "We're going to use x."
>If you're going to hire someone to do it, asking them what their preference is might be better than saying, "We're going to use x."
YES! This. I wouldn't worry so much about which framework is the "best". They are all good. I would say it is more important to find a programer(s) that you "click" with.
YES! This. I wouldn't worry so much about which framework is the "best". They are all good. I would say it is more important to find a programer(s) that you "click" with.
This is like asking "I need to commute to work, what car should I drive?."
There are many factors at play with creating and running a SaaS-based business, and often technology plays a minor role. Even less important is how fast your chosen backend runs.
By the time you run into a technical scaling problem where you are stuck with a less-than-optimal solution, you've already solved much, much harder problems like finding customers, scaling a team, raising money, etc.
So decide how big your org will get, look at the skill sets of developers available in your local area, and partner with someone that has experience with both. Then let them make the decision on the tech and trust them.
Then you can focus your energy and attention on what's really important for your new business.
There are many factors at play with creating and running a SaaS-based business, and often technology plays a minor role. Even less important is how fast your chosen backend runs.
By the time you run into a technical scaling problem where you are stuck with a less-than-optimal solution, you've already solved much, much harder problems like finding customers, scaling a team, raising money, etc.
So decide how big your org will get, look at the skill sets of developers available in your local area, and partner with someone that has experience with both. Then let them make the decision on the tech and trust them.
Then you can focus your energy and attention on what's really important for your new business.
First of all:
Rails is a framework
Django is a framework
Node.JS is a platform/framework
ASP.NET is not a framework, but a language
PHP is not a framework but a language, HHVM is a platform
That being said: you did not specify what exactly you are planing to do. For most scenarios, the choice of the environment doesn't really matter. What DOES matter is that you find someone that is proficient, has experience and knows the pros/cons in whatever framework he is using.
If you really need minimal memory and CPU footprint, i'd suggest you choose Go.
Rails is a framework
Django is a framework
Node.JS is a platform/framework
ASP.NET is not a framework, but a language
PHP is not a framework but a language, HHVM is a platform
That being said: you did not specify what exactly you are planing to do. For most scenarios, the choice of the environment doesn't really matter. What DOES matter is that you find someone that is proficient, has experience and knows the pros/cons in whatever framework he is using.
If you really need minimal memory and CPU footprint, i'd suggest you choose Go.
>ASP.NET is not a framework, but a language
C# and VB.NET are languages. ASP.NET is a framework.
C# and VB.NET are languages. ASP.NET is a framework.
ASP.NET is a framework. You have to write C# or VB.Net to use this framework.
Since you mentioned Django, why not try out Flask?
http://www.jeffknupp.com/blog/2014/01/18/python-and-flask-ar...
http://www.jeffknupp.com/blog/2014/01/18/python-and-flask-ar...
A lot of your performance problems are more likely to be database related, assuming you use one. Add in caching and things can improve. It will depend a lot on what you are doing.
shouldn't you pick the one that you are the strongest at?
I'm going to hire a developer experienced in the backend, not create myself.
If you're hiring local look into what is popular in the area. Where I am it's C# or Java. Anything else and you'll have a hard time finding talent.
This is good advice. All the frameworks are good.
Which one's the fastest in terms of processor performance? Something which will let me scale with minimum hardware.
I have to stick with the one that I choose as this is something which can't be changed later; like Facebook got stuck with PHP.