给iOS程序提供数据的服务器端采用什么开发更好?RoR、PHP、Java还是Node.js

2012-08-25 16:34:26 +08:00
 zieglar
服务器上本身的网站程序比较烂,不提供api支持,现阶段准备先将app开发出来,如果考虑到可维护和复用性以及后期将网站重新推翻,服务器端采用什么开发更好呢?
16967 次点击
所在节点    iDev
45 条回复
luin
2012-08-25 16:40:24 +08:00
会啥用啥啊。。
lgn21st
2012-08-25 16:41:11 +08:00
喜欢啥用啥,我喜欢Rails。
zieglar
2012-08-25 16:49:33 +08:00
谢谢楼上两位的回答,补充一下我的背景,Java还停留在jdk6的时代,php粗通,正在看RoR和Node.js。
然后iOS应用需求比较急,所以。。。
zhouyang
2012-08-25 16:54:26 +08:00
所以用python吧
luin
2012-08-25 16:58:42 +08:00
不考虑Java, Node.js和RoR分别在性能和可维护上有优势,都是零基础入门的话RoR更易学。PHP很成熟,很容易招到人。我在用Node.js。
zieglar
2012-08-25 17:11:33 +08:00
@luin 因为后期可能还要将网站推翻重写,不知道Node.js实现现有业务有没有什么难度,我先看看吧:)
remaerd
2012-08-25 17:39:42 +08:00
我最近也在做后端,Python,Ruby,Node 都用了一下,最后选择 NodeJS。
在选择时,Ruby on Rails,Django 第一个出局,因为考虑到 API 应该轻,快。
Python 曾经用过 Flask,考虑过 Bottle。不过两者的 Extensions 的功能都无法需求。
Ruby 的 Sinatra 是最好用的。选择 Sinatra + Mongoid,一个星期可以搞出来(我自己的情况)。
现在选择用 NodeJS 的 ExpressJS + Mongoose 搭配。从 Ruby 转成 Node,主要是因为看上 NodeJS 的性能。Request per Second 的话,NodeJS 7000 左右,ExpressJS 3000 左右,Sinatra 900 左右,Ruby on Rails 300 左右。

我写 JavaScript 都是用 CoffeeScript 写的,所以写起来就像写 Ruby 或 Python 一样,非常 Lisp。

ExpressJS 的开发也是这些框架里面,最活跃的。
remaerd
2012-08-25 17:43:08 +08:00
BTW,来自 Instapaper 的作者 Marco Arment 的建议是,坚持用 PHP,不过不能用 PHP 的各种框架。
zieglar
2012-08-25 20:03:29 +08:00
@remaerd 谢谢你的解答:)我现在有用PHP在做开发,不过觉得原生PHP各种麻烦,没有各种东西用,界面搭起来也很烦,框架又不想去了解,所以才考虑在NodeJS和RoR之间选一个做为以后的方向
daweiba
2012-08-25 20:14:36 +08:00
php吧 , 毕竟你熟悉
先做出来再说
pepsin
2012-08-25 20:29:44 +08:00
@remaerd Marco那个建议的前提是他不想用不成熟的框架,没有足够的大公司使用后期维护很可能会遇上麻烦。
PHP他貌似用了Facebook开源出来的一些东西。
PrideChung
2012-08-25 20:39:18 +08:00
@remaerd 刚去爬了一下Marco的blog,Marco并非不用框架,只是他用的是自己造的框架。
zieglar
2012-08-25 21:53:13 +08:00
@daweiba PHP我不是很熟悉,原生JS和Java更熟悉一点。。。我先看看合作方给我多少时间吧,个人更倾向用NodeJS一些,不过还有待了解
ljbha007
2012-08-25 22:21:28 +08:00
推荐java和nodejs

java: 稳定、健壮的语言框架;外加JDK 6支持annotation特性,使java具备了一些动态语言才有的特性;nio库可以实现类似nodejs的事件驱动的IO;有很多成熟的第三方库和包管理系统(Maven)还有成熟的web框架;

nodejs:高并发;已扩展;发展迅速;开发方便;

缺点:

java:容易把简单的问题复杂化;某些开发框架过于沉重,不适合快速原型;

nodejs:不稳定;缺乏技术支持;难招人


不过无论用那种语言或者框架,代码质量本身是很重要的,你可以用一个非常优秀的语言和框架,写出屎一样的代码
crapthings
2012-08-25 22:25:58 +08:00
node.js

+1 meteor.js
zieglar
2012-08-25 22:27:32 +08:00
@ljbha007 那我如果用基于java的playframework呢?
ljbha007
2012-08-25 22:34:54 +08:00
@zieglar play我也只是浅尝过,跟人来说不是很喜欢,不过的确开发起来很轻便。我不喜欢的原因在于它仅仅考虑了web的快速开发,开发逻辑复杂的系统的时候,静态方法的方式会很吃力(因为不能通过继承来扩展功能,你想象一下当业务逻辑越来越复杂,你的Application类里边有成百上千个静态方法,每个静态方法都有不同的任务完成吗?),面对复杂系统还是OOP的方式更易于维护
zieglar
2012-08-25 22:49:56 +08:00
@ljbha007 嗯。。。是的,play有点脱离OOP,看来我还是好好捣腾下NodeJS好了:)
donnior
2012-08-26 00:04:49 +08:00
@zieglar
@ljbha007
Play这个static确实是有点不爽,不过也不至于那么多吧,除了web层的之外,业务层的代码原来怎么写还可以怎么写啊。实在不行可以使用scala写play,兼顾了动态语言的优点,然后相比java也没有性能损失。

考虑到楼主这个应用只是需要提供API,其实选择就可以更多了,即使使用java的话也可以直接考虑JAX-RS的实现而不需要web层的内容

用Rails的话确实很快,尤其是只提供api的时候太方便了,我现在的项目就是这样做的(因为是初期,把可能的性能问题放后边了)

至于Nodejs,我对它只是十分肤浅的了解了一下,也想跟熟悉几种技术的朋友们探讨下,我个人觉得nodejs现在是否有过于强调其性能的嫌疑而忽略了其他一些不方便的地方?比如受限于javascript简陋的语法,很多时候跟别的语言相比确实相对难用些?
ljbha007
2012-08-26 08:42:11 +08:00
@donnior javascript的确有可能写出让人难以阅读的代码 并且难以统一编码风格

不过这个问题是有解决办法的,那就是使用coffeescript

用coffeescript之后,语法就跟python和ruby很类似,并且强制统一了编码风格。唯一不方便的是调试的时候,调试的实际上是编译出来的javascript

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/46007

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX