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