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

  1. 现在是 2008 年 10 月。我想从 2009 年 1 月开始写申请。我愿意使用测试版代码等,但到一月份,我想要一个没有“奇怪”问题的网站。话虽如此,如果一种语言仅仅比另一种语言慢 10%,只要问题是线性的,我就不会关心这些事情。我主要关心的是开发人员的生产力。
  2. 我将在该应用程序中使用 Linux、Apache、MySQL。
  3. 我希望能够使用稳定的库来执行诸如运行 scp 和 ftp 客户端功能之类的操作(我只选择这两个,因为它们与 Web 无关,但同时代表任何大型应用程序可能使用的非常常见的网络协议)。OpenID 和 Oauth 等技术也将被使用。
  4. 经验丰富的网络开发人员随时可用(即我不需要找金融公司之类的人)。
  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 文档/应用程序 - 用于文档、托管电子邮件等...
  • Amazon ec2/S3 - 用于托管、存储。

欢呼,亚当

有帮助吗?

解决方案

这取决于。

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

python - django 也是一个很棒的框架。缺点:python 程序员可能更难找,django 更难找。更改数据库架构可能会有些困难,因为没有官方迁移。并没有像你想象的那样做mvc。优点:可以满足您所需的一切,并且背后有很棒的 python std 库和社区。

ruby - 我从未使用过 merb,所以我将讨论 Rails。优点:几乎所有你想做的事情都有一个插件、gem 或配方。便于使用。缺点:这些插件、宝石和配方有时会以神秘的方式无法工作。猴子修补通常是邪恶的。社区是..声乐。固执己见的软件,有时这些意见是错误的(缺少外键)。Rails 本身就像一座纸牌塔,等待着爆炸并夺走你生命中的几个小时。

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

其他提示

姜戈!

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

在开始使用 Ruby/Rails 后,我已经使用 Django 一段时间了。我发现 Django 社区更容易进入(更好),该语言记录为 出色的 示例,它的模块化非常棒,特别是如果您想将自定义组件放入其中,而不是被迫到处使用某些东西。

我确信可能有一些方法可以像 Rails 或类似的那样灵活,但我强烈建议您仔细阅读 Django 介绍等,网址为 http://www.djangoproject.com/

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

此外,它构建的自动管理界面是 生产准备就绪, ,而且极其灵活。

抱歉,你的问题是错误的。人们可能会投票反对我,但我还是想说:

我没想到会得到一个客观的答案!为什么?这很简单:

  • 所有 Ruby 拥护者都会告诉我们要使用 Ruby。
  • 所有 Python 拥护者都会告诉我们要使用 Python。
  • 所有 PHP 拥护者都会告诉我们要使用 PHP。
  • 在此插入其他语言。

明白了吗?

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

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

他们所有人都会完成工作。

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

与任何其他变量相比,这对应用程序的交付时间和稳定性的影响要大得多。

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

唯一的事情是,据我所知,Ruby 如今在 Web 开发中更受欢迎,因此更容易找到 Ruby 开发人员。我从最近浏览的招聘广告中得到了这样的印象——Python 或 Django 的招聘广告并不多。我对Merb了解不多,所以无法给出公正的比较。

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

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

此外,还有一些很棒的宝石,例如用于监控系统的 God、用于部署的 Vlad the Deployer 等。Merb 领域有很多替代方案,只需使用您认为更适合您需求的任何内容(Thin、Mongrel、ebb 等)。

要了解 Django 生态系统当前的状况,您可能需要查看

我必须以我同意 Orion Edwards 的观点作为序言,选择你的团队最熟悉的一个。

然而,我还必须注意到您的列表中奇怪地缺少 ASP.NET 语言。不是为了激怒伟大的狂热者军队,但是牛肉在哪里?.NET 是一个稳定、快速的开发平台,劳动力资源与日俱增。VB.NET 和 C# 是可转移的技能集,当您组建一个开发团队来处理不同的任务时,这可能意义重大。与其他语言一样,.NET 还允许您将表示层与后端代码分开,而且还允许您将该后端代码公开为 Web 服务,用于 iPhone 和 Facebook 应用程序等。

对每一个建议持保留态度,并选择最适合应用程序的建议。进行研究并为功能而不是狂热分子进行设计。

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

不要忘记 Mono,它可以让您在 *nix 下运行 .NET。我并不是说它会是完美的,只是唱反调。

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

而且您真的非常需要知道您想要哪个服务器平台。不要因为它是这个月的口味而选择一种,而是因为你觉得舒服而选择一种。味道不会长久,但构建牢固的代码库会。

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

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

我在过去十年中对各种新技术的经验使我建议您将平台的稳定性作为一个重要的标准。使用最新、最好的框架进行开发固然很好,但是当您发现它向前推进了一个点版本并且突然您完成所有操作的方式被弃用时,这可能会导致额外不必要的工作。这是我在版本 1 之前使用 Rails 的特别经历。仅出于这个原因,当您开始使用任何未至少达到 1.0 版本的平台时,我就会避免使用它。

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

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

无论是配置方面还是服务器资源方面,Apache 都是一个庞然大物。为什么不选择一些轻量级的东西,比如 nginx 或者 轻量级?

(郑重声明,我是 Django 的大用户,但正如已接受的答案所说,请遵循您的团队所知道的任何内容。快速周转不是学习新框架的时候。如果您从头开始雇用一个团队,请选择 Django。)

更新:我最终使用并爱上了 Django。我已经完全不再使用 PHP - 对此感到抱歉。未来试图创建新的 Web 2.0 站点的读者(假设他们有编程背景)应该充分考虑以下设置:

Amazon EC2托管(每月80美元 - 不便宜,但如果您负担得起的话)Django/Python(Python是地球上最强大的脚本语言 - 而Django只是使它在网上工作)

开发应该使用SQLlite和Django自带的开发服务器来完成。在您进行几周的测试之前,不要浪费时间使用 Nginx、Apache、MySQL。

哦,我现在在 Mac 上进行开发,这对于本地 Django 开发非常有用。

最后, 松属 是一个很好的开始 姜戈 发展。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top