转自
http://hellosure.github.io/rails/2015/04/01/rails-and-other/
首先,这不是一个比较贴,语言和框架能比较吗?
其次,我也没有全部用过
本文唯一的目的在于提醒自己(还有正在浏览的你)真正所需要关注的究竟是什么
PHP
PHP是simple but dirty的语言,simple是指学习曲线低,主要是因为有大量的基于php的傻瓜式应用,比如wordpress,discuz之类的,如果你只有一般的博客或论坛需求的话,只要善用google,你不用写哪怕一行代码。但是,php本身simple吗?个人认为不是的,原因就不一一列举了。至于dirty,我更觉得说的是他的设计,语言设计比较糟糕,看着常常的下划线连接的函数名就略窥一二,除了有丰富经验的php程序员,很难有人能写出没有严重漏洞的代码。
php开发框架推荐:一等:Yii,Yaf,Symfony;二等:Zend,Cake,CI
Django
Django是基于Python的web开发框架,和Rails十分的相似,几年前,他比Rails好的地方在于Python比Ruby更“可靠”,所谓可靠,就是更多人用,文档更多,更能通过询问找到答案,但随着近几年Ruby的逐渐兴起(大部分靠Rails的带动),越来越多的网站使用Rails。单论语言设计,Python不见得比Ruby简洁,一致性也略逊于Ruby,可以说Python唯一的优势就是有很多serious scientists都在使用它,在科学计算领域占据大半江山,而Ruby是日本人造的(Ruby借鉴了Python)。倘若Ruby是与Python同时代的的欧美国家诞生的语言,相信现在已经没Python什么事儿了。
Rails
Rails是个惊人的web框架,几乎现在所有的主流web框架都能看到Rails的影子,Rails把Ruby的特性用到了极限。Rails能应用于一切大中小型应用,超大规模应用不是单靠任意一个脚本语言就能胜任的。Rails经过多年的发展已经洗尽铅华,现在正处于“一枝独秀”的状态,可以说没有一款框架的综合能力(易用性,简介性,效率,学习曲线等)能超越Rails,NodeJS不行,Django不行,其他“小众”的语言更不行,相反,Rails正处于飞速发展状态,以后超大规模应用的成功案例也会逐一出现。
NodeJS
NodeJS是一款很有前途的Web框架,可惜就是晚生了几年,不然现在也是能和Rails一较高下,相比php,Django和Rails,NodeJS的开源项目相对较少,大型的成功案例也略少,但其设计和性能也是相当简洁和高效。相信不久的将来也会大放异彩。
ASP,JSP等
复杂,臃肿,企业级,靠人数堆积的公司,国企,银行,电商,创业公司用这些的话就是自杀,重要部门不用这些的话也是自杀(招的人不行,只能用售后啦)。
其他
其他语言就是各有各的用途,只不过业务恰好用到该语言罢了,严格的说不能算是专门搞网络开发的,比如Clojure,Io等。这里暂时不讨论了。
总结:
如果让我再次选择学习路线(只有语言,不包括server,db方面)的话,我会
了解一下php,不用深入
了解一下Yii,一款php的MVC框架,不必深入
基本学习Ruby
基本学习Rails
彻底学习Ruby
彻底学习Rails
了解Python,Django,Lisp,Clojure,NodeJS等
-------------------------分割线------------------------------
这篇文章对rails和nodejs的适用场景描述的非常到位。rails和nodejs是最值得关注的两种后台技术。
声明:这篇文章绝不是一篇讨论 NodeJS 和 Ruby on Rails 孰优孰略的檄文。它描述的只是我们做决策过程中的一些思考、决策背后的原因。两种框架都非常优秀,都出色的完成了它们的设计初衷,这也是为什么我们部分的模块仍然运行在NodeJS上的原因。
我是NodeJs的大粉丝,认为这是一项让人非常兴奋的技术,相信它会变的越来越流行。我对这项技术非常的欣赏——尽管我们最近把Targeter App从NodeJS迁移到了Ruby on Rails。
我们当时使用NodeJS开发它的原因很简单。我有一个程序包,能很快的将我们的应用弄上线(我们花了54小时做这个事情),相比起Ruby,我更 常使用的是JavaScript。因为我们的技术架构牵涉到MongoDB,我的这些特长只有在NodeJS环境里才会有意义。然而,随着应用规模的增 长,我认识到,选择NodeJS来实现这个应用是个错误的选择。下面让我来概述一下其中的原因。
NodeJS很适合做那些有大量短生命期请求的应用。对于传统的CRUD应用,它也很好,但不是非常的理想。在 PHP,Ruby,Python语言里都有很成熟、优化的很好的框架来处理这种应用。NodeJS里的所有东西都异步执行的理念对于CRUD应用来说没有 任何效果。其它语言里的流行的框架能提供非常好的缓存技术,你所有的需求都能满足,包括异步执行。
NodeJS是一种非常年轻的技术框架,它的周边程序库都不是很成熟。我说这些并没有任何对那些代码捐赠者冒犯 的意思,他们很优秀,开发出来很多优秀的程序库。然而,大部分程序库需要改进,而NodeJS的这种快速成长的环境意味着每一版升级中都带有大量的变化; 当你使用一种前沿技术时,你十分有必要尽快的紧跟最新的版本。这给创业型的企业带来了很多的麻烦。
另外一个原因是关于测试。NodeJS里的测试框架还不错,但跟Django或RoR平台上的相比还是差一些。对于一个每天都有大量的代码提交、并且在一两天内就要发布的应用来说,程序不能出问题是至关重要的,否则你为此辛苦的努力变得得不偿失。没有人愿意花一天的时间改一些弱智的bug。
最后一点,我们需要的是一种能缓存一切的东西,并且要尽快的实现。尽管我们的应用在增长,每秒钟有上万次的hits,但绝不会出现很大量的访问请求;这不是一个聊天程序!主程序最多时也就达到1000RPS,这样的负载对于Ruby on Rails和Nginx来说算不了什么。
如果你现在还在读这篇文章,那你已经看到了我所有要说的了,你也许非常坚持的想知道我们的应用什么地方还在使用NodeJS。是这样的,我们的应用 由两部分组成。一是界面,用户看到的这部分,二是负责报表管理的部分,以及做日志的功能。后者是NodeJS的一个最佳使用场景,存在有大量的短周期的请 求。这部分的动作需要尽快的执行完成,甚至要在我们的数据推送还没有完成之前。这很重要,当请求执行还未结束,浏览器继续等待响应结束,这会影响用户使用 体验。NodeJS的异步特性救了我们。数据要么被存入数据库,要么被处理掉,当请求一旦执行完成,浏览器就可以开始做其它重要的事情了。
分享到:
相关推荐
Node.js是一个Javascript运行环境(runtime environment),发布于2009年5月...Node.js 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。
Node.js是一个Javascript运行环境(runtime environment),发布于2009年5月...Node.js 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。
Node.js 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。 Node.js对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器...
书中还详细讨论了Node.js与传统后端技术(如Ruby on Rails、PHP、Java等)相比的优势和不足,以及如何利用Node.js的异步非阻塞特性来优化应用性能。此外,书中还探讨了Node.js开发中的一些最佳实践,例如模块化设计...
Node.js是一个Javascript运行环境(runtime environment),发布于2009年5月...Node.js 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。
1. **编程语言**:服务器端源程序常见的编程语言有Java(JSP, Servlets)、Python(Django, Flask)、Node.js(JavaScript)、Ruby(Ruby on Rails)、PHP等。这些语言各有优缺点,例如Java以其稳定性和企业级支持而...
Node.js是一个Javascript运行环境(runtime environment),发布于2009年5月,...Node.js 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言
Dash Lua Marionette.js Meteor MongoDB Mongoose Mono MooTools MySQL Nginx Node.js OCaml OpenCV OpenGL Perl PhoneGap PHP Play Framework PostgreSQL Processing.org Prototype Puppet Python Qt R Redis Ruby ...
- **简介**:Express.js 是一个快速、简洁的 Node.js Web 应用框架,适用于构建 Web 和移动应用程序。 - **特点**: - **轻量级和高性能**:设计简洁,性能卓越。 - **中间件**:支持使用中间件处理请求和响应的...
Node.js是一个Javascript运行环境(runtime environment),发布于2009年5月,由Ryan ...Node.js 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的
通常使用如Node.js、Python Flask、Django或Ruby on Rails等服务器框架来构建这样的后端。这些框架提供了处理HTTP请求、连接数据库、与云服务交互的能力。 在安全性方面,我们需要考虑**权限控制**和**数据加密**。...
**Node.js**:Node.js是一个基于Chrome V8引擎的JavaScript运行环境,通过提供异步I/O模型,使得JavaScript可以在服务器端运行,从而实现全栈JavaScript开发。 **Vagrant**:Vagrant是一款虚拟化工具,它允许开发者...
4. **框架与库**:formgun可能基于某个Web框架,比如Express.js(Node.js)、Django(Python)、Rails(Ruby)或Laravel(PHP)。识别这些框架有助于快速理解和修改代码。 5. **API接口**:作为数据提交工具,...
- **技术广度**:要求开发者不仅具备扎实的基础编程能力,还需了解多种技术栈,如PHP、Python (Django框架)、Ruby (Rails框架)、Node.js等后端语言,以及Bootstrap前端框架、Backbone或Angular等前端框架。...
node.js postgreSQL ruby scala sublime text 2 python ruby on rails php osx heroku django aws kubernetes docker react laravel cloudfoundry Check out our full plugin list → Oh My Zsh...
6. **Node.js**:Node.js基于JavaScript,适用于构建高效的I/O密集型应用。其非阻塞I/O模型和事件驱动的架构使得它在实时数据分析和流处理中表现出色。 7. **PHP**:虽然PHP主要应用于Web开发,但其也有许多数据...
然而,由于项目未使用Node.js,我们需要考虑其他语言或框架中的类似库,如Python的Flask-Uploads,Ruby on Rails的carrierwave,或者是PHP的Laravel框架中的File Upload功能。 为了完成这个挑战,首先,我们需要...