Choosing web framework: ASP.NET MVC vs Django Python vs Ruby on Rails(转载)

来源:http://podlipensky.com/2012/06/choosing-web-framework-asp-net-mvc-vs-django-python-vs-ruby-on-rails/

How often do you emerge from you cubicle to look around, note new faces or new facial expression on old ones? How often do you emerge from you technology stack to consider better another approaches/practices?

If you do this rarely – bad for you, you will miss important changes in your environment, loose the track or even worse – you will work hard in wrong direction. This is important not only to be qualified, but also to be competitive and have broad experience.

But, my time is very valuable, so even downloading something and reading its documentation is an investment I’d rather shortcut if I can. Therefore I definitely need some way to measure current trends, so I can predict outcome of my investment – diving into new technology (or even technology stack).

As a super-web-developer I’m about to consider the following frameworks to learn: ASP.NET MVCDjango Python and Ruby on Rails.

[Note: I’m aware that PHP has its own MVC frameworks, the most popular of which I believe are CodeIgniter and CakePHP.  While PHP is vastly more popular than any of frameworks above, I decided to do not consider PHP frameworks and leave them for another post.]

Here are important factors to consider before start learning any new language:

  • Quality and availability of libraries.
  • Quality of tools like IDEs, debuggers, automation systems.
  • Size and healthy of the active community using the framework.  (i.e. If I run into a problem, how easy is it to google the answer?)
  • Demand of technology specialists

Quality and availability of libraries

It obvious that you can’t have both. It will be either limited in functionality, but well tested or will have a lot of libraries (probably third-party) which may not work or require some modifications. I tend to think that ASP.NET MVC is the first case and Django and Ruby is the second. What option is better depends on a project, deadlines and you competency in web-related areas. Hard to judge, really…so lets move on to the next section.

Quality of tools

I’m a big fan of JetBrains company and their products, so I was pleased to find out they have RubyMine for Ruby development, PyCharm for Python development. And I’m pretty satisfied with combo Visual Studio + Resharper in ASP.NET world.

I didn’t review non-windows IDE, so probably I’ve missed something awesome. Please let me know if something worth-to-checkout is out there.

As a result – I don’t see a big difference in quality of tools for those frameworks.

Community

Oh, that’s really interesting part. Because here we can measure something(not only rely on our own opinion). I often use Google Trends to measure relative interest in technologies.

Please note, you have to search for “django python”, otherwise you’ll get invalid results – “django” is a quite popular word in non-programmers areas.

“But that’s not fair” – django-fan would say. Okay, we can do another search by using Google Insights and specifying “Programming” category

Interest level (click to enlarge)

Growth relative to the Programming category (click to enlarge)

On this stage it’s obvious that Django and ASP.NET MVC are not so common as Rails framework. But at the same time, interest to ASP.NET MVC is growing more than to Django and Ruby.

Another way to avoid invalid results for “Django” meaning is to compare frameworks websites popularity:

But it is not so useful as it shows traffic for domain (asp.net), but not exact path (asp.net/mvc). So we can’t take it into consideration.

Another good resource for technology statistics is TIOBE Programming Community Inex:

Position
May 2012
Position
May 2011
Delta in Position Programming Language Ratings
May 2012
Delta
May 2011
Status
1 2 C 17.346% +1.18%   A
2 1 Java 16.599% -1.56%   A
3 3 C++ 9.825% +0.68%   A
4 6 Objective-C 8.309% +3.30%   A
5 4 C# 6.823% -0.72%   A
6 5 PHP 5.711% -0.80%   A
7 8 (Visual) Basic 5.457% +0.96%   A
8 7 Python 3.819% -0.76%   A
9 9 Perl 2.805% +0.57%   A
10 11 JavaScript 2.135% +0.74%   A
11 10 Ruby 1.451% +0.03%   A
12 26 Visual Basic .NET 1.274% +0.79%   A
13 21 PL/SQL 1.119% +0.62%   A
14 13 Delphi/Object Pascal 1.004% -0.07%   A
15 15 Lisp 0.941% -0.01%   A
16 24 Logo 0.839% +0.35%   A–
17 17 Pascal 0.808% +0.10%   A
18 18 Transact-SQL 0.654% -0.04%   A-
19 16 Ada 0.649% -0.10%   B
20 12 Lua 0.566% -0.54%   B

And it’s not all yet. I’m proud to be a part of Stackoverflow community, so let’s count how many questions each framework rises:

35,182 asp.net mvc
33,409 django
47,220 ruby
75,875 ruby on rails

(these numbers are subject to change each day, so you’ll definitely will see larger numbers)

Well, looks like Ruby on Rails has twice as many questions as Django or ASP.NET MVC. To me this indicates pretty clearly that Rails is more active than Django or ASP.NET MVC. Or Rails is more confusing and people ask more questions about it, but I doubt that. Also please remember our findings from google – Ruby community is much bigger than Django or ASP.NET MVC, so Stackoverflow numbers just confirm that.

Demand of technology specialists

This factor is a little bit tricky and probably should be considered along with average salaries per technology. But salary vary from company to company, so let’s omit this axis.

Indeed company has good insights on what is going on a market, so let’s examine it:

And again, we see the same picture. Ruby on Rails has spread more, but starting from January 11, interest to the technology is falling. Some may explain it by recession, but let’s take a look on ASP.NET MVC – it is growing during the whole 2011 year and start falling (along with other technologies) this year.

Summary

Choosing web framework is tough task because of big number of aspects to consider. Some of them we’ve examined in this post, but there are others such as language beauty, performance, hosting cost, integration cost and so on. It’s up to you to decide what framework to use and I believe your choice may vary from project to project. Despite your choice, make sure you make data-driven decision.

  • Related posts
  • No related posts found
  • someone

    a nice MARKETING background check. a nice technical check would be also interesting for a developer.

  • James Hurst

    From my own experience with these three platforms, I would have to say that a big part of the supposed “popularity” of Ruby-on-Rails on the sites like Stackoverflow, is the massive amount of googling one has to do to accomplish anything on Ruby. It is the complete opposite of ASP.NET-MVC. With the Microsoft stack (ASP.NET-MVC), things seem to just work. I can grab the latest tool stack, the latest version of the platform, and go. There are great books with tutorials, which do actually work – and just a smidgeon of googling is required. With Ruby-On-Rails (RoR), .. well, perhaps part of the problem is that you have a zillion script-kiddies shoving incompatible, non-working code into it. It takes a massive number of third-party (that is, from strange unvetted sources) libraries to just get started. And everything is version-dependent, so you have to pull in and learn more tools like rvm, bundler, gemsets, rbenv, and deal with platform differences (Debian vs Red Hat vs Mac etc). I am not proud to report that I recently spent 24 straight hours trying to get what should have been a very trivial website back on it’s feet, just because basic tools refused to work. There are google resources online, true: but 90% are flat-out wrong, or out of date. So, it would surprise me if there were NOT a massive number of google-searches for the poor developers struggling with trying to get something to work in Ruby. My experience with Django was not as smooth as ASP.NET-MVC, but not nearly so bad as Ruby. It is far, far cheaper to spend a little money on a good tool that works, rather than something free that will bury you in time-traps. That being said, if you do insist on implementing with RoR – I’d advise using a virtual machine (I am having great success with VMware Workstation). At each milestone of your development, test your app – and if it still works, create a snapshot. That way, when it gets hopelessly broken (and it will, many many times) – you can always revert back to that last snapshot.

    • vardarac

      Git and Rails have for me been a joy to work with. Configuration of the different environments is especially painful for the uninitiated, but I’ve found that I neither required gems for this purpose, nor have I run into substantial problems with the native framework.

      Perhaps I will find that I enjoy ASP.NET better when I get to working with it. Good thoughts.

    • TheMayorsOffice

      I agree with most of everything in this comment as well except this tidbit: “It is far, far cheaper to spend a little money on a good tool that works, rather than something free that will bury you in time-traps”. OSS does not bury you in time-traps. I know why you feel this way, I too have had the same nightmare of getting a very basic RoR web site back on it’s feet after a server migration, it took way too long and too many gem versions and kludgey code. It was an ABSOLUTE nightmare to say the least. I have stopped with the RoR stuff. We use Django and ASP.NET MVC5 mostly now and there have been no real issues that I can complain about. I find the issue with RoR and PHP is there are far too many script kiddies in both of these communities. I get that both are easy frameworks and languages to learn and it’s inviting for newbies to pick-up but it’s causing problems.

  • Michael Kropat

    Love how you compiled Google Trends, indeed.com, and all that to get the big picture. You already cite tag counts from StackOverflow, but you can get an even better picture from data.stackexchange.com. I put together a basic query showing tag trends over time: https://data.stackexchange.com/stackoverflow/query/162567/technology-trends-questions-per-tag-per-month#graph

  • bon

    A good worker will always get work or create their own. All this nerd-chat tires me, which is “better” this or that. It doesn’t matter how clever the latest tech is or whether someone can quote the difference between one set of tools and another. It doesn’t matter as getting a job or a promotion is usually based on who you know rather than what you know. A well networked worker will get promoted over someone with zero or little network even if they have less technical skills. 99% of managers really couldn’t give a toss if you use Ruby on Rails or ASP.NET mvc or supertech9000 if you show no enthusiasm or motivation.

    Some people really need to stop being so fucking pretentious and start looking at the bigger picture.

  • Radek

    Django is my fav 

原文地址:https://www.cnblogs.com/144823836yj/p/8794315.html

时间: 2024-11-09 00:57:25

Choosing web framework: ASP.NET MVC vs Django Python vs Ruby on Rails(转载)的相关文章

ASP.NET Web API - ASP.NET MVC 4 系列

       Web API 项目是 Windows 通信接口(Windows Communication Foundation,WCF)团队及其用户激情下的产物,他们想与 HTTP 深度整合.WCF 进行 Web 服务编程的迭代是一个抽象事务,主要为了隐藏像传输细节一样的内容.Web API 试图彻底颠覆这一过程,去掉 WCF 中的大部分层,而允许开发人员直接访问 HTTP 编程模型的所有方面.        ASP.NET MVC 在接收表单数据生成 HTML 方面功能非常强大:ASP.NE

第十七章:Python の Web开发基础(四) MVC与Django

本課主題 MVC 介绍 Django 介紹 MVC 介绍 controllers 处理用户请求 views 放置HTML模版 models 操作数据库 MVC框架就是目录的归类 MVC 是一种软件开发的方法,它把代码的定义和数据访问的方法(模型)与请求逻辑 (控制器)还有用户接口(视图)分开来 Django 介紹 Django开发的一般流程包括模型设计.URL设计.视图编码.模板设计,搭建Django应用的一种典型流程是:先设计好模型,然后就尽快把admin 运行起来,以便你的员工.客户可以尽快

[ASP.NET MVC 小牛之路]02 - C#知识点提要--转载

本篇博文主要对asp.net mvc开发需要撑握的C#语言知识点进行简单回顾,尤其是C# 3.0才有的一些C#语言特性.对于正在学asp.net mvc的童鞋,不防花个几分钟浏览一下.本文要回顾的C#知识点有:特性.自动属性.对象集合初始化器.扩展方法.Lambda表达式和Linq查询.C#资深“玩家”可路过. 本文目录 1.特性(Attributes) 特性(Attributes),MSDN的定义是:公共语言运行时允许你添加类似关键字的描述声明,叫做attributes, 它对程序中的元素进行

ASP.NET MVC SSO单点登录设计与实现(转载)

实验环境配置 HOST文件配置如下: 127.0.0.1 app.com127.0.0.1 sso.com IIS配置如下: 应用程序池采用.Net Framework 4.0 注意IIS绑定的域名,两个完全不同域的域名. app.com网站配置如下: sso.com网站配置如下: memcached缓存: 数据库配置: 数据库采用EntityFramework 6.0.0,首次运行会自动创建相应的数据库和表结构. 授权验证过程演示: 在浏览器地址栏中访问:http://app.com,如果用户

ASP.NET MVC随想录——锋利的KATANA

正如上篇文章所述那样,OWIN在Web Server与Web Application之间定义了一套规范(Specs),意在解耦Web Server与Web Application,从而推进跨平台的实现.若要真正使用OWIN规范,那么必须要对他们进行实现.目前有两个产品实现了OWIN规范——由微软主导的Katana和第三方的Nowin.这篇文章,我主要关注还是Katana,由微软团队主导,开源到CodePlex上.可以在Visual Studio中输入命令:git clone https://gi

(转) 一步一步学习ASP.NET 5 (四)- ASP.NET MVC 6四大特性

转发:微软MVP 卢建晖 的文章,希望对大家有帮助.原文:http://blog.csdn.net/kinfey/article/details/44459625 编者语 : 昨晚写好的文章居然csdn不审核,这个也难怪人,但自己比较忙没办法.分享继续,今天谈ASP.NET MVC 6. 我蛮喜欢Ruby On Rails 这种约定胜于配置的框架,在.NET 有ASP.NET MVC 和Java有Play! Framework .  ASP.NET MVC 版本基本上每年一更新,从不让你失望.我

添加asp.net mvc到现有的asp.net web form 应用程序

前言 asp.net mvc的前一版本为asp.net web Form(Asp.net mvc之前称为asp.net),其第一个版本与2002年年初发布.asp.net web form 属于.net框架的一部分.在接下来的十余年,asp.net web form框架稳步发展,不去越来越多的网站均采用asp.net 框架.几年后,新的web开发框架asp.net mvc 发布.如果想将asp.net mvc添加到现有的asp.net web form 系统中怎么办呢? 正文 如果想避免风险,想

ASP.NET MVC与RAILS3的比较

进入后Web年代之后,MVC框架进入了快速演化的时代,Struts等垂垂老矣的老一代MVC框架因为开发效率低下而逐渐被抛弃,新一代的MVC则高举敏捷的大旗,逐渐占领市场,其中的代表有Rails (ruby), .NET MVC (.NET), Django (Python),Symfony (PHP)等等,这些框架的思想都大同小异,这里列举出Rails3和.NET MVC的一些的区别,以方便Web开发者从Rails迁移到.NET MVC,或者反之,从.NET MVC迁移到Rails. 生成项目 

全网最全ASP.NET MVC 教程汇总

全网最全ASP.NET MVC 教程汇总 MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC.小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要学习ASP.NET MVC技术的学习者提供一个整合学习入口.本文从Why,What,How三个角度整理MVC 的学习资源,让学习者第一时间找到最有价值的文章,获取最彻底的ASp.NET MVC 框架知识,Let’s go! 1. Why :为什么需要ASP.NET MVC 本章主要为大家汇总了为什么学习Asp.net MV