2
xst 2013-04-08 23:47:02 +08:00 1
很多年前,Js不能用来做很多东西... 从自有了v8有了Node,世界变了...
Ruby 感觉最大的好东东就是 RoR, 偏Web后台的。 Js 可以前后台兼顾。但快速开发没RoR方便。 看你个人喜欢了 :) 不过从现在的PaaS提供商来看, 他们主要乐于提供PHP、Python、JAVA、NodeJS等服务。 |
3
ewangke OP @xst
嗯你说的这些优缺点,我也了解过。如果要做前端,js是绕不过去的。 但Ruby社区的一些框架更成熟,更傻瓜一点。一直感觉js有些“乱”,node社区进化太快,担心自己跟不上。 像Meteor这种前后端全js一步到位的方案(mongodb),总担心绑得太死,不够灵活。而且对提升自己的理解不利。 |
4
Livid MOD 我的建议是:
如果最后项目总体动态页面数会超过 20,那么一定 Python/Ruby,越高级的框架越省力。 如果不超过 20,那就 Node.js 好了。 |
5
Livid MOD V2EX 是用 Python 的 Tornado 框架写的,这是一个来自 Gmail 创始技术团队及前任 Facebook CTO 的作品,也一直处在非常活跃的开发中,最近刚刚出了 3.0 版本。
除了 Tornado 之外,V2EX 还大量用到了 rq。 Tornado + rq,是一个用起来非常开心,也能够很快出作品的组合。 我知道类似的东西在 Ruby 社区也有很多,我只是分享对我来说最好的。 |
7
xst 2013-04-09 00:30:32 +08:00 1
|
8
Livid MOD |
9
fangzhzh 2013-04-09 00:32:16 +08:00
@ewangke 我也面临同样的技术选型的问题. 我是C++服务器开发出身,虽然对C++开发服务端技术很熟,但是已经对C++的超慢开发速度是深恶痛绝了
|
10
ewangke OP |
11
Livid MOD @ewangke 我目前正在做一个用 Node.js 写的项目,但不是 http 协议的,而且交互功能不超过 10 个。
Node.js 的很多 library 提供的功能,都需要嵌套 callback 来完成。我承认自己目前对这种做法还不够熟悉,所以总觉得比较心悬。 |
12
ywencn 2013-04-09 00:41:32 +08:00 1
一起学不就是了。。你还有时间困扰你半年啊,半年ruby都入门了。。
|
13
Livid MOD 但是如果是一个本来打算用 gevent 写的程序,那么改成 node.js 还是很适合的。
|
14
ewangke OP @Livid
感觉tornado的文档比较好,但教程不是很多,学习曲线有些陡,还是我有些外行?感觉Flask的教程更多一些。。。我看过Flask一部分文档,但当时的需要是做简单的Restful API,还是稍微复杂了些。最后用的bottle.py @fangzhzh C++确实强大,但现在人力成本越来越高,多数时间里开发效率比运行效率更重要。而且系统的瓶颈往往只存在那极少的部分中。脚本语言比较灵活,而且容易做成插件,我接触到的一些游戏引擎里都有一定程度的脚本支持。 |
15
Livid MOD @ewangke Tornado 提供了一个基础的 requestHandler,你可以在其上继承改写为自己整个项目的 BaseHandler,然后再根据最终的页面类型,继承为 WebHandler,APIHandler,然后你可以在这个过程中自己重新定义很多东西:
- 如何验证用户 - 需要添加 / 删除哪些头部 这样的架构对于有一定规模的网站是非常方便的。 |
16
fangzhzh 2013-04-09 00:45:42 +08:00
ror 学过一点, python写过一点, tornado没玩过, gevent没玩过, Node.js没玩过. 严重关注此贴最后的讨论结果!
|
17
ewangke OP @ywencn
我维护着50多个iOS app,还在做新产品,还要带小孩。。。另外语言基本已经入门了。熟练掌握一两门语言的开发者,语言关入门一般不会超过3天吧,至少对我是这样。 请教大家是希望少走一些弯路。虽然我对技术感兴趣,但我更希望把时间花在产品上,而不是尝百草然后比较各种技术的优势。 |
18
ewangke OP @Livid 嗯我明白你说的意思。但我毕竟有些外行,所以希望先学习些抽象层次更高的东西;另外有没有基于tornado的一些解决具体特定应用场景的开源项目,我去学习学习
|
19
lldong 2013-04-09 00:59:01 +08:00 1
Objective-C熟练的话Ruby的很多概念很好理解
|
20
ewangke OP @lldong
推荐一个入门框架吧?Sinatra还是RoR? 最近看了一些博客都在批评RoR太笨重太magical了 |
21
darcy 2013-04-09 01:09:47 +08:00 via iPhone
我咋觉得你两种都需要学,前端离不开javascript呀
|
22
Los 2013-04-09 01:24:43 +08:00
来ruby社区看看它的活力 -> http://ruby-china.org/topics
|
23
PrideChung 2013-04-09 01:50:35 +08:00 3
@ewangke
说到技术选择,我不能不提 Marco Arment,Instapaper的作者。这哥们一直很淡定地在用着PHP,理由很简单:学习Python或者Ruby会花费不少时间,一段时间内降低他的生产力;他对PHP了如指掌,坑再多也坑不到他;基本上Python或者Ruby能做的事,PHP也能做,切换语言没有本质上的改变;他更愿意把时间花在产品而不是技术上。 其实你如果想自己做一个功能完整的网站,JavaScript是逃不掉的,问题也就不成立了,或者应该改成 Rails VS Node.js? 如果重点还是放在iOS开发上,只是想自己做App的Backend,顺带再搞个App的Landing Page,不如就用你最熟悉的Python好了,框架用Flask、Django都行,我隐约觉得Ruby和Rails都不是你的菜。 PS:关于Ruby框架的选择,最近有篇很热的post http://robbinfan.com/blog/40/ruby-off-rails |
24
ewangke OP @PrideChung
你说的意见最贴近我的真实想法,看来我可能问了一个被问过无数遍的“蠢问题”。重点还是在iOS开发上,python我最熟也最喜欢。但总感觉python的开源社区不太活跃,很多新的想法都是从ruby/nodejs社区开始实现的。 仔细想了想,还得结合自己需要做出一些东西来。我主贴的两个链接是很好的参照,我可以用最熟的python一点点实现我需要的部分功能。 PS: 你推荐的这篇文章,我看过至少3回啦^_^ |
25
Livid MOD |
26
ShengjiaWANG 2013-04-09 03:38:04 +08:00 1
我和po主几乎一样的情况。。。
我是从ERP(SAP/IBM WESB)转iOS独立开发者。早年熟悉java,后来自学OC转iOS开发,多和静态语言和后端打交道,对web端的动态语言和流行框架接触的少。刚开始的时候我用java做web端以及服务器端的web service,但慢慢还是觉得java有些太重了,并且有些无趣。所以差不多两个月前我也纠结于po主现在的问题。 我自己的感觉是这样的:js,html,css这些是逃不掉的,然后就是在python,ruby和php之间选,其中我个人相对略懂php,但是对python和ruby更感兴趣,但两个我都完全不熟悉。在比较了一段时间后选择了ruby。主要还是觉得ruby更优雅,社区也更活跃,就是学习曲线略陡峭。对po主来说,先用最熟悉的python实现,熟悉一门动态语言和一个主流web框架,跨过从客户端到web端这个坎以后,再学别的应该很快,多少都是相通的,可以触类旁通。 ps 所以我自己的话,等完全上手ruby后,也一定会尝试python的 :p |
27
ywencn 2013-04-09 08:45:31 +08:00 1
@ewangke ruby和node基本上是个互补的东西啊,既然你有那么一大堆app,
那你就可以用ruby on rails来给那一堆app写web网站主页什么的。用node来提供这些app的服务器端API。 |
28
yangg 2013-04-09 09:52:46 +08:00 1
不管你用什么语言,总是会用到js, 所以js是必学的(可以到 http://www.codecademy.com/ 学js,两三天应该可以把课程学完,后面就是实际使用了),so
|
29
hidden 2013-04-09 11:05:58 +08:00 2
说说自个儿经验吧,用过2年rails,2年nodeJS,1年半Objective-C,半年php...
rails:适合做一些傻瓜化项目,页面多,多开发人员共同维护,最好别去折腾性能,我们以前是用来做一些企业服务web软件。感觉ror的东西容易被遗忘,我现在都快忘了ruby怎么写了,我个人是觉得以后是不会再用了。不喜欢做那种类型的产品。 nodeJS:由于以前写前端,所以js比较熟,也比较喜欢。这玩意儿估计一辈子都不会忘。和其他语言不同的是你要花时间纠结异步模式。从感觉上来说这玩意儿小巧玲珑。要往小了用,做移动互联网项目的server端非常合适,天生json api,app的接口一般都不会多。由于代码自由度很大所以多人共同维护需要自个儿琢磨规范。 php:这个才是写网页的王道... 入门简单,部署简单,随便找个人都会,不纠结。 所以选啥可以根据你的项目和个人喜好来定,看你做的都是移动互联网项目,还是nodeJS或者python吧,py我没写过,不清楚是个什么情况, nodeJS需要经得起折腾,版本发展较快,各种思路变化。 |
30
duhastmich 2013-04-09 12:01:08 +08:00 1
@ewangke node.js 有模仿rails 的MVC框架, 好几个, node.js 有 express/connect 这样的框架, 它的middleware 很独特, node.js 还有 meteor, derby, hoodie 这样的, 那绝对不是重造轮子了, 我现在写coffeescript, 用express, 客户端用knockout
|
31
chloerei 2013-04-09 12:05:39 +08:00 1
如果楼主希望学新语言、新知识,想接触规范化模块化的 Web 框架,那就是 Ruby on Rails。
如果楼主是想尽快实现一个产品,那么用最熟悉的语言工具就行了,Rails 上手期比较长。 前端 js 是唯一选择,用 Rails 框架也是 js 做前端。 |
32
lldong 2013-04-09 13:11:10 +08:00 1
@ewangke 如果主要是写service的话rails确实有蛮多不必要的组件,可以考虑sinatra或者rails-api。关于rails里面比较多magical的东西,我觉得是ruby的特性使然,也确实能提高开发效率。
|
33
ashchan 2013-04-09 16:40:43 +08:00 1
Obj-C 与 Ruby 渊源很深也非常相象(两者都从 Lisp,Smalltalk 等吸收了不少东西),所以学 Ruby 会比较方便。JavaScript 肯定是绕不开的,至少前端会完全信赖它。
就个人经验来说,不建议用 Node 来开发。繁重的 callback 太费劲。 |
34
j 2013-04-09 23:22:46 +08:00
jser对ruby的浅薄看法是:
坏的方面:语法糖太多,对于新手来说就是坑有点多。 好的方面:语法糖真好啊,所以才会有coffeescript吧,我们都爱coffeescript,它简直就是ruby和js生的儿子,等一下!怎么看起来更像python呢? |
35
notedit 2013-04-13 02:20:17 +08:00
看来我跟楼主正好相反啊 做了三年后端 现在自己出来做ios
正好我要学ios 如果楼主想学php/java/go/python的话(pyhton最好 用的时间最长) 咱们可以互相帮忙 |
39
zythum 2013-04-14 00:18:35 +08:00
想起原来朱一说的一句话是 用jquery多了。都不知道js怎么写了。 后开看了angular,knockout什么的发现 tm的都不用写js了...
上面的是吐槽。 去死如果是自己玩,还是自己写的好玩。自己各种搭架子还是非常有意思的。 |
40
bitsmix 2013-04-14 00:24:56 +08:00
如果要是语言层面上。。我的感觉是:
如果你以前学过别的语言,就别学 js 了。 如果你以前没学过其他语言,那就学 js 吧。 |
41
flyingkid 2013-04-14 01:07:50 +08:00
@ewangke ruby的rack和sinatra很适合你。最近还有一个新东西https://github.com/helios-framework/helios
|
42
vale 2015-08-09 13:44:31 +08:00
所以,博主最后选择了node.js 还是 Rails?
|