SlideShare a Scribd company logo
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.
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
What Web Framework To Use?
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
What Web Framework To Use?
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/

More Related Content

What's hot

PhoneGap: Building Mobile Applications with HTML/JS
PhoneGap: Building Mobile Applications with HTML/JSPhoneGap: Building Mobile Applications with HTML/JS
PhoneGap: Building Mobile Applications with HTML/JS
Ryan Stewart
 
Let Non-Developers Develop your Site. Manu Raivio
Let Non-Developers Develop your Site. Manu RaivioLet Non-Developers Develop your Site. Manu Raivio
Let Non-Developers Develop your Site. Manu Raivio
Future Insights
 
Javascript State of the Union 2015 - English
Javascript State of the Union 2015 - EnglishJavascript State of the Union 2015 - English
Javascript State of the Union 2015 - English
Huge
 
Mobile applications development - why should you start learning it right now?
Mobile applications development - why should you start learning it right now?Mobile applications development - why should you start learning it right now?
Mobile applications development - why should you start learning it right now?
Natalija Rodionova
 
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SKHTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
David Wesst
 
HTML
HTMLHTML
Intro to Web Development
Intro to Web DevelopmentIntro to Web Development
Mobile Apps with PhoneGap and jQuery Mobile
Mobile Apps with PhoneGap and jQuery MobileMobile Apps with PhoneGap and jQuery Mobile
Mobile Apps with PhoneGap and jQuery Mobile
Terry Ryan
 
5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)
5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)
5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)
David Wesst
 
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SKJavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
David Wesst
 
How to do Scalable UI-Heavy Development at a Breakneck Pace
How to do Scalable UI-Heavy Development at a Breakneck PaceHow to do Scalable UI-Heavy Development at a Breakneck Pace
How to do Scalable UI-Heavy Development at a Breakneck Pace
SV Ruby on Rails Meetup
 
PWA basics for developers
PWA basics for developersPWA basics for developers
PWA basics for developers
Filip Rakowski
 
Dreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile designDreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile design
Dee Sadler
 
The web - What it has, what it lacks and where it must go - Istanbul
The web - What it has, what it lacks and where it must go - IstanbulThe web - What it has, what it lacks and where it must go - Istanbul
The web - What it has, what it lacks and where it must go - Istanbul
Robert Nyman
 
Wordpress as a Back Office for Mobile Applications
Wordpress as a Back Office for Mobile ApplicationsWordpress as a Back Office for Mobile Applications
Wordpress as a Back Office for Mobile Applications
Benjamin LUPU
 
Introduction to WordPress REST API
Introduction to WordPress REST APIIntroduction to WordPress REST API
Introduction to WordPress REST API
Simone D'Amico
 
Firefox OS - HTML5 for a truly world-wide-web
Firefox OS - HTML5 for a truly world-wide-webFirefox OS - HTML5 for a truly world-wide-web
Firefox OS - HTML5 for a truly world-wide-web
Christian Heilmann
 
How Asp.Net Developers Can Leverage Share Point
How Asp.Net Developers Can Leverage Share PointHow Asp.Net Developers Can Leverage Share Point
How Asp.Net Developers Can Leverage Share Point
guest17ee6d
 
Phone gap
Phone gapPhone gap
Phone gap
Madhura Keskar
 

What's hot (19)

PhoneGap: Building Mobile Applications with HTML/JS
PhoneGap: Building Mobile Applications with HTML/JSPhoneGap: Building Mobile Applications with HTML/JS
PhoneGap: Building Mobile Applications with HTML/JS
 
Let Non-Developers Develop your Site. Manu Raivio
Let Non-Developers Develop your Site. Manu RaivioLet Non-Developers Develop your Site. Manu Raivio
Let Non-Developers Develop your Site. Manu Raivio
 
Javascript State of the Union 2015 - English
Javascript State of the Union 2015 - EnglishJavascript State of the Union 2015 - English
Javascript State of the Union 2015 - English
 
Mobile applications development - why should you start learning it right now?
Mobile applications development - why should you start learning it right now?Mobile applications development - why should you start learning it right now?
Mobile applications development - why should you start learning it right now?
 
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SKHTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
 
HTML
HTMLHTML
HTML
 
Intro to Web Development
Intro to Web DevelopmentIntro to Web Development
Intro to Web Development
 
Mobile Apps with PhoneGap and jQuery Mobile
Mobile Apps with PhoneGap and jQuery MobileMobile Apps with PhoneGap and jQuery Mobile
Mobile Apps with PhoneGap and jQuery Mobile
 
5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)
5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)
5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)
 
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SKJavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
 
How to do Scalable UI-Heavy Development at a Breakneck Pace
How to do Scalable UI-Heavy Development at a Breakneck PaceHow to do Scalable UI-Heavy Development at a Breakneck Pace
How to do Scalable UI-Heavy Development at a Breakneck Pace
 
PWA basics for developers
PWA basics for developersPWA basics for developers
PWA basics for developers
 
Dreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile designDreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile design
 
The web - What it has, what it lacks and where it must go - Istanbul
The web - What it has, what it lacks and where it must go - IstanbulThe web - What it has, what it lacks and where it must go - Istanbul
The web - What it has, what it lacks and where it must go - Istanbul
 
Wordpress as a Back Office for Mobile Applications
Wordpress as a Back Office for Mobile ApplicationsWordpress as a Back Office for Mobile Applications
Wordpress as a Back Office for Mobile Applications
 
Introduction to WordPress REST API
Introduction to WordPress REST APIIntroduction to WordPress REST API
Introduction to WordPress REST API
 
Firefox OS - HTML5 for a truly world-wide-web
Firefox OS - HTML5 for a truly world-wide-webFirefox OS - HTML5 for a truly world-wide-web
Firefox OS - HTML5 for a truly world-wide-web
 
How Asp.Net Developers Can Leverage Share Point
How Asp.Net Developers Can Leverage Share PointHow Asp.Net Developers Can Leverage Share Point
How Asp.Net Developers Can Leverage Share Point
 
Phone gap
Phone gapPhone gap
Phone gap
 

Similar to What Web Framework To Use?

Ruby On Rails Presentation
Ruby On Rails PresentationRuby On Rails Presentation
Ruby On Rails Presentation
Paul Pajo
 
Fed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype DcphpFed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype Dcphp
Tony Bibbs
 
Technologies for startup
Technologies for startupTechnologies for startup
Technologies for startup
Dzung Nguyen
 
Node.JS Vs PHP: Which Is The Top Server-Side Programming Language?
Node.JS Vs PHP: Which Is The Top Server-Side Programming Language?Node.JS Vs PHP: Which Is The Top Server-Side Programming Language?
Node.JS Vs PHP: Which Is The Top Server-Side Programming Language?
Pixel Crayons
 
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
GreeceJS
 
Dean4j@Njug5
Dean4j@Njug5Dean4j@Njug5
Shuzworld Analysis
Shuzworld AnalysisShuzworld Analysis
Shuzworld Analysis
Brenda Thomas
 
30 Skills to Master to Become a Senior Software Engineer
30 Skills to Master to Become a Senior Software Engineer30 Skills to Master to Become a Senior Software Engineer
30 Skills to Master to Become a Senior Software Engineer
Sean Coates
 
The Guide to becoming a full stack developer in 2018
The Guide to becoming a full stack developer in 2018The Guide to becoming a full stack developer in 2018
The Guide to becoming a full stack developer in 2018
Amit Ashwini
 
Node.js vs Python_ Choosing the Right Back-end Technology for Your Next Proje...
Node.js vs Python_ Choosing the Right Back-end Technology for Your Next Proje...Node.js vs Python_ Choosing the Right Back-end Technology for Your Next Proje...
Node.js vs Python_ Choosing the Right Back-end Technology for Your Next Proje...
mohitd6
 
Stream SQL eventflow visual programming for real programmers presentation
Stream SQL eventflow visual programming for real programmers presentationStream SQL eventflow visual programming for real programmers presentation
Stream SQL eventflow visual programming for real programmers presentation
streambase
 
Rapidly Building and Deploying Scalable Web Architectures
Rapidly Building and Deploying Scalable Web ArchitecturesRapidly Building and Deploying Scalable Web Architectures
Rapidly Building and Deploying Scalable Web Architectures
Keith Fitzgerald
 
Class 6: Introduction to web technology entrepreneurship
Class 6: Introduction to web technology entrepreneurshipClass 6: Introduction to web technology entrepreneurship
Class 6: Introduction to web technology entrepreneurship
allanchao
 
Lunch and learn as3_frameworks
Lunch and learn as3_frameworksLunch and learn as3_frameworks
Lunch and learn as3_frameworks
Yuri Visser
 
Apcera Case Study: The selection of the Go language
Apcera Case Study: The selection of the Go languageApcera Case Study: The selection of the Go language
Apcera Case Study: The selection of the Go language
Derek Collison
 
How Much Does It Cost To Hire Full Stack Developer In 2022.pdf
How Much Does It Cost To Hire Full Stack Developer In 2022.pdfHow Much Does It Cost To Hire Full Stack Developer In 2022.pdf
How Much Does It Cost To Hire Full Stack Developer In 2022.pdf
Katy Slemon
 
How backbone.js is different from ember.js?
How backbone.js is different from ember.js?How backbone.js is different from ember.js?
How backbone.js is different from ember.js?
SoftProdigy - We know software!
 
Viridians on Rails
Viridians on RailsViridians on Rails
Viridians on Rails
Viridians
 
10 interesting things about java
10 interesting things about java10 interesting things about java
10 interesting things about java
kanchanmahajan23
 
NET vs Java Which Technology Is Better for Website Development
NET vs Java Which Technology Is Better for Website DevelopmentNET vs Java Which Technology Is Better for Website Development
NET vs Java Which Technology Is Better for Website Development
Virtual Employee Pvt. Ltd.
 

Similar to What Web Framework To Use? (20)

Ruby On Rails Presentation
Ruby On Rails PresentationRuby On Rails Presentation
Ruby On Rails Presentation
 
Fed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype DcphpFed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype Dcphp
 
Technologies for startup
Technologies for startupTechnologies for startup
Technologies for startup
 
Node.JS Vs PHP: Which Is The Top Server-Side Programming Language?
Node.JS Vs PHP: Which Is The Top Server-Side Programming Language?Node.JS Vs PHP: Which Is The Top Server-Side Programming Language?
Node.JS Vs PHP: Which Is The Top Server-Side Programming Language?
 
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
 
Dean4j@Njug5
Dean4j@Njug5Dean4j@Njug5
Dean4j@Njug5
 
Shuzworld Analysis
Shuzworld AnalysisShuzworld Analysis
Shuzworld Analysis
 
30 Skills to Master to Become a Senior Software Engineer
30 Skills to Master to Become a Senior Software Engineer30 Skills to Master to Become a Senior Software Engineer
30 Skills to Master to Become a Senior Software Engineer
 
The Guide to becoming a full stack developer in 2018
The Guide to becoming a full stack developer in 2018The Guide to becoming a full stack developer in 2018
The Guide to becoming a full stack developer in 2018
 
Node.js vs Python_ Choosing the Right Back-end Technology for Your Next Proje...
Node.js vs Python_ Choosing the Right Back-end Technology for Your Next Proje...Node.js vs Python_ Choosing the Right Back-end Technology for Your Next Proje...
Node.js vs Python_ Choosing the Right Back-end Technology for Your Next Proje...
 
Stream SQL eventflow visual programming for real programmers presentation
Stream SQL eventflow visual programming for real programmers presentationStream SQL eventflow visual programming for real programmers presentation
Stream SQL eventflow visual programming for real programmers presentation
 
Rapidly Building and Deploying Scalable Web Architectures
Rapidly Building and Deploying Scalable Web ArchitecturesRapidly Building and Deploying Scalable Web Architectures
Rapidly Building and Deploying Scalable Web Architectures
 
Class 6: Introduction to web technology entrepreneurship
Class 6: Introduction to web technology entrepreneurshipClass 6: Introduction to web technology entrepreneurship
Class 6: Introduction to web technology entrepreneurship
 
Lunch and learn as3_frameworks
Lunch and learn as3_frameworksLunch and learn as3_frameworks
Lunch and learn as3_frameworks
 
Apcera Case Study: The selection of the Go language
Apcera Case Study: The selection of the Go languageApcera Case Study: The selection of the Go language
Apcera Case Study: The selection of the Go language
 
How Much Does It Cost To Hire Full Stack Developer In 2022.pdf
How Much Does It Cost To Hire Full Stack Developer In 2022.pdfHow Much Does It Cost To Hire Full Stack Developer In 2022.pdf
How Much Does It Cost To Hire Full Stack Developer In 2022.pdf
 
How backbone.js is different from ember.js?
How backbone.js is different from ember.js?How backbone.js is different from ember.js?
How backbone.js is different from ember.js?
 
Viridians on Rails
Viridians on RailsViridians on Rails
Viridians on Rails
 
10 interesting things about java
10 interesting things about java10 interesting things about java
10 interesting things about java
 
NET vs Java Which Technology Is Better for Website Development
NET vs Java Which Technology Is Better for Website DevelopmentNET vs Java Which Technology Is Better for Website Development
NET vs Java Which Technology Is Better for Website Development
 

Recently uploaded

AWS Cloud Practitioner Essentials (Second Edition) (Arabic) Course Introducti...
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) Course Introducti...AWS Cloud Practitioner Essentials (Second Edition) (Arabic) Course Introducti...
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) Course Introducti...
karim wahed
 
Overview of ERP - Mechlin Technologies.pptx
Overview of ERP - Mechlin Technologies.pptxOverview of ERP - Mechlin Technologies.pptx
Overview of ERP - Mechlin Technologies.pptx
Mitchell Marsh
 
Splunk_Remote_Work_Insights_Overview.pptx
Splunk_Remote_Work_Insights_Overview.pptxSplunk_Remote_Work_Insights_Overview.pptx
Splunk_Remote_Work_Insights_Overview.pptx
sudsdeep
 
Attendance Tracking From Paper To Digital
Attendance Tracking From Paper To DigitalAttendance Tracking From Paper To Digital
Attendance Tracking From Paper To Digital
Task Tracker
 
Cultural Shifts: Embracing DevOps for Organizational Transformation
Cultural Shifts: Embracing DevOps for Organizational TransformationCultural Shifts: Embracing DevOps for Organizational Transformation
Cultural Shifts: Embracing DevOps for Organizational Transformation
Mindfire Solution
 
ThaiPy meetup - Indexes and Django
ThaiPy meetup - Indexes and DjangoThaiPy meetup - Indexes and Django
ThaiPy meetup - Indexes and Django
akshesh doshi
 
Migrate your Infrastructure to the AWS Cloud
Migrate your Infrastructure to the AWS CloudMigrate your Infrastructure to the AWS Cloud
Migrate your Infrastructure to the AWS Cloud
Ortus Solutions, Corp
 
introduction of Ansys software and basic and advance knowledge of modelling s...
introduction of Ansys software and basic and advance knowledge of modelling s...introduction of Ansys software and basic and advance knowledge of modelling s...
introduction of Ansys software and basic and advance knowledge of modelling s...
sachin chaurasia
 
dachnug51 - HCL Sametime 12 as a Software Appliance.pdf
dachnug51 - HCL Sametime 12 as a Software Appliance.pdfdachnug51 - HCL Sametime 12 as a Software Appliance.pdf
dachnug51 - HCL Sametime 12 as a Software Appliance.pdf
DNUG e.V.
 
MVP Mobile Application - Codearrest.pptx
MVP Mobile Application - Codearrest.pptxMVP Mobile Application - Codearrest.pptx
MVP Mobile Application - Codearrest.pptx
Mitchell Marsh
 
Google ML-Kit - Understanding on-device machine learning
Google ML-Kit - Understanding on-device machine learningGoogle ML-Kit - Understanding on-device machine learning
Google ML-Kit - Understanding on-device machine learning
VishrutGoyani1
 
React Native vs Flutter - SSTech System
React Native vs Flutter  - SSTech SystemReact Native vs Flutter  - SSTech System
React Native vs Flutter - SSTech System
SSTech System
 
Top 10 Tips To Get Google AdSense For Your Website
Top 10 Tips To Get Google AdSense For Your WebsiteTop 10 Tips To Get Google AdSense For Your Website
Top 10 Tips To Get Google AdSense For Your Website
e-Definers Technology
 
Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …
908dutch
 
Seamless PostgreSQL to Snowflake Data Transfer in 8 Simple Steps
Seamless PostgreSQL to Snowflake Data Transfer in 8 Simple StepsSeamless PostgreSQL to Snowflake Data Transfer in 8 Simple Steps
Seamless PostgreSQL to Snowflake Data Transfer in 8 Simple Steps
Estuary Flow
 
NYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdfNYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdf
AUGNYC
 
Leading Project Management Tool Taskruop.pptx
Leading Project Management Tool Taskruop.pptxLeading Project Management Tool Taskruop.pptx
Leading Project Management Tool Taskruop.pptx
taskroupseo
 
Break data silos with real-time connectivity using Confluent Cloud Connectors
Break data silos with real-time connectivity using Confluent Cloud ConnectorsBreak data silos with real-time connectivity using Confluent Cloud Connectors
Break data silos with real-time connectivity using Confluent Cloud Connectors
confluent
 
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Asher Sterkin
 
active-directory-auditing-solution (2).pptx
active-directory-auditing-solution (2).pptxactive-directory-auditing-solution (2).pptx
active-directory-auditing-solution (2).pptx
sudsdeep
 

Recently uploaded (20)

AWS Cloud Practitioner Essentials (Second Edition) (Arabic) Course Introducti...
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) Course Introducti...AWS Cloud Practitioner Essentials (Second Edition) (Arabic) Course Introducti...
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) Course Introducti...
 
Overview of ERP - Mechlin Technologies.pptx
Overview of ERP - Mechlin Technologies.pptxOverview of ERP - Mechlin Technologies.pptx
Overview of ERP - Mechlin Technologies.pptx
 
Splunk_Remote_Work_Insights_Overview.pptx
Splunk_Remote_Work_Insights_Overview.pptxSplunk_Remote_Work_Insights_Overview.pptx
Splunk_Remote_Work_Insights_Overview.pptx
 
Attendance Tracking From Paper To Digital
Attendance Tracking From Paper To DigitalAttendance Tracking From Paper To Digital
Attendance Tracking From Paper To Digital
 
Cultural Shifts: Embracing DevOps for Organizational Transformation
Cultural Shifts: Embracing DevOps for Organizational TransformationCultural Shifts: Embracing DevOps for Organizational Transformation
Cultural Shifts: Embracing DevOps for Organizational Transformation
 
ThaiPy meetup - Indexes and Django
ThaiPy meetup - Indexes and DjangoThaiPy meetup - Indexes and Django
ThaiPy meetup - Indexes and Django
 
Migrate your Infrastructure to the AWS Cloud
Migrate your Infrastructure to the AWS CloudMigrate your Infrastructure to the AWS Cloud
Migrate your Infrastructure to the AWS Cloud
 
introduction of Ansys software and basic and advance knowledge of modelling s...
introduction of Ansys software and basic and advance knowledge of modelling s...introduction of Ansys software and basic and advance knowledge of modelling s...
introduction of Ansys software and basic and advance knowledge of modelling s...
 
dachnug51 - HCL Sametime 12 as a Software Appliance.pdf
dachnug51 - HCL Sametime 12 as a Software Appliance.pdfdachnug51 - HCL Sametime 12 as a Software Appliance.pdf
dachnug51 - HCL Sametime 12 as a Software Appliance.pdf
 
MVP Mobile Application - Codearrest.pptx
MVP Mobile Application - Codearrest.pptxMVP Mobile Application - Codearrest.pptx
MVP Mobile Application - Codearrest.pptx
 
Google ML-Kit - Understanding on-device machine learning
Google ML-Kit - Understanding on-device machine learningGoogle ML-Kit - Understanding on-device machine learning
Google ML-Kit - Understanding on-device machine learning
 
React Native vs Flutter - SSTech System
React Native vs Flutter  - SSTech SystemReact Native vs Flutter  - SSTech System
React Native vs Flutter - SSTech System
 
Top 10 Tips To Get Google AdSense For Your Website
Top 10 Tips To Get Google AdSense For Your WebsiteTop 10 Tips To Get Google AdSense For Your Website
Top 10 Tips To Get Google AdSense For Your Website
 
Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …
 
Seamless PostgreSQL to Snowflake Data Transfer in 8 Simple Steps
Seamless PostgreSQL to Snowflake Data Transfer in 8 Simple StepsSeamless PostgreSQL to Snowflake Data Transfer in 8 Simple Steps
Seamless PostgreSQL to Snowflake Data Transfer in 8 Simple Steps
 
NYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdfNYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdf
 
Leading Project Management Tool Taskruop.pptx
Leading Project Management Tool Taskruop.pptxLeading Project Management Tool Taskruop.pptx
Leading Project Management Tool Taskruop.pptx
 
Break data silos with real-time connectivity using Confluent Cloud Connectors
Break data silos with real-time connectivity using Confluent Cloud ConnectorsBreak data silos with real-time connectivity using Confluent Cloud Connectors
Break data silos with real-time connectivity using Confluent Cloud Connectors
 
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
 
active-directory-auditing-solution (2).pptx
active-directory-auditing-solution (2).pptxactive-directory-auditing-solution (2).pptx
active-directory-auditing-solution (2).pptx
 

What Web Framework To Use?

  • 3. 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.
  • 4. 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
  • 5. 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.
  • 6. 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?
  • 7. 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?
  • 8. Web Frameworks and Their Cultures
  • 9. 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
  • 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 Google Web 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 Laravel CakePHP Zend PHP Frameworks Overall Score
  • 15. 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.
  • 16. 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.
  • 17. 0 10 20 30 40 50 60 70 80 90 100 Django Flask web.py Pyramid Bottle Tornado Python Frameworks Overall Score
  • 18. 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
  • 19. 0 20 40 60 80 100 120 Ruby On Rails Sinatra Camping Merb Ramaze Ruby Frameworks Overall Score
  • 21. 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?
  • 22. 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
  • 23. 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 …
  • 24. 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
  • 25. 0 10 20 30 40 50 60 70 80 90 100 AngularJS Meteor Ember.JS Express Sails.JS JavaScript Frameworks Overall Score
  • 27. 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.
  • 29. 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)