開發大型web應用,你會選擇什么作為后端語言?
近日,Hacker News 中有一個問題引起了廣泛的討論:如果要開發一個大型的 web 應用程序,你會選擇什么編程語言來進行后端開發,要考慮到開發時間、成本和可維護性。
以下是部分回復:
1. Java
hendzen 寫道
對于一個“大型”的 web 應用,我會老老實實地使用 Java,并會選擇 Jetty 作為 HTTP 服務器,Jersey/JAX-RS 作為 web 框架。JVM 是無與倫比的,并且新員工入職培訓也相對輕松得多,因為大部分人都了解 Java。
盡管不像 Rails/Django 那么時髦,但是你將得益于眾多高性能、可靠的 Java 庫,更不用說那些偉大的分析工具。
meddlepal 寫道
我同意,我會選擇 Java 來開發核心功能,對于一些非核心功能,我可能會選擇 Groovy 或 JRuby。
Jersey/JAX-RS 非常不錯,但我感覺有些風險,我更傾向于 Play2。
Java/JVM 生態系統中有很多非常積極的東西,如偉大的虛擬機、庫、龐大的社區以及大量的開發者。這是開發一個大型 web 應用真正要考慮的。
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 都可以,這些語言都有一些偉大的框架,幫助你進行快速開發。
但是,不管你做什么,不要強制讓你的開發人員去使用不喜歡的語言。聽從你的開發團隊,要相信每種語言都有很大的潛力。