新建Web 2.0网站的框架/语言(2008和2009年)

4 投票
13 回答
1002 浏览
提问于 2025-04-11 09:27

我知道会有人回复“这要看你想做什么”,但说真的,网上关于这个问题的信息真的不多。以下是我的一些假设,我觉得现在很多人可能也有类似的想法:

  1. 现在是2008年10月。我想在2009年1月之前开始写一个应用程序。我愿意使用测试版的代码,但到1月时,我希望这个网站没有“奇怪”的问题。也就是说,如果一种语言的速度比另一种慢10%,我并不在乎,只要这个问题是线性的。我的主要关注点是开发者的生产力。
  2. 我会使用Linux、Apache和MySQL来开发这个应用。
  3. 我希望能使用一些稳定的库来运行scp和ftp客户端功能(我选这两个是因为它们和网页无关,但同时也是一些大型应用可能会用到的常见网络协议)。我还会使用OpenID和Oauth等技术。
  4. 有经验的网页开发者很容易找到(也就是说,我不需要去找金融公司的人)。
  5. 无论选择什么,都是常见的技术,并且会持续一段时间。
  6. 还有一点,我希望能使用一些高级的展示层工具/语言,比如HAML和SASS。我肯定想用JQuery。
  7. 我会创建一个Facebook应用,并且在某个时候会处理短信、iPhone应用等事情……

目前,语言的选择有PHP(Cake、Symfony、Zend)、Python(Django)、Ruby(Merb)。我现在主要在Django和Merb之间犹豫,因为大家似乎都在往这个方向走。

请不要提那些不适合主流的技术。我知道Merb大多是未经测试的,但他们的目标是建立一个稳定的平台,而且背后有很多支持,所以我相信它是可行的。请不要说Perl或.Net有多好。

供未来参考,这些选择已经做出:

  • Debian(Lenny) - 用于将CPU周期转化为有用的东西。Trac
  • 0.11 - 用于项目管理,Gliffy - 用于线框图等
  • Google Docs/Apps - 用于文档、托管邮件等……
  • Amazon ec2/S3 - 用于托管和存储。

谢谢,
亚当

13 个回答

9

抱歉,但你的问题有点不太对。可能会有人因此给我投反对票,但我还是想说:

我不指望能得到一个客观的答案!为什么呢?这很简单:

  • 所有支持Ruby的人都会告诉你用Ruby。
  • 所有支持Python的人都会告诉你用Python。
  • 所有支持PHP的人都会告诉你用PHP。
  • 其他语言的支持者也是如此。

明白我的意思了吗?

我建议你自己试试你提到的每种语言。每种语言至少试几天。这样你就能更好地做出最终决定。

话说回来,我会选择Ruby(因为我是Ruby的支持者)。

18

Django!

可以在谷歌或YouTube上查找DjangoCon的演讲,特别是关于“可重用应用”的那场(www.youtube.com/watch?v=A-S0tqpPga4)。

我使用Django已经有一段时间了,之前是从Ruby/Rails开始的。我发现Django社区更容易融入(人也更友好),而且它的文档里有很多优秀的例子,特别是它的模块化设计非常棒,尤其适合想要添加自定义组件的人,不会被迫使用某些特定的东西。

我相信Rails或者其他框架也可能有同样灵活的方式,但我强烈建议你仔细看看Django的介绍等内容,可以访问http://www.djangoproject.com/

Eugene提到Django现在已经到了1.0版本,因此它的代码基础将会在2009年1月之前保持稳定和向后兼容。

另外,它自动生成的管理界面是可以直接投入生产使用的,而且非常灵活。

5

这要看情况。

php - symfony是一个很不错的框架。缺点是:php本身有点繁琐,而且文件夹结构比较复杂。使用propel的时候也会让人感到烦。优点是:php几乎到处都有,找人做这个也比较便宜。这个框架做得很好,支持也不错,还有很多插件可以让你的工作更轻松。

python - django也是一个很棒的框架。缺点是:找python程序员可能比较难,找django的程序员就更难了。修改数据库结构有点麻烦,因为没有官方的迁移工具。它的mvc(模型-视图-控制器)实现可能和你想象的有点不一样。优点是:它能满足你所有的需求,还有强大的python标准库和社区支持。

ruby - 我没用过merb,所以就说rails吧。优点是:几乎你想做的事情都有插件、gem(宝石)或者配方可以用,使用起来也很简单。缺点是:这些插件、gem和配方有时候会神秘地失效。猴子补丁(monkey patching)常常是个坏主意。社区的声音很大,大家都有自己的看法,有时候这些看法也不一定对(比如缺少外键)。rails本身就像一座随时可能崩溃的纸牌塔,可能会耗费你很多时间。

说了这么多,我是一名自由职业的php/symfony和ruby/rails开发者。我在这两种语言和框架上都做过几个项目。我最近的项目是用Rails做的,主要是因为ActiveMerchant。我一直在找机会开发一个django应用。如果django有一个类似ActiveMerchant的库,我可能早就用了。

撰写回答