30
WHAT WEB FRAMEWORK TO USE?

What Web Framework To Use?

Embed Size (px)

DESCRIPTION

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. The purpose of this presentation is to help developers, managers, founders, etc. to make an insightful decision about the framework they want to use to create their product.

Citation preview

Page 1: What Web Framework To Use?

WHAT WEB FRAMEWORK TO USE?

Page 2: What Web Framework To Use?
Page 3: 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.

Page 4: What Web Framework To Use?

10097

93 9290

84 8482 82 82 82 81 81 80 79

0

20

40

60

80

100

120

Best Frameworks

Overall Score

Page 5: What Web Framework To Use?

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.

Page 6: What Web Framework To Use?

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?

Page 7: What Web Framework To Use?

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?

Page 8: What Web Framework To Use?

Web Frameworks and Their Cultures

Page 9: What Web Framework To Use?

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

Page 10: What Web Framework To Use?

88

90

92

94

96

98

100

102

ASP.NET ASP.NET MVC

C# Frameworks

Overall Score

Page 11: What Web Framework To Use?

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

Page 12: What Web Framework To Use?

0

10

20

30

40

50

60

70

80

90

Spring JSF Google Web Toolkit Struts Wicket

Java Frameworks

Overall Score

Page 13: What Web Framework To Use?

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

Page 14: What Web Framework To Use?

76

77

78

79

80

81

82

83

84

85

CodeIgniter Symfony Laravel CakePHP Zend

PHP Frameworks

Overall Score

Page 15: What Web Framework To Use?

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.

Page 16: What Web Framework To Use?

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.

Page 17: What Web Framework To Use?

0

10

20

30

40

50

60

70

80

90

100

Django Flask web.py Pyramid Bottle Tornado

Python Frameworks

Overall Score

Page 18: What Web Framework To Use?

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

Page 19: What Web Framework To Use?

0

20

40

60

80

100

120

Ruby On Rails Sinatra Camping Merb Ramaze

Ruby Frameworks

Overall Score

Page 20: What Web Framework To Use?
Page 21: 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?

Page 22: What Web Framework To Use?

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

Page 23: What Web Framework To Use?

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 …

Page 24: What Web Framework To Use?

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

Page 25: What Web Framework To Use?

0

10

20

30

40

50

60

70

80

90

100

AngularJS Meteor Ember.JS Express Sails.JS

JavaScript Frameworks

Overall Score

Page 26: What Web Framework To Use?
Page 27: 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.

Page 28: What Web Framework To Use?

Conclusion

Page 29: What Web Framework To Use?

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)

Page 30: What Web Framework To Use?

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/