2

我知道我会得到一千个“取决于你想要做什么”的答案,但说真的,网上还没有关于这个的可靠信息。以下是我的假设——我认为现在对很多人来说它们是相似的:

  1. 现在是 2008 年 10 月。我想开始为 2009 年 1 月编写应用程序。我愿意使用 beta 代码等,但到 1 月,我想要一个没有“奇怪”问题的网站。话虽如此,如果一种语言只是比另一种语言慢 10%,只要问题是线性的,我就不会关心这些事情。我主要关心的是开发人员的生产力。
  2. 我将在应用程序中使用 Linux、Apache、MySQL。
  3. 我希望能够使用稳定的库来执行诸如运行 scp 和 ftp 客户端功能之类的事情(我只选择了这两个,因为它们与 Web 无关,但同时代表了任何大型应用程序都可能使用的非常常见的网络协议)。OpenID 和 Oauth 等技术也将被使用。
  4. 经验丰富的 Web 开发人员很容易找到(即我不必从金融公司之类的人那里找人)。
  5. 无论选择是什么都是常见的,并且会存在一段时间。
  6. 这是一个踢球者。我希望能够使用类似于 HAML、SASS 的高级表示层工具/语言。我绝对想使用 JQuery。
  7. 我将创建一个 Facebook 应用程序,并在某些时候做一些事情,比如处理 SMS 消息、iPhone 应用程序等......

此时,语言的选择是 PHP (Cake,Symfony,Zend), Python (Django), Ruby (Merb)。在这一点上,我真的介于 Django 和 Merb 之间,主要是因为其他人似乎都在这样做。

请不要在此处放置任何非主流技术。我知道 Merb 大部分都没有经过测试,但他们的既定目标是一个坚实的平台,而且它背后有很多动力,所以我相信它是可行的。请不要回答 Perl 或 .Net 有多棒。

供将来参考 - 已经做出了这些选择:

  • Debian (Lenny) - 用于将 CPU 周期转换为有用的东西。追踪
  • 0.11 - 用于项目管理 Gliffy - 用于线框等
  • Google Docs/Apps - 用于文档、托管电子邮件等...
  • Amazon ec2/S3 - 用于托管、存储。

干杯,亚当

4

13 回答 13

16

姜戈!

在 Google/Youtube 上查找 DjangoCon 演讲 - 特别是“可重用应用程序”(www.youtube.com/watch?v=A-S0tqpPga4)

在开始使用 Ruby/Rails 之后,我使用 Django 已经有一段时间了。我发现 Django 社区更容易进入(更好),语言记录了优秀的例子,而且它的模块化非常棒,特别是如果你想把自定义组件混入其中,而不是被迫在这里使用某些东西和那里。

我敢肯定,可能有一些方法可以让 Rails 或类似的东西一样灵活,但我强烈建议你仔细看看http://www.djangoproject.com/上的 Django 介绍等

Eugene 提到它现在是 1.0 - 因此在 2009 年 1 月之前将保持稳定和向后兼容的代码库。

此外,它构建的自动管理界面可用于生产,并且非常灵活。

于 2008-10-08T18:51:52.533 回答
9

对不起,但你的问题是错误的。人们可能会投票给我,但我还是想说:

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

  • 所有 Ruby 倡导者都会告诉你使用 Ruby。
  • 所有 Python 倡导者都会告诉你使用 Python。
  • 所有 PHP 倡导者都会告诉你使用 PHP。
  • 在此处插入其他语言。

明白了吗?

我建议您亲自尝试您提到的每种语言。每人至少几天。之后,您应该有更好的基础来做出最终决定。

也就是说,我会选择 Ruby(因为我是 Ruby 的拥护者)。

于 2008-10-08T18:51:26.637 回答
7

他们都将完成工作。

使用您和您的团队最熟悉的那个

与其他任何变量相比,这将对您的应用程序的交付时间和稳定性产生更大的影响。

于 2008-10-09T20:02:49.583 回答
5

这取决于。

php - symfony 是一个很棒的框架。缺点:php,冗长且目录繁重。推进器使用起来很烦人。优点:php 无处不在,劳动力便宜。框架做得很好,支持很好。许多插件让您的生活更轻松

python - django 也是一个很棒的框架。缺点:python 程序员可能更难找到,django 更难。由于没有官方迁移,因此更改您的数据库架构可能会有些困难。不像你期望的那样做 mvc 。好处:做你需要的一切,并拥有出色的 python std 库和社区。

ruby - 我从未使用过merb,所以我将解决rails。好处:几乎任何你想做的事情都有一个插件、gem 或配方。便于使用。缺点:这些插件、宝石和配方有时无法以神秘的方式工作。猴子修补通常是邪恶的。社区是……声音。自以为是的软件,有时这些意见是错误的(缺少外键)。rails 本身就像是一座等待爆炸的纸牌塔,会夺走你数小时的生命。

综上所述,我是一名自由 php/symfony 和 ruby​​/rails 开发人员。我参与过多个语言和框架的项目。我最新的项目是在 Rails 中,完全是因为 ActiveMerchant。我一直在寻找开发 django 应用程序的理由。如果有一个类似于 django 的 ActiveMerchant 库,我可能会使用它。

于 2008-10-08T19:08:42.000 回答
4

如果您对 Python 解决方案感到满意,我会选择 Django。它现在是 1.0 版,并且非常成熟,拥有庞大的用户群和许多贡献者。集成 jQuery 没问题,我已经完成了,没有任何问题。

唯一的一点是,据我所知,如今 Ruby 在 Web 开发中更受欢迎,因此更容易找到 Ruby 开发人员。我从浏览最近的招聘广告中得到了这种印象——Python 或 Django 没有那么多。我对 Merb 了解不多,所以无法进行公平的比较。

我已经完成了足够多的 PHP,不建议用它开始一个新项目。

于 2008-10-08T18:19:25.297 回答
2

根据您的原因,我会选择 Ruby。我看到您需要一些管理工具(scp、ftp 客户端),而 Ruby 拥有它(net/sftp 和 net/ftp 库)。

此外,还有像 God 用于监控您的系统,Vlad the Deployer 用于部署等。在 Merb 的领域中有很多替代品,只需使用您认为更适合您的需求的任何东西(Thin、Mongrel、ebb 等)。

于 2008-10-08T18:26:52.100 回答
2

要了解 Django 生态系统当前所处的位置,您可能需要查看

于 2008-10-09T10:55:29.907 回答
1

我必须先同意 Orion Edwards 的观点,选择你的团队最熟悉的那个。

但是,我还必须注意您的列表中缺少 ASP.NET 语言。不是为了激怒伟大的狂热军队,而是牛肉在哪里?.NET 是一个稳定、快速的开发平台,劳动力资源每天都在增长。VB.NET 和 C# 是可移植的技能组合,当您建立一个开发人员团队来处理各种不同的任务时,这可能意味着很多。.NET 还允许您将表示层与后端代码分开,就像其他语言一样,还允许您将后端代码公开为 Web 服务,用于 iPhone 和 Facebook 应用程序等。

对每一个建议持保留态度,然后选择最适合应用程序的建议。做你的研究,设计功能而不是狂热者。

免责声明:曾经是 PHP、ColdFusion 和 Perl 开发人员。Flex 狂热者和 Adob​​e 爱好者。现在正在编写企业 .NET 应用程序。;)

不要忘记 Mono,它可以让您在 *nix 下运行 .NET。我并不是说它会是完美的,只是扮演魔鬼的拥护者。

于 2008-10-09T20:13:03.697 回答
1

不要陷入服务器端页面布局的思维定势。考虑像 SproutCore、GWT 或 ExtJS 这样的技术,它们将布局代码完全放在客户端上,使服务器只负责数据编组和处理(并且很容易被替换)。

你真的,真的需要知道你想要哪个服务器平台。不要因为它是当月的味道而选择一种,而是因为你觉得它舒服而选择一种。味道不会持久,坚固的代码库会。

于 2008-10-09T21:13:14.760 回答
1

在 Django 中构建应用程序后,我可以证明它的实用性。如果所有框架都一样优雅(是的,Spring,我在看着你)。

然而,在将农场押注于 Django 方面,您需要考虑的一件事是 Python 3 将很快发布。Python 3 不向后兼容,并且存在一种风险,即它会分叉语言并最终减缓所有 Python 项目在处理后果时的势头。公平地说,Ruby 2.0 也即将推出,但我认为它不会有那么大的破坏性。

于 2008-10-16T15:07:01.753 回答
0

我在过去十年中对各种新技术的经验使我建议您将平台的稳定性作为一个严肃的标准。使用最新最好的框架开发一切都很好,但是当你发现它向前推进了一个单点版本时,突然间你所做的一切都被弃用了,这可能会导致额外的不必要的工作。这尤其是我在版本 1 之前使用 rails 的经验。仅出于这个原因,当您开始使用它时,我会避免使用任何至少不是 1.0 的平台。

Ruby 非常适合使用,并且可以让您的开发人员保持较高的工作效率,但如果 Django 是更稳定的平台,我肯定会支持它。

于 2008-10-09T11:05:56.327 回答
0

不要对您的服务器设置有偏见是值得的。任何在源代码中值得重视的现代 Web 框架都有某种 SQL 抽象层。PostgreSQL 获得了更好的性能,这来自前 MySQL 党派。

Apache 是一头野兽,无论是在配置上还是在服务器上的资源上。为什么不使用轻量级的东西,比如nginxlighttpd

(作为记录,我是一个大 Django 用户,但正如公认的答案所说,无论你的团队知道什么。快速周转不是学习新框架的时候。如果你从头开始雇佣一个团队,和 Django 一起去吧。)

于 2008-10-14T16:48:48.400 回答
0

更新:我最终使用并爱上了 Django。我已经完全用完了 PHP - 对此感到抱歉。未来的读者试图创建一个新的 web 2.0 站点(假设他们有编程背景),应该非常考虑这个设置:

用于托管的 Amazon ec2(每月 80 美元 - 不便宜,但如果你能负担得起的话,值得) Django/Python(Python 是地球上最强大的脚本语言 - Django 只是让它在网络上运行)

开发应该使用 SQLlite 和 Django 自带的开发服务器。不要在 Nginx、Apache、MySQL 上浪费时间,直到你有几周的测试版。

哦,我现在在 Mac 上开发,它非常适合本地 Django 开发。

最后,PinaxDjango开发的一个很好的开始。

于 2009-03-05T21:09:13.457 回答