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

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

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

数据后端工程师需要掌握的后端语言有多种,以下是一些常见的后端语言及其特点和适用场景: - **Java**:Java 是大厂主流选择,基于 Spring 生态和微服务架构,适合开发大型项目的后台,工作需求大,但学习需要花费较多精力和时间,从业人数也较多 [^1][^2][^5]。 - **Python**:Python 有 Django 和 Flask 等框架,适合快速开发,其代码简洁易读,能提高开发效率,同时在数据处理、机器学习等领域也有广泛应用 [^1][^5]。 - **Node.js**:为前端转全栈提供了途径,基于 JavaScript 运行在服务器端,可实现前后端使用相同的编程语言,适合构建实时性要求较高的应用,如实时聊天、在线游戏等 [^1][^2]。 - **PHP**:轻量级开发语言,适合开发论坛和 BBS 等的后台,易于上手,开发效率较高,在 Web 开发领域有很长的应用历史 [^2]。 - **Go**:作为新兴势力,在高并发和云原生场景中表现出色,具有高效的并发处理能力和较低的资源消耗,常用于构建分布式系统和网络服务 [^5]。 - **C++**:常用于游戏、金融等对性能要求极高的领域,能处理高性能场景,但学习难度较大,对开发者的编程能力要求较高 [^5]。 - **ASP.NET**:由微软提出的开发后台的技术,不过过去跨平台特性不佳,但微软也在进行跨平台方面的改进 [^2]。 ### 代码示例 以下是几种后端语言的简单示例: **Java(Spring Boot 示例)** ```java import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @SpringBootApplication @RestController public class Application { @GetMapping("/") public String hello() { return "Hello, World!"; } public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` **Python(Flask 示例)** ```python from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, World!' if __name__ == '__main__': app.run() ``` **Node.js(Express 示例)** ```javascript const express = require('express'); const app = express(); app.get('/', (req, res) => { res.send('Hello, World!'); }); const port = 3000; app.listen(port, () => { console.log(`Server running on port ${port}`); }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值