阅读更多
近日,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 条 请登录后发表评论
69 楼 小叮当 2012-08-10 13:59
引用
我会选择Java来开发核心功能,对于一些非核心功能,我可能会选择Groovy或JRuby。
这也是我的选择,不过我会把Jruby换成Grails
68 楼 fjjiaboming 2012-08-10 13:37
ldbjakyo 写道
fjjiaboming 写道
ldbjakyo 写道
Scala lift 没有上榜...

还没有大规模应用.

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

是的. 后端大量用scala .
scala 大量的API, 由twitter团队贡献!
67 楼 liupopo 2012-08-10 13:10
liguocai2009 写道
icewubin 写道
归根到底是语言运行环境的内存管理能力的大小,这个能力包括稳定性、性能、多核利用率、多线程模型,只有JVM满足这个要求,其他的基本都属于小儿科。

只有JVM。。。


我感觉也是只有JVM。
66 楼 lingqi1818 2012-08-10 10:34
无所谓,能更快的满足需求,分析问题,解决问题,并且符合你目前团队的情况就好了。
65 楼 liguocai2009 2012-08-10 10:20
icewubin 写道
归根到底是语言运行环境的内存管理能力的大小,这个能力包括稳定性、性能、多核利用率、多线程模型,只有JVM满足这个要求,其他的基本都属于小儿科。

只有JVM。。。
64 楼 icewubin 2012-08-10 10:08
归根到底是语言运行环境的内存管理能力的大小,这个能力包括稳定性、性能、多核利用率、多线程模型,只有JVM满足这个要求,其他的基本都属于小儿科。
63 楼 ehilcoder 2012-08-10 08:35
在开发过程中,引入新东西,注定要承担一定的风险。
62 楼 iceofst 2012-08-09 18:48
熟悉什么使用什么,特别是对于大项目而言,任何一门语言,如果你不熟悉,就不要使用
61 楼 ldbjakyo 2012-08-09 18:37
fjjiaboming 写道
ldbjakyo 写道
Scala lift 没有上榜...

还没有大规模应用.

Twitter 是 Scala 搞的, 至少并发处理挺大的,处理数据量也挺大的...
60 楼 半人马 2012-08-09 15:47
fjjiaboming 写道
ldbjakyo 写道
Scala lift 没有上榜...

还没有大规模应用.


对你来说,LinkedIn不够大?
59 楼 fjjiaboming 2012-08-09 14:18
ldbjakyo 写道
Scala lift 没有上榜...

还没有大规模应用.
58 楼 achun 2012-08-09 13:43
在大型的网站,再复杂的业务也是分治的,如果不是分治那不可想想,所以我理解应该从数据量大的角度考虑,
如果数据量大,这些脚本包括JAVA貌似都不适合,C/C++,或者是在原有脚本或者JAVA基础上挂接 native 代码或者对应的优化引擎才是最终的办法。
网站确实有大型的,但是代码不应该有,因为分治了。
57 楼 wang1352083 2012-08-09 13:04
后台支持java.前台用php
56 楼 ldbjakyo 2012-08-09 13:03
Scala lift 没有上榜...
55 楼 Shakesbeer168 2012-08-09 10:43
有的,WT Web Kit: http://www.webtoolkit.eu/

cntjfaj 写道
leetan 写道
有没有C++的?可以开发吗?

前提是WEB.C++?web?
54 楼 linliangyi2007 2012-08-09 09:31
这种贴就沉了吧~~

又要展开10年前的语言之争么?

好吧,我选java,只因为我熟悉它!
53 楼 cntjfaj 2012-08-09 09:28
leetan 写道
有没有C++的?可以开发吗?

前提是WEB.C++?web?
52 楼 bbyyzhang 2012-08-09 08:54
刚接触ruby不久,不过从公司的应用在服务器运行的情况来看,ruby要比Java耗用更多的内存,性能要低很多。ruby应付需求变化方面确实很好,不过在分层,分工上就差了,比如sql都混在代码中,dba审核都是问题。
51 楼 leetan 2012-08-09 07:56
有没有C++的?可以开发吗?
50 楼 fjjiaboming 2012-08-08 20:18
Python 叫生态系统,, 我笑了...

生态系统 唯有JAVA算的上. JVM的加大, JAVA的稳定.
性能和开发,培训的平衡.

未来我会考虑Scala/JVM.

发表评论

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

相关推荐

  • 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技术领域深耕下去,无论是前端还是后端,没有哪一个是容易的。 今天...

  • 《永磁无刷直流电机控制系统与软件综合研究-集成电机计算软件、电机控制器及电磁设计软件的创新设计与实践》,永磁无刷直流电机计算与控制软件:高效电机控制器与电磁设计工具,永磁无刷直流电机计算软件,电机控

    《永磁无刷直流电机控制系统与软件综合研究——集成电机计算软件、电机控制器及电磁设计软件的创新设计与实践》,永磁无刷直流电机计算与控制软件:高效电机控制器与电磁设计工具,永磁无刷直流电机计算软件,电机控制器,无刷电机设计软件,电机电磁设计软件 ,永磁无刷直流电机计算软件; 电机控制器; 无刷电机设计软件; 电机电磁设计软件,无刷电机设计专家:永磁无刷直流电机计算与控制器设计软件

Global site tag (gtag.js) - Google Analytics