开发大型web应用,你会选择什么作为后端语言?

openkk 12年前
   <p> 近日,Hacker News 中有<a href="/misc/goto?guid=4958521803373700683" target="_blank">一个问题</a>引起了广泛的讨论:如果要开发一个大型的 web 应用程序,你会选择什么编程语言来进行后端开发,要考虑到开发时间、成本和可维护性。</p>    <p> 以下是部分回复:</p>    <p> <strong>1. Java</strong></p>    <p> hendzen 写道</p>    <blockquote>     <p>对于一个“大型”的 web 应用,我会老老实实地使用 Java,并会选择 Jetty 作为 HTTP 服务器,Jersey/JAX-RS 作为 web 框架。JVM 是无与伦比的,并且新员工入职培训也相对轻松得多,因为大部分人都了解 Java。</p>     <p>尽管不像 Rails/Django 那么时髦,但是你将得益于众多高性能、可靠的 Java 库,更不用说那些伟大的分析工具。</p>    </blockquote>    <p> meddlepal 写道</p>    <blockquote>     <p>我同意,我会选择 Java 来开发核心功能,对于一些非核心功能,我可能会选择 Groovy 或 JRuby。</p>     <p>Jersey/JAX-RS 非常不错,但我感觉有些风险,我更倾向于 Play2。</p>     <p>Java/JVM 生态系统中有很多非常积极的东西,如伟大的虚拟机、库、庞大的社区以及大量的开发者。这是开发一个大型 web 应用真正要考虑的。</p>    </blockquote>    <p> <strong>2. .NET</strong></p>    <p> Avalaxy  写道</p>    <blockquote>     <p>比起 Java 平台,我更倾向于 ASP.NET MVC(比如C#)。.NET 栈是非常强大的,我个人认为比 Java 强得多,并且 ASP.NET MVC 框架包含了大量 RoR 中的优秀特性。</p>    </blockquote>    <p> ralphael  写道</p>    <blockquote>     <p>我投 .NET、MVC 和 SQL Server 一票。</p>     <p>这个平台上拥有大量的示例程序,况且 stackoverflow.com 就是基于 .NET 的。</p>    </blockquote>    <p> spobo  写道</p>    <blockquote>     <p>.NET 绝对不是一个坏的选择。</p>     <p>过去几年,微软已经真正到达了顶峰,它们最新的框架非常易于开发者掌握和使用,微软同时也开始基于 .NET 来推动其开源项目,比如 codeplex 和 NuGet,微软同时还是 jQuery 的核心贡献者。微软最近还发布了 WebAPI,为开发者创建 REST-ful JSON/XML 应用提供了一个相当平缓的方式。</p>    </blockquote>    <p> <strong>3. PHP</strong></p>    <p> interwho  写道</p>    <blockquote>     <p>对我个人而言,我会选择 PHP:</p>     <ul>      <li>更快地解决事情;</li>      <li>网上有大量的类可以使用,这让事情变得简单;</li>      <li>个人认为,比其他一些语言更容易维护;</li>      <li>可在几乎所有的网站托管服务器中运行,价格便宜;</li>      <li>可扩展。</li>     </ul>     <p>如果你需要其他更强大的功能,你可以无缝过渡到另一种语言。</p>    </blockquote>    <p> <strong>4. Ruby 或 Python</strong></p>    <p> olalonde  写道</p>    <blockquote>     <p>Ruby/Rails 和 Python/Django 似乎是 YC 初创企业最常见的选择,它们在开发时间、成本、可维护性方面具备一定的优势。</p>    </blockquote>    <p> spdy  写道</p>    <blockquote>     <p>Python/Django 或 Ruby on Rails。如果你行动快速、经常改变主意,就选它们。</p>    </blockquote>    <p> netgineer  写道</p>    <blockquote>     <p>在面向服务架构中,我会选择 Ruby。在不同系统之间使用 HTTP/JSON 用于内部 API。如果性能是瓶颈,你可以考虑在部分系统中使用一个稍低级别的语言(Java、Haskell、Go、Erlang 等)。</p>     <p>Rails 使 SOA 开发更加容易和快速,除了 API 客户端,我没有其他好的解决方案。</p>    </blockquote>    <p> 3pt14159 写道</p>    <blockquote>     <p>Python(Tornado 或 Twisted)+ Riak。为什么呢?你可以轻松扩展,并且有大量的库,开箱即用,并且你也无须担心你的数据库受影响。</p>    </blockquote>    <p> <strong>5.   Clojure</strong></p>    <p> Zak  写道</p>    <blockquote>     <p>我倾向于 Clojure,因为:</p>     <ul>      <li>属性清单和类似于继承的行为对于映射和记录是非常自然和方便的。我认为,这些特性将有益于大型应用程序。</li>      <li>Clojure 可以抽象数据库,保存和执行关系模型比 ORM 更加直接。</li>      <li>Clojure 可以利用 Java 库,这意味着你在实现一些常用功能时会非常轻松。</li>     </ul>    </blockquote>    <p> <strong>6. 选择喜欢(擅长)的语言</strong></p>    <p> spobo 写道</p>    <blockquote>     <p>使用一个更高级的编程语言,同时使用标准接口与前端进行通信。如果你为后端构建了一个 REST API,使用什么语言是不重要的。你可以随时更换更高性能的部件,也可以使用不同的语言来开发不同的功能。</p>     <p>如果你想降低开发成本,就使用大多数开发者已选择的生态系统,Python、PHP、Ruby、Java、.NET 都可以,这些语言都有一些伟大的框架,帮助你进行快速开发。</p>     <p>但是,不管你做什么,不要强制让你的开发人员去使用不喜欢的语言。听从你的开发团队,要相信每种语言都有很大的潜力。</p>    </blockquote>    <div id="come_from">    来自:     <a id="link_source2" href="/misc/goto?guid=4958521803497466799" target="_blank">www.iteye.com</a>    </div>