我应该使用什么语言和(可能的)Web应用程序框架来开发高流量的Web应用程序?

时间:2009-11-26 03:43:41

标签: programming-languages frameworks performance high-traffic

我目前正处于大学独立网络应用程序开发项目的预先规划阶段,该项目大约有一年的时间限制。该应用程序将具有某些类似wiki的功能,并且可能最终会在未来获得大量流量,这就是为什么我选择的语言和框架必须优先处理大量处理的能力压力以足够有效的方式(意味着它不应该是服务器生猪,因为这意味着更高的硬件,维护和其他相关成本)。紧迫的第二优先事项是缩短开发时间和复杂性。

截至目前,我正面临一个分析瘫痪的案例,因为似乎有很多语言可供选择。例如:

  • PHP
  • 红宝石
  • 爪哇
  • .NET
  • 其他...

还有框架,例如:

  • Symfony的
  • Zend Framework
  • Ruby on rails
  • ASP .NET
  • 许多其他人......

据我所知,在开发便利性和效率之间似乎有某种权衡,所以我试图在这两件事之间找到平衡(在很多其他考虑因素中)。

到目前为止,我知道PHP,Java,C#,Visual Basic处于中级水平。不过,我想 保持语言选项是开放的,因为我愿意在必要时学习另一种语言,例如ruby,因为它看起来很有趣。

另一方面,虽然这个决定可能不够客观,但有一些数字需要考虑。我相信我已经读过,例如,java比PHP慢。

那么,最后,我应该根据应用程序的需求使用哪些?

如果你已经开发出类似的东西,哪些选项适合你?


编辑:我已经阅读了答案和其他一些资源,大多数人都说任何语言都可以扩展,并且只要你知道如何定义可扩展的架构和优化技术,就可以像你需要的那样高效。虽然这是真的,听起来很令人振奋,但是某些语言/框架比其他语言/框架更耗资源也是如此,当然成本是一种约束(几乎总是如此,但我忘了最初在我的问题中添加) 。

此外,现在使用框架几乎是给定的。

6 个答案:

答案 0 :(得分:10)

由于它是一个单独的努力,而你显然正在处理时间限制,请使用你最好的一个。

有大量使用您提及的所有技术的高容量网站示例。老实说,在你获得流量之前,它不会让 产生重大影响。即便如此,有些事情你会(希望)有钱用来缓解这个问题。

试图说服你任何特定的语言/堆栈将真正归结为提出推荐的人的偏好和/或偏见。

答案 1 :(得分:5)

你知道没有一个真正明确的答案吗?

所有这些都有利有弊,并且根据开发人员和应用程序的设计,创建具有其中任何一个的能力各不相同。

既然你要自己开发这个东西,那么你能做的最好的事情就是选择一种你熟悉的语言。

所以我提出以下建议:

从你的应用程序中选择你想要构建的最简单的东西(例如登录页面,关于页面,或几乎任何东西。重点是它应该非常简单)

一旦您选择了该做什么,请使用所有可用选项对该页面进行编码,并衡量您执行以下操作需要多长时间和/或有多困难:

  1. 获取SDK,环境,工具等redy。
  2. 创建自己的页面到您满意的程度。
  3. 创建模拟工作负载测试(发送多个请求)
  4. 衡量每个内存,CPU,磁盘使用量等方面的费用。
  5. 获取特定技术的论坛等文档和支持。
  6. 最后也更重要的是,你最喜欢哪一个。
  7. 页面非常简单至关重要。在这个练习中花一两个星期的时间,帮我们一个忙,把结果发回来;)

    我告诉你这是不可用的:“用asp.net做C#,因为等等等等。”如果你认为它很糟糕的话并且你要么放弃它并改变别的东西。

    此实验对于将来的参考也很有用。

答案 2 :(得分:3)

Facebook在PHP上运行

Google使用Python和Java

M?S [FOU]使用.NET

正如其他人所说 - 这就是你所知道的,以及你可以利用的东西。如果您不知道,请选择一个并运行它。

答案 3 :(得分:2)

虽然老实说我没有太多使用它,当我读到Python的内容时,它似乎具有你正在寻找的那种优势 - 强大的可扩展性,可扩展性和我发现的凝聚力缺少其他语言(特别是PHP)。

我会考虑Python / Django,如果你还没有调查过它。

答案 4 :(得分:1)

由于这是一个大学项目,我会认真学习Ruby和Ruby on Rails。这是一个非常生产环境,有很多非常好的书籍和资源以及可以依赖的社区。如果你做商业广告,它有足够的腿可以带你走得相当远。

另请查看jQuery,这是一个非常强大且易于使用的客户端Javascript库,可以简化您的一些Wiki用户交互。

答案 5 :(得分:1)