How do you choose web framework candidates to compare?
David Díaz Clavijo sent me an email a couple weeks ago asking me about comparing web frameworks. David is a computer engineering student at the University of Las Palmas de Gran Canaria (ULPGC) in the Canary Islands, Spain. His FYP (Final Year Project) is a web frameworks comparison focused on high productivity frameworks. He's started a blog to help facilitate his work and has been writing some interesting posts.
Four frameworks will be compared. The comparison test is composed by four fixed time tasks for each framework:
- Learning the programming language: 5 hours
- Making exercises in the programming language: 15 hours
- Learning the framework: 25 hours
- Developing the website: 50 hours
After all process is done, it can be seen which framework presented a higher productivity and smaller learning curve.
We have decided a cross-language set of frameworks which are: Ruby on Rails, Grails, Django and Code Igniter.
Today, he wrote about the web frameworks he's decided to compare and inspired me to respond to his original request for my thoughts.
Hello David,
Sorry it took me so long to respond. I think your approach as far as learning the language, making exercises, learning the framework and developing the website is good. As you know, the last one you develop with will likely do well because you're repeated the steps so much with the other ones.
However, there's one thing I think you're doing wrong. In the real world, I don't believe that an architect would look at *all* the available web frameworks and choose one. I believe most of them already have a language bias or there's a target platform (e.g. LAMP, JVM, etc.).
I believe the majority of development happens today where a platform is already in place. Even moreso, the backend may already be in place and the company is simply trying to find a more productive front-end framework. In the first instance, where the platform is already chosen, the chooser's options are immediately limited. For example, if it's the JVM, Django might be eliminated because JPython isn't that up-to-snuff or widely used (this could be changing). However, it could be said that all the frameworks you've chosen (including Code Igniter) can run on the JVM.
I just don't see people identifying web frameworks across such a wide variety of languages. I think folks generally choose a platform, then a language, then a framework. It's possible that startups will do it differently by choosing a language first. However, I imagine most startups have a technical founder that already has some preference towards a particular language.
Now it's your turn, dear readers. Have you ever been in a situation where you've been able to pick a web framework across all languages? Did any of your biases enter into the equation?
How would you recommend David go about choosing web framework candidates?
Posted by Leo Petr on March 18, 2013 at 07:36 PM MDT #
Posted by Matt Raible on March 18, 2013 at 07:41 PM MDT #
Yes and no. Yes I was given a blank sheet of paper but it wasn't realistic. In my latest experience, the "language bias" was a derivative of the existing applications the team had to continue to support, the knowledge and experience of the current team, and training time plus development time of the new applications if picking a language/platform the existing team had to learn. The "target platform" was a derivative of the experience and knowledge of the ops/infrastructure team.
Matt is right, no matter if it's based on existing conditions or opinions, language and platform choices are usually made before framework choices.
However, I think the study would be interesting as defined if not practical for a professional team.
Finally, I would limit the scope more. Divide your hours by 5 and see how much you get done. How much you get done will be as informative as trying to learn everything and complete the web application in each framework.
My $0.02
Posted by Brian on March 23, 2013 at 02:43 AM MDT #
Hi Matt,
I find the bigger scope of platforms and languages interesting.
While you might be right that in a big part of settings platform and language are set, there are also many possibilities where they aren't.
New projects of multi-language single developers who want to get startet with a product idea, teams that want to look into different directions than the same thing they have been doing for a long time - similarly to the saying a good developer should learn a new language per year a good and open minded developer should try a new framework per year - why no in another language alltogether?
And so, getting an idea of which are the most interesting and productive at the time, if I should go from Java to Python/Django or Ruby/Rails is something I very much appreciate.
Plus, the (already by itself extremely complex) Java landscape is already well covered by your comparisons! :)
Posted by henning on March 27, 2013 at 07:58 AM MDT #
Posted by Diaclavijo on August 13, 2013 at 11:53 AM MDT #