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.
100 97 93 92 90 84 84 82 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 Java Originally designed for desktop and embedded apps We have a better IDE than the Java guys We are enterprise serious but we can offer you most of Rails’ cool features We have a conflicted vision of Open Source Slower 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 management Cares a lot about object-orientation IDE required Memory is cheap so we consume it ALL Look 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 matters It’s like Basic for the Web As long as there is a way to do it, it ain’t broken It works and it’s fast, anything else is pointless Don’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 things Code has to be beautiful, simple and explicit Documentation is critical Strong language design leadership mainly 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 machines Extreme flexibility: if you mess up, it’s on you Everything has to be easy, elegant and fun DSL on top of DSLs on top of DSLs Testing is critical Things move quickly, learn to keep up Passionate 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 DIY Small core, the rest is up to the community Coupling is a sin Learned 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/

What Web Framework To Use?

  • 1.
  • 3.
    How are thedifferent 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.
  • 4.
    100 97 93 92 90 8484 82 82 82 82 81 81 80 79 0 20 40 60 80 100 120 Best Frameworks Overall Score
  • 5.
    A great ideacan 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.
  • 6.
    Story of afounder 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?
  • 7.
    That’s a muchharder 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?
  • 8.
    Web Frameworks andTheir Cultures
  • 9.
    C#/ASP.NET Philosophy: A better Java Originallydesigned for desktop and embedded apps We have a better IDE than the Java guys We are enterprise serious but we can offer you most of Rails’ cool features We have a conflicted vision of Open Source Slower but safer development cycles
  • 10.
  • 11.
    Java/Spring Philosophy: The power &performance of C/C++ but with automatic memory management Cares a lot about object-orientation IDE required Memory is cheap so we consume it ALL Look at my pretty JVM! Open source (but owned by Oracle) Slower but safer development cycles
  • 12.
    0 10 20 30 40 50 60 70 80 90 Spring JSF GoogleWeb Toolkit Struts Wicket Java Frameworks Overall Score
  • 13.
    PHP/Symfony Philosophy: Get stuff done,that’s what matters It’s like Basic for the Web As long as there is a way to do it, it ain’t broken It works and it’s fast, anything else is pointless Don’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
  • 14.
    76 77 78 79 80 81 82 83 84 85 CodeIgniter Symfony LaravelCakePHP Zend PHP Frameworks Overall Score
  • 15.
    Established Alternatives Over theyears, 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.
  • 16.
    Python/Django Philosophy: Only one obviousway to do things Code has to be beautiful, simple and explicit Documentation is critical Strong language design leadership mainly attracts more pragmatic, experienced, full-stack developers wanting a modern but well-proven language.
  • 17.
    0 10 20 30 40 50 60 70 80 90 100 Django Flask web.pyPyramid Bottle Tornado Python Frameworks Overall Score
  • 18.
    Ruby/Ruby On Rails Philosophy: Designedfor humans, not machines Extreme flexibility: if you mess up, it’s on you Everything has to be easy, elegant and fun DSL on top of DSLs on top of DSLs Testing is critical Things move quickly, learn to keep up Passionate and vibrant community
  • 19.
    0 20 40 60 80 100 120 Ruby On RailsSinatra Camping Merb Ramaze Ruby Frameworks Overall Score
  • 21.
    To compare thesethree 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?
  • 22.
    Framework Lines ofcode 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
  • 23.
    Django has lowestSchedule 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 …
  • 24.
    JavaScript/Node.JS/Express Philosophy: Designed for real-timedriven apps DIY Small core, the rest is up to the community Coupling is a sin Learned lessons from Ruby/Python
  • 25.
    0 10 20 30 40 50 60 70 80 90 100 AngularJS Meteor Ember.JSExpress Sails.JS JavaScript Frameworks Overall Score
  • 27.
    Decoupling from Framework Bydecoupling 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.
  • 28.
  • 29.
    Pick the oneyou 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)
  • 30.