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

本文是转载,原文地址:http://www.iteye.com/news/25729

近日,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都可以,这些语言都有一些伟大的框架,帮助你进行快速开发。 

但是,不管你做什么,不要强制让你的开发人员去使用不喜欢的语言。听从你的开发团队,要相信每种语言都有很大的潜力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值