Download - What Web Framework To Use?
WHAT WEB FRAMEWORK TO USE?
How are the different frameworks scored?
Each framework is scored by two separate measures, and these are simply averaged. The two measures are:
GitHub score: Based on the number of stars the git repository for a framework has on GitHub.
Stack Overflow score: Based on the number of questions on Stack Overflow that are tagged with the name of the framework.
10097
93 9290
84 8482 82 82 82 81 81 80 79
0
20
40
60
80
100
120
Best Frameworks
Overall Score
A great idea can be built with almost any technology.
The success or failure of your project has more to do with vision, leadership, execution, and market than technological choices.
Besides the vision, a lot of startups focus on culture. what isn’t often mentioned is that the technical decisions will have a direct effect on the company culture.
Great things have been built with each of the technologies. But they do come with a culture.
Story of a founder
A couple years ago, I met an entrepreneur who chose to build his application in Node.js. Curious, I asked why he chose Node. The response was simple: “ smart engineers are excited about it so I can more easily recruit “ people are willing to contribute for free because it builds their experience.
So maybe instead of asking what technology I should use, we should ask ourselves :
Does this technology fit my company’s core values?
That’s a much harder question because you need to actually understand your core values. That understanding is key to building a successful product.
You can’t blindly copy a tech stack in the same way you can’t copy a business plan. It’s a part of your company’s identity. Your core values, your objectives, your team and your expectations are different.
The whole “it worked for X” argument is rarely valid. Look, Facebook uses PHP, it “worked for them”. Does that mean we should all use PHP?
Web Frameworks and Their Cultures
C#/ASP.NET
Philosophy:
A better JavaOriginally designed for desktop and embedded appsWe have a better IDE than the Java guysWe are enterprise serious but we can offer you most of Rails’ cool featuresWe have a conflicted vision of Open SourceSlower but safer development cycles
88
90
92
94
96
98
100
102
ASP.NET ASP.NET MVC
C# Frameworks
Overall Score
Java/Spring
Philosophy:
The power & performance of C/C++ but with automatic memory managementCares a lot about object-orientationIDE requiredMemory is cheap so we consume it ALLLook at my pretty JVM!Open source (but owned by Oracle)Slower but safer development cycles
0
10
20
30
40
50
60
70
80
90
Spring JSF Google Web Toolkit Struts Wicket
Java Frameworks
Overall Score
PHP/Symfony
Philosophy:
Get stuff done, that’s what mattersIt’s like Basic for the WebAs long as there is a way to do it, it ain’t brokenIt works and it’s fast, anything else is pointlessDon’t be too academic, our language is accessible and anyone can be started in no time. Try to do the same thing with Java!Object orientation as an afterthought
76
77
78
79
80
81
82
83
84
85
CodeIgniter Symfony Laravel CakePHP Zend
PHP Frameworks
Overall Score
Established Alternatives
Over the years, two dynamic languages became cherished by startups: Python and Ruby. The two languages are actually quite similar.
Nowadays Python is quite popular for backend apps (NLP, biotech, APIs, SOA elements) while Ruby is more popular for consumer-facing apps.
Both of these languages suffer from the same limitations (mainly performance and concurrency) but their core values and communities have different focuses.
Python/Django
Philosophy:
Only one obvious way to do thingsCode has to be beautiful, simple and explicitDocumentation is criticalStrong language design leadershipmainly attracts more pragmatic, experienced, full-stack developers wanting a modern but well-proven language.
0
10
20
30
40
50
60
70
80
90
100
Django Flask web.py Pyramid Bottle Tornado
Python Frameworks
Overall Score
Ruby/Ruby On Rails
Philosophy:
Designed for humans, not machinesExtreme flexibility: if you mess up, it’s on youEverything has to be easy, elegant and funDSL on top of DSLs on top of DSLsTesting is criticalThings move quickly, learn to keep upPassionate and vibrant community
0
20
40
60
80
100
120
Ruby On Rails Sinatra Camping Merb Ramaze
Ruby Frameworks
Overall Score
To compare these three web frameworks, three applications were created in Symfony2, Django and Ruby On Rails (All those apps do the same)
These applications show two tables, One show top US cities(by population), Second shows US states with highest number of big cities(above 100k citizens)
Lets see how these web frameworks compare to each other?
Framework Lines of code Schedule Estimate
(Months)
Estimated Cost to
Develop ($)
Symfony2 229 1.94 $ 5,747
Ruby On Rails 51 1.06 $ 1,187
Django 135 0.29 $ 3,300
Django has lowest Schedule Estimates
Symfony2 is the fastest one according to benchmarks
Rails has the biggest community and is cheapest to develop
But we have a new player in town …
JavaScript/Node.JS/Express
Philosophy:
Designed for real-time driven apps DIYSmall core, the rest is up to the communityCoupling is a sinLearned lessons from Ruby/Python
0
10
20
30
40
50
60
70
80
90
100
AngularJS Meteor Ember.JS Express Sails.JS
JavaScript Frameworks
Overall Score
Decoupling from Framework
By decoupling from framework, you’ll benefit in multiple ways:
your code will be loosely coupled, easier to understand, readable, testable and most important: it will be robust.
If for some reason, you’ll have to change framework (because yours isn’t supported any more and super 3rd edition of famous framework comes to
general availability), you’ll spend considerably less amount of time to migrate to new libraries.
Conclusion
Pick the one you feel the most comfortable with and which is built on top of best design patterns.
A framework won’t do the job by its own, though. And this is the point I’d like to make: don’t be bound to the framework.
The best quote to reflect this point of view is:
The architecture of an accounting app should scream “accounting” not Spring & Hibernate. (Robert C. Martin)
References
http://matt.aimonetti.net/posts/2013/08/27/what-technology-should-my-startup-use/
http://kristopherwilson.com/2013/11/27/decoupling-the-framework/
http://blog.sznapka.pl/modern-frameworks-comparison/
http://hotframeworks.com/