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

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

如果让你来选择,你会选择哪种语言呢?欢迎讨论。

36
7
评论 共 89 条 请登录后发表评论
89 楼 ad6543210 2013-01-15 08:04
ad6543210 写道
longzhun 写道
ad6543210 写道
上面幾個應該是java最多人用了.
但是java有高性能?難道我用的java跟大家都不一樣嘛..
明明電腦差就不能用了

你懂什么是性能不

我只懂在爛掉腦上 java 跟 flash 不分上下的爛

爛電腦
88 楼 ad6543210 2013-01-15 08:04
longzhun 写道
ad6543210 写道
上面幾個應該是java最多人用了.
但是java有高性能?難道我用的java跟大家都不一樣嘛..
明明電腦差就不能用了

你懂什么是性能不

我只懂在爛掉腦上 java 跟 flash 不分上下的爛
87 楼 longzhun 2012-12-28 11:30
ldbjakyo 写道
fjjiaboming 写道
ldbjakyo 写道
Scala lift 没有上榜...

还没有大规模应用.

Twitter 是 Scala 搞的, 至少并发处理挺大的,处理数据量也挺大的...

Twitter在美国总体选举期间 访问过大 已经部分转向java了
86 楼 longzhun 2012-12-28 11:27
zeeler 写道
感觉Java的性能是靠内存来获得的,同样的硬件配置,PHP/Python/Ruby这些脚本语言反而比较容易提升

性能不靠内存 靠什么 你糊涂了吗  java对内存的利用和优化是做得很好的
85 楼 longzhun 2012-12-28 11:25
damoqiongqiu 写道
项目的体量不是技术选型的最终决定因素,最关键的因素是项目的场景,比如新浪、搜狐这样的大型门户站点,当然是PHP居多;专业的行业应用,比如电力、电信、医疗等等,Java当仁不让。

没常识 大型互联网用的都是java
84 楼 longzhun 2012-12-28 11:23
ad6543210 写道
上面幾個應該是java最多人用了.
但是java有高性能?難道我用的java跟大家都不一樣嘛..
明明電腦差就不能用了

你懂什么是性能不
83 楼 流水... 2012-11-19 09:06
看淘宝和京东的网站架构就知道了, 既然是大型的web应用,那么淘宝和京东可以称为大型web应用了。

淘宝是架构在java上的,而京东是asp.net开发的,看看这次双十一就知道了,京东的网站岌岌可危!而淘宝的架构却很稳定!
82 楼 zhuchao_ko 2012-10-18 16:49
我用的就是天天被人骂快死掉的语言-JAVA 5555
81 楼 pdreamer 2012-10-15 09:46
只有两种计算机语言:一些语言天天挨骂,另外一些没有人用。
80 楼 aaronrao 2012-08-24 23:49
要快速还是选ruby了,一些后端服务性的东西还是得用java的
79 楼 chrrity 2012-08-15 17:13
icewubin 写道
hardPass 写道
icewubin 写道
hardPass 写道
Java OSGI

OSGI只是个Java框架,而且只是在单JVM上比较成熟,对于大型互联网的集群(多JVM)来说,没什么太大的价值。


大哥你问我的是数据交换层,我说用OSGI。你还能再断章取义不?

icewubin 写道
你不用钻牛角尖,你就说说如果你来决策,数据交换层使用哪种技术?


而就数据交换层来说,一般不需要大规模集群,一般2台服务器做庄就可以了。
实际的业务逻辑都放在应用层。你要大规模集群、横向扩展,应该是说的是实际的应用层。

我知道我说的数据交换层的概念你未必能够理解。
如果你的子系统不多,业务没有那么复杂多变,可以忽略数据交换层,直接UI层+应用层(这在我之前都帖子中也说过)。

另外,就你话的本身的,这是个大谬论。OSGI是本身是基于单JVM的,但话又说过来,又有哪个JVM的程序是跨多个JVM的呢?这和是否分布式没有矛盾。之所以强调OSGI,是因为它的特性更符合数据交换的特征。使用基于OSGI做的数据交换中间件,成熟跑了多年的项目,哥经历过的,尽管放心。

既然你觉得OSGI能作为一种“方案”回答数据交换层的语言问题,那就到此为止吧。

这不是一个层面上的问题。osgi。。。也就忽悠一下行业内用户吧。互联网没人用这玩意。
78 楼 icewubin 2012-08-15 16:56
hardPass 写道
icewubin 写道
hardPass 写道
Java OSGI

OSGI只是个Java框架,而且只是在单JVM上比较成熟,对于大型互联网的集群(多JVM)来说,没什么太大的价值。


大哥你问我的是数据交换层,我说用OSGI。你还能再断章取义不?

icewubin 写道
你不用钻牛角尖,你就说说如果你来决策,数据交换层使用哪种技术?


而就数据交换层来说,一般不需要大规模集群,一般2台服务器做庄就可以了。
实际的业务逻辑都放在应用层。你要大规模集群、横向扩展,应该是说的是实际的应用层。

我知道我说的数据交换层的概念你未必能够理解。
如果你的子系统不多,业务没有那么复杂多变,可以忽略数据交换层,直接UI层+应用层(这在我之前都帖子中也说过)。

另外,就你话的本身的,这是个大谬论。OSGI是本身是基于单JVM的,但话又说过来,又有哪个JVM的程序是跨多个JVM的呢?这和是否分布式没有矛盾。之所以强调OSGI,是因为它的特性更符合数据交换的特征。使用基于OSGI做的数据交换中间件,成熟跑了多年的项目,哥经历过的,尽管放心。

既然你觉得OSGI能作为一种“方案”回答数据交换层的语言问题,那就到此为止吧。
77 楼 hardPass 2012-08-15 13:21
icewubin 写道
hardPass 写道
Java OSGI

OSGI只是个Java框架,而且只是在单JVM上比较成熟,对于大型互联网的集群(多JVM)来说,没什么太大的价值。


大哥你问我的是数据交换层,我说用OSGI。你还能再断章取义不?

icewubin 写道
你不用钻牛角尖,你就说说如果你来决策,数据交换层使用哪种技术?


而就数据交换层来说,一般不需要大规模集群,一般2台服务器做庄就可以了。
实际的业务逻辑都放在应用层。你要大规模集群、横向扩展,应该是说的是实际的应用层。

我知道我说的数据交换层的概念你未必能够理解。
如果你的子系统不多,业务没有那么复杂多变,可以忽略数据交换层,直接UI层+应用层(这在我之前都帖子中也说过)。

另外,就你话的本身的,这是个大谬论。OSGI是本身是基于单JVM的,但话又说过来,又有哪个JVM的程序是跨多个JVM的呢?这和是否分布式没有矛盾。之所以强调OSGI,是因为它的特性更符合数据交换的特征。使用基于OSGI做的数据交换中间件,成熟跑了多年的项目,哥经历过的,尽管放心。
76 楼 icewubin 2012-08-15 11:21
hardPass 写道
Java OSGI

OSGI只是个Java框架,而且只是在单JVM上比较成熟,对于大型互联网的集群(多JVM)来说,没什么太大的价值。
75 楼 hardPass 2012-08-15 11:18
icewubin 写道
hardPass 写道
伪命题,大规模的web应用,不可能只用一种技术的。一种静态语言+一种编译型语言,算是最起码的了。综合多种语言及平台的优势,才是王道。要兼顾快速变更、性能、横向扩展。

因为是大规模的web应用,即使是服务端,至少是应该分为UI层+应用层,或者是协议层+数据交换层+应用层。

你不用钻牛角尖,你就说说如果你来决策,数据交换层使用哪种技术?


Java OSGI

74 楼 icewubin 2012-08-15 11:10
hardPass 写道
伪命题,大规模的web应用,不可能只用一种技术的。一种静态语言+一种编译型语言,算是最起码的了。综合多种语言及平台的优势,才是王道。要兼顾快速变更、性能、横向扩展。

因为是大规模的web应用,即使是服务端,至少是应该分为UI层+应用层,或者是协议层+数据交换层+应用层。

你不用钻牛角尖,你就说说如果你来决策,数据交换层使用哪种技术?
73 楼 hardPass 2012-08-14 19:52
伪命题,大规模的web应用,不可能只用一种技术的。一种静态语言+一种编译型语言,算是最起码的了。综合多种语言及平台的优势,才是王道。要兼顾快速变更、性能、横向扩展。

因为是大规模的web应用,即使是服务端,至少是应该分为UI层+应用层,或者是协议层+数据交换层+应用层。
72 楼 wcily123 2012-08-14 17:57
   我选PHP~
71 楼 ZZX19880809 2012-08-14 13:22
guoxu1231 写道
在JavaEye上争论  都傻了嘛    JavaEye是Java的Eye嘛   Java当仁不让最牛逼啊  最炫民族风啊

大哥,说的是WEB应用,不是桌面应用,桌面当然是C++无疑,web当然是java
70 楼 guoxu1231 2012-08-13 12:11
在JavaEye上争论  都傻了嘛    JavaEye是Java的Eye嘛   Java当仁不让最牛逼啊  最炫民族风啊

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • java 后端开发好吗_Java语言哪里好?为什么那么多人选择Java后端开发?

    为什么那么多人选择Java后端开发?到后来我看到了这张图之后,终于明白了这个趋势的原因。根据最新2020年TIOB编程语言指数排行榜中,java位高居第三。TIOBE编程排行榜是根据全球工程师、课程及搜索引擎数量作为指数得...

  • 后端开发为什么使用Java是最好的选择呢?

    作为一门老牌编程语言,Java的诞生已经经过了28年。看着不算年轻(go语言和nodejs都是09年发布),但也不是最老的那个(python是1990年发布的,Perl是87年发布的)。岁月的积淀给java带来了大量的用户,它被安装在...

  • 一文看懂Web后端开发

    后端开发(Back-End Development,也称服务端开发、服务器端开发等)是创建完整可运行的Web应用服务端程序(服务端程序和资源合称为后端,即在服务器上运行的、不涉及用户界面的部分)的过程,是Web应用程序开发的一...

  • 后端开发:需要学习哪些技术?

    互联网行业发展至今,后端开发的职责早已不再是过去简单地围绕着数据库编排 CRUD(Create、Retrieve、Update、Delete)服务。很多时候,后端应用的第一行代码尚未写就,工程师便需要与产品、运营、法务等人员和网络...

  • 前端工程师,掌握哪个后端语言好一些?

    如果想快速掌握一门后端编程语言,而且未来想自己独立完成前后端的整体开发任务,那么PHP是不错的选择,一方面前端程序员学习PHP会更容易,另一方面PHP语言本身的开发技术体系比较成熟,有大量的案例可以参考。...

  • 网络开发语言之争:PHP与Python - 哪一种最适合Web应用程序?

    原文: PHP Vs Python: Which Is Best For Web Applications In 2021? 链接:...感谢开发优秀功能应用程序的web和移动应用程序开发公司。在构建移动或网络

  • 后端需要学习什么?

    后端需要学习什么? 后端程序员应该需要掌握编程语言、操作系统、数据库、服务器基础、计算机网络协议、数据结构 和算法、开发工具等相关的知识。 开篇声明:本文为尽可能追求专业、公证、准确、全面,以下内容部分...

  • 2022年最好用的后端框架有哪些?做开发的你一定要知道

    是的,网站和应用程序的质量会影响到结果,所以为网站和应用程序开发选择适当的后端框架至关重要。 框架已经成为 Web 开发的重要组成部分,可以帮助你开发出丰富多彩的交互式网站和 Web 应用。对于后端(服务器端)...

  • web前端开发和后端开发哪个难度大?

    因为涉及到的具体的应用的领域不同,所以说不能简单地说哪一个难,对于前端而言你会感觉到入门会非常的简单,这也是会给许多人一种错觉,前端很简单,但是只能说是在入门理解上是有利于新手的,前端在主要是在于网页...

  • 后端开发中常用的语言

    由于 C 语言所产生的代码运行速度与汇编语言编写的代码运行速度几乎一样,所以采用 C 语言作为系统开发语言。目前,C 语言是最广泛使用的系统程序设计语言。大多数先进的软件都是使用 C 语言实现的。 C++ 是 C 语言...

  • 聊聊开发中经历的几种后端语言

    前言 谈这个话题,没有任何语言之争,只是个人开发的经历。有时候的开发语言的选择也只是趋势的选择,

  • 前端开发和后端开发(java)都是干什么的?前端和Java那个好?

    前端开发和后端开发都是干什么的?有哪些区别?通俗地讲,前端干的工作是用户可以直接看得见的,而后端开发的工作主要在服务端,用户不太能直接看到。虽然前端开发和后端开发的工作有巨大的区别,但是他们的工作都是...

  • 编程语言应该如何选择?

      关于编程语言的选择,我一直认为你选择了什么样的编程语言,就会在以后大概率走上什么样的道路。如果你一开始就把编程语言选错了,你将会走许多弯路,最后不得不回到“正确的道路”。说到这,可能会有人反驳说:...

  • JAVA后端应该学什么技术?

    va语言是最常见的后端开发语言之一,Java语言由于自身具备构建多线程的能力,且体系结构比较中立,所以在大型互联网平台的开发中得到了广泛的采用。 目前要想从事Java的后端开发应该学习以下内容: 1 ...

  • 后端开发还不用 Java?!看完这篇文章你就知道自己错了!

    导言:java作为一种成熟且广泛应用的编程语言,被应用于创建桌面和移动程序、参与大数据处理、进行后端开发和对嵌入式设备进行编程等。其中后端开发是java应用最多的方向,而在后端开发中早已有多门语言在此厮杀,新...

  • 大红大紫的 Golang 真的是后端开发中的万能药吗?

    IT 行业不断盛行,2009 年诞生于 Google 的 Golang(Go 语言,简称 Go)越来越受到软件工程师的欢迎和追捧,成为如今炙手可热的后端编程语言。在用 Golang 开发的软件项目列表中,有 Docker(容器技术)、Kubernetes...

  • 后端开发基础能力以及就Java的主流开发框架介绍

    后端开发,以Java语言开发为例,需要熟悉的Spring ,SpringMVC,SpringBoot,MyBatis,Swagger,事务管理,路由,表单,中间件等知识点进行了解

  • 计算机是学前端开发好还是后端开发好?

    前后端是什么? 做前端还是后端? 这两者哪一个好? 这两者哪一个薪资更高? 这两者哪一个比较容易学? 这两者哪一个更有发展前景? Emmm,其实,想要在IT技术领域深耕下去,无论是前端还是后端,没有哪一个是容易的。 今天...

  • 小米15工程固件 可以用于修改参数 修复tee损坏 修复底层分区 会用的下载

    资源描述: 机型代码:dada 1-----工程固件可以用于修改参数 开启diag端口。可以用于修复tee损坏以及修复底层分区。 2-----此固件是完整官方。不是第三方打包。请知悉 3-----此固件可以解锁bl后fast模式刷写。也可以底层深刷。也可以编程器写入 4-----请会用此固件 了解工程固件常识以及会用的朋友下载。 5-----个别高版本深刷需要授权才可以刷入。需要自己会刷写。 6------资源有可复制性。下载后不支持退。请考虑清楚在下载哦 工程资源常识可以参考博文:https://blog.csdn.net/u011283906/article/details/141815378 了解基本

Global site tag (gtag.js) - Google Analytics