• 请不要在回答技术问题时复制粘贴 AI 生成的内容
only0jac
V2EX  ›  程序员

最方便的后端语言?

  •  
  •   only0jac · May 17, 2016 · 29953 views
    This topic created in 3821 days ago, the information mentioned may be changed or developed.

    (最方便指各方面,包括但不限于部署、重构等......)

    其实我觉得最方便的是以二进制方式运行,像 Java ,.Net ,奈何 Java 感觉个人开发者无力玩耍,.net 现在在 Linux 下还不是很方便;

    Python ? 3 还是 2 ?以我的角度来说还是 3 用的多, Linux 上又是自带 2.6 或 2.7 ,部署时又得编译 Python3 环境,又得安装 virtualenv ,就这个得折腾不少时间;

    golang 不太清楚,还请老司机带路;

    OK ,我知道 php 是最好的语言了;

    还有其他的吗?

    Supplement 1  ·  May 17, 2016

    提示我回复频繁,需要等1800s......

    在写这帖子之前,我比较喜欢的是Python和golang,前面也说了,Python部署实在是略繁琐,但是不得不说,开发效率真的是高的吓人;

    golang略微看过一些语法,是丑,但是静态类型又是我比较喜欢的,所以想入golang;

    今天看了新闻说.net core的稳定版要发布了,目前只是观望下,不想吃螃蟹;

    看回复的童鞋很多推荐golang的,希望能说明下到底“浪”在哪里,另外,大家都知道它支持并发比较好,谢谢!

    145 replies  •  2016-05-25 10:18:04 +08:00
    1  2  
    ❮ ❯
    murmur
    murmur
    May 17, 2016
    1
    这把 java 黑的没边了 java 至少不会让你每次部署的时候还要 jpm install 几百兆的 java_modules 也不会说要你安装 cjpm 因为 jpm 国内太卡了 你把项目给谁用直接丢一个 war 包给他就好了。。还有比这更简单的部署么
    php 是最好的语言+1
    GhostEX
    GhostEX
    May 17, 2016
    2
    还用说么 php 是最好的后端语言
    only0jac
    only0jac
    OP
    May 17, 2016
    3
    @murmur 我并没有黑 Java:),只是提到 Java 总和工业级联系到一起,且很不喜欢各种配置文件
    murmur
    murmur
    May 17, 2016
    4
    @only0jac java 那一套框架可以让一群弱智级的程序员再一起都能搞出点东西来 因为大框架被限制的死死的 所以随便找一个人来都能接手
    个人的话直接网上抄配置文件用就完了
    唯一的黑点是热部署 没事重启 tomcat 玩受不了
    only0jac
    only0jac
    OP
    May 17, 2016
    5
    @GhostEX 知道知道,但是还想知道有没有这么一种解决方案:写完代码后生成二进制文件,往服务器一扔, nginx 做个代理后直接跑
    lightening
    lightening
    May 17, 2016❤️2
    6
    @only0jac 本来想说 Ruby 的,但是你说要生成二进制文件,那,要么试试 Elixir ?
    LaoK666
    LaoK666
    May 17, 2016❤️1
    7
    node.js ?最近一直在撸 React 不知道用作后端怎么样...
    falood
    falood
    May 17, 2016❤️1
    8
    @lightening 没想到在第一页就能看到 elixir ,顶一下 :D
    bobuick
    bobuick
    May 17, 2016
    9
    golang 虽然丑是丑了点, 槽点也很多。不过用来做工程, 还是不错的
    odirus
    odirus
    May 17, 2016
    10
    用了很久的 PHP , Python ,现在终于用上了 Java ,突然发现一身轻松。和大多数人的观点相反。
    only0jac
    only0jac
    OP
    May 17, 2016
    11
    @lightening 挺小众的,可以看看,谢谢!
    only0jac
    only0jac
    OP
    May 17, 2016
    12
    @wangxkww 之前在 V 站看过这么句话,大体意思是“ nodejs 是老板想让前端多干点活的产物”,没有黑的意思, js 感觉做前端就很棒了,后端有点。。。悬
    7jmS8834H50s975y
    7jmS8834H50s975y
    May 17, 2016
    13
    java + jsp 这个搭配 没人用了吗?难道 jsp 现在这么不受欢迎?
    jimzhong
    jimzhong
    May 17, 2016
    14
    python3+venv 挺好
    murmur
    murmur
    May 17, 2016❤️1
    15
    @wsdjeg 可能大家都习惯说 springmvc 了吧 不过 springmvc 的 v 层还是 jsp 啊 只不过标签库更体贴了
    sun522198558
    sun522198558
    May 17, 2016
    16
    php 是最好的后端语言
    lbp0200
    lbp0200
    May 17, 2016
    17
    那就是 Go 语言了,打包完,就一个可执行文件。
    subpo
    subpo
    May 17, 2016
    18
    最方便 ruby 咯
    zwh8800
    zwh8800
    May 17, 2016
    19
    真心推荐 golang
    caoyue
    caoyue
    May 17, 2016❤️1
    20
    有
    Erlang
    打包完了扔上去就能运行
    reeco
    reeco
    May 17, 2016 via iPhone
    21
    @murmur jsp 只是其中一种
    Cifery
    Cifery
    May 17, 2016❤️1
    22
    @lightening 顶 elixir
    cheneydog
    cheneydog
    May 17, 2016
    23
    稳定需求-java
    频繁修改-python
    前端-js
    足以
    XIVN1987
    XIVN1987
    May 17, 2016
    24
    @only0jac
    这话很扯,反正每天都工作那么长时间, nodejs 怎么让前端多干活儿??
    m8syYID5eaas8hF7
    m8syYID5eaas8hF7
    May 17, 2016
    25
    @murmur 可以换成其他模板引擎的,我们用 beetl 比较多,国人开发的,语法简单,效率比 jsp 高 2-3 倍。
    或者换成其他模板引擎也可以,不过我没用过
    roricon
    roricon
    May 17, 2016
    26
    Python 部署是挺烦, 但有 Docker 呀.
    hooluupog
    hooluupog
    May 17, 2016
    27
    node.js 或者 Go 。
    likezun
    likezun
    May 17, 2016
    28
    简单,高效,好用 ,即是真理 ( 当然也能玩得复杂)—— php 就是这样的后端语言
    haozhang
    haozhang
    May 17, 2016 via iPhone
    29
    java 的话试试 play framework
    wubotao
    wubotao
    May 17, 2016
    30
    PHP/Node
    wobuhuicode
    wobuhuicode
    May 17, 2016
    31
    Node + PHP 的路过……
    Kabie
    Kabie
    May 17, 2016
    32
    不吹不黑……要比方便…… elixir 还是很不错的。。。
    imcxy
    imcxy
    May 17, 2016❤️1
    33
    你既然说的是个人开发者,关键点就是你说的:环境。

    如果你对 Linux ,环境部署不熟悉, linux 搭建 10 分钟,但是要维护可不是 10 分钟可以解决的。。你难道搞到最后要去研究 Linux 搞运维?


    至于大家最喜欢谈的“简单”的 PHP
    现在的 PHP 真的简单?以前的简单,是因为大量应用是直接嵌入 HTML,直接 echo echo 简直所见即所得啊,确实很简单!
    但是现在 PHP 都跟 JAVA 一样了,都是“应用程序”,那么 PHP 的优点已经用不到了,为啥还要用 PHP 呢。


    所以根据你的情况,你部署环境都觉得麻烦的话,我建议你搞.NET 。
    stone1342006
    stone1342006
    May 17, 2016❤️1
    34
    py 部署麻烦, golang 运行效率高, 支持高并发, 多路复用不要太简单, 同时可以以正常的同步逻辑写异步的操作,再也不用写 callback 了^_^, 不过 gc 偏弱,大内存应用有很多需要优化的工作
    NullMan
    NullMan
    May 17, 2016❤️4
    35
    真心看不惯带人身攻击的评论(如 @murmur). 什么叫弱智级程序员随随便便都能玩 Java 了? 既然 Java 是弱智级别的人都能玩, 这说明什么? 说明 Java 是一门优秀的编程语言, 那些要绕着坑进行编程的语言, 简直就是垃圾语言!
    luulsj
    luulsj
    May 17, 2016
    36
    A goods programming language is one that helps programmers write goods programs.
    No programming language will prevent its users from writing bad programs.
    摘自《 Thinking in Java 》
    zonghua
    zonghua
    May 17, 2016 via iPhone
    37
    @murmur 用 velocity
    JamesRuan
    JamesRuan
    May 17, 2016
    38
    用 Go 也得有够经验。
    ouafukqk
    ouafukqk
    May 17, 2016
    39
    什么 “扔一个二进制到服务器上就能跑” ,都是骗小孩的

    希望你可以尝试用一个二进制文件来做服务器调优,我将佩服你的勇气
    MushishXian
    MushishXian
    May 17, 2016
    40
    golang 的确扔上去就可以跑.....
    answeryou
    answeryou
    May 17, 2016
    41
    Ruby 吧
    ooTwToo
    ooTwToo
    May 17, 2016 via iPhone
    42
    @murmur v 可以是 thymeleaf 、 jade 、 freemarker 、 velocity 等等。。不止 JSP 一种。闲配置麻烦直接上 play ?或者 springboot 。闲语法啰嗦直接换 Python ? PHP ?
    timothyye
    timothyye
    May 17, 2016 via Android
    43
    是时候祭出我大 Golang 了
    leitwolf
    leitwolf
    May 17, 2016
    44
    golang 好,就一个文件,生成多平台执行文件简单,多线程也很好。
    jhdxr
    jhdxr
    May 17, 2016
    45
    @imcxy 如果 php 的优点只是因为能直接 echo 网页内容的话那你也太小看 php 了,或者反过来说大部分语言都可以直接输出内容啊。现在之所以不再提倡这么混着写不正是因为分工逐步细化,前后端分离么

    另外 php 最大的优点不应该是修改了直接就能跑不需要重新编译 /部署么。。。还有 php 的数组真的很好用。。。居然完全不提这两点只说一个 echo (而且我觉得这从来不算优点, jsp 也可以很方便的实现类似特性),你真的用 php 写过除了 hello world 以外的东西么
    icaca
    icaca
    May 17, 2016
    46
    @haozhang play1 很不错!
    ChiangDi
    ChiangDi
    May 17, 2016 via Android
    47
    部署是运维做的事,跟语言有什么关系,不管你用啥语言都是公司运维去部署的啊
    sox
    sox
    May 17, 2016 via Android
    48
    golang / node.js
    hayao650
    hayao650
    May 17, 2016 via Android
    49
    @NullMan 他的意思是弱智都可以玩儿,不是玩儿的人都是弱智…
    Soar360
    Soar360
    May 17, 2016
    50
    当然是 PHP 啊。
    imcxy
    imcxy
    May 17, 2016
    51
    @jhdxr 我说的 echo 后面有 所见所得 4 个字。已经包含了你说的一堆了。

    几句话,没法强调方方面面。没法强调数组这个好用的部分,也没必要,又不是写论文,举了个典型的例子而已。我只是强调了其实有更多更好的。。

    另外,真的没用过 PHP 写过除了 hello world 以外的东西,以外的东西话有太多更好的。这就是我要说的那个意思。
    willchen
    willchen
    May 17, 2016 via iPhone
    52
    那就是 golang 了
    only0jac
    only0jac
    OP
    May 17, 2016
    53
    @bobuick 语法确实挺别扭,“不过用来做工程, 还是不错的”,请问这个“做工程”是什么意思?
    only0jac
    only0jac
    OP
    May 17, 2016
    54
    @odirus 这是什么意思? java 反而轻松?用 java 做 android 的话我到认可,说他的语法什么的我也认可,但是要说到个人开发的话。。。不咋地。
    only0jac
    only0jac
    OP
    May 17, 2016
    55
    @jimzhong 3 配合 env 相当好,要是不配合 env 能直接上就更好了
    kikyous
    kikyous
    May 17, 2016
    56
    ruby
    only0jac
    only0jac
    OP
    May 17, 2016
    57
    @MushishXian python 需要安装 uwsig 或 gunicorn 之类的服务器, golang 不需要?打包好直接运行???
    SPACELAN
    SPACELAN
    May 17, 2016
    58
    node, 写完用 nexe 编译成二进制(其实就是编译一个嵌入了自己代码的 node ),然后直接跑

    不过 node 编译和运行对 GCC 版本和一些运行库版本要求比较高
    only0jac
    only0jac
    OP
    May 17, 2016
    59
    @ChiangDi 公司的当然无所谓,大部分程序员还是想自己做点东西吧,做了东西总得部署上去“炫耀炫耀”吧
    murmur
    murmur
    May 17, 2016
    60
    @only0jac 你去看看 java 的生态链 不仅是轮子给你造好了 还有上好的跑车拿来就开 比如 elasticsearch (喜欢折腾的可以降到 lucene )
    而且 springmvc+mybatis 也可以能省就省, mapper 直接进 controller ,拿掉 service 层(我没试过但是自动注入应该不区分是 controller 还是 service 吧~),然后 mapper 的 xml 也省掉直接 sql 写到注解上,路径直接对项目进行扫描,然后就是全注解开发了
    最重要的是这一堆都可以网上找到例子,抄一次下次再抄不会超过 30 分钟
    小项目大框架,大项目小框架,但是 java 除外,一个 springmvc+mybatis 基本可以配任何东西
    Comdex
    Comdex
    May 17, 2016
    61
    golang 咯,语法丑这个理由见仁见智,不习惯的都觉得丑
    6IbA2bj5ip3tK49j
    6IbA2bj5ip3tK49j
    May 17, 2016 via Android
    62
    java 其实部署也简单,用 spring boot 一类的生成 fat jar ,直接 java -jar 运行。
    JamesRuan
    JamesRuan
    May 17, 2016
    63
    第一次听说 Java 部署简单的……

    装个环境一天就没有了,相对的, Erlang , Golang 之类的 10 分钟。
    msg7086
    msg7086
    May 17, 2016
    64
    我只知道各大动态语言都自带不熟工具。
    你自己做不了运维的话就招人做咯,运维又逃不掉的。
    看似最简单的 Windows 下双击运行,其实运维工作量都比 Linux 要大的。
    wangxiyu191
    wangxiyu191
    May 17, 2016
    65
    @only0jac golang 标准库里有 http 包,可以直接作为 http 服务器。编译好之后扔上去运行就 OK 了。不需要 uwsig 之类的。
    wdhwg001
    wdhwg001
    May 17, 2016 via iPhone
    66
    咦居然没有 meteor 么?
    murmur
    murmur
    May 17, 2016
    67
    @JamesRuan 我的感觉是入坑越简单后期越要加倍偿还, java 部署也不难啊,装 jdk ,绿色安装 tomcat , war 包扔进去最多把 perm 和 heap 改大点就跑起来了
    出了性能问题还有优可以调 调优都没法调的。。后期就只能哭了
    Reficul
    Reficul
    May 17, 2016
    68
    写 Go 的路过,最近在看 Groovy , JAVA ,感觉到了蛋疼
    junweiyang
    junweiyang
    May 17, 2016
    69
    golang 推荐
    niuroumian
    niuroumian
    May 17, 2016
    70
    golang or kotlin+spring boot
    only0jac
    only0jac
    OP
    May 17, 2016
    71
    @wangxiyu191 python 也自带 http 服务器呀,不是说自带的没法用在生产环境中么
    Lelouchcr
    Lelouchcr
    May 17, 2016
    72
    python 部署可以配置一个 ansible
    only0jac
    only0jac
    OP
    May 17, 2016
    73
    @roricon docker 确实好,肯定得学学,但是,多个 python web 项目部署到一个 docker 还是多个 docker ?
    common07
    common07
    May 17, 2016 via Android❤️1
    74
    @only0jac 肯定是一个啊,你赶快去看看 docker 基本概念吧
    free9fw
    free9fw
    May 17, 2016
    75
    没人说 swift 吗
    only0jac
    only0jac
    OP
    May 17, 2016
    76
    @Lelouchcr 你个人在部署项目时都用这个么。。。
    mengzhuo
    mengzhuo
    May 17, 2016
    77
    Golang
    深入了解后才能理解“重剑无锋”
    common07
    common07
    May 17, 2016 via Android
    78
    @free9fw swift 的 web server 还不稳定貌似
    only0jac
    only0jac
    OP
    May 17, 2016
    79
    @common07 及其 Nice :)
    only0jac
    only0jac
    OP
    May 17, 2016
    80
    @mengzhuo 让你们把 golang 说的好神,不看不行了
    Lelouchcr
    Lelouchcr
    May 17, 2016
    81
    @only0jac 是的 = =, 一部分老的还用 fabric ,新的都用 ansible 了
    kanezeng
    kanezeng
    May 17, 2016
    82
    @JamesRuan 说简单指的是 spring boot 吧,确实简单啊,一个空系统,有 JRE ,直接 java -jar 把包跑起来就可以开始提供服务了,其他什么都不需要配了。
    QuantumCore
    QuantumCore
    May 17, 2016 via Android
    83
    编程语言一般是没有好坏之分的,只有用得好不好,是不是在恰当的环境中使用了合适的编程语言。像 PHP 和 Node.js 区别就很大。比如部署方式不同,编程思想有差异,但也能互相弥补,(像 MediaWiki ,新浪、腾讯、百度的一些应用,都是各种语言混搭的。
    yangxin0
    yangxin0
    May 17, 2016 via iPhone
    84
    居然没有人说 jruby , java 和 Scala 库随意调,还有 rails 这种快速开发框架
    flikecn
    flikecn
    May 17, 2016 via iPhone
    85
    首推 Go
    quietin
    quietin
    May 17, 2016
    86
    流量小 php, 流量超大 java
    redvoilin
    redvoilin
    May 17, 2016
    87
    ruby
    wangxiyu191
    wangxiyu191
    May 17, 2016❤️1
    88
    @only0jac 但是 go 的 http 服务器的性能足够在生产环境用。可以去搜下各种 benchmark
    limbo0
    limbo0
    May 17, 2016
    89
    始祖 ruby on rails
    aias
    aias
    May 17, 2016
    90
    感觉 Go 不错(没用过)。
    生命苦短,我用 python 。
    hanxiV2EX
    hanxiV2EX
    May 17, 2016 via iPhone❤️1
    91
    Lua
    GPU
    GPU
    May 17, 2016
    92
    其实 C# 能不能运行在 unix-like 的环境 , 我看见很多手机服务单用 C# 写的.
    himulawang
    himulawang
    May 18, 2016❤️1
    93
    go, 性能好。 部署方便。推荐。
    E2gCaBAT5I87sw1M
    E2gCaBAT5I87sw1M
    May 18, 2016
    94
    Ruby on Rails
    jsq2627
    jsq2627
    PRO
    May 18, 2016
    95
    .net core 还值得再观望半年再入手。
    一直在关注, rc1 和 rc2 其实已经相当于 1.0 到 2.0 这样级别的区别,很多核心系统都发生了变化。虽说 6 月底出 RTM ,但是目前个人觉得 RTM 之后不排除发生重大特性变化的情形。
    frogcjn
    frogcjn
    May 18, 2016
    96
    TypeScript 编译成 Javascript ,所以可以用 Node

    毕竟现在开始流行 Javascript 移动端方案
    frogcjn
    frogcjn
    May 18, 2016❤️1
    97
    其实还是看你情况,每个方案都不是最好的,只能说某些维度好。

    当初觉得 JS 没有类型写不惯差点放弃 Node.js ,后来知道有 TypeScript 。所以现在打算 TypeScript+Node.js+Express
    Ruby 那个语法一看就不太想用...让我想起了 VB...Ruby 的话就是 RoR 还有 Sinatra
    Python 其实已经不错了, Python 3 和 2 区别不大。 Python3 的支持, Py2/3 中可以选择 Python3 。 Python 推荐 Flask , Django 我是看不进去,要学的东西太多。

    结合自己的需求选择。

    Swift 的话,现在 Swift 十分不稳定, Swift3 之后还有 Swift4 ,说 Swift 要自重,感觉这门语言要被苹果玩坏。 Swift 写后端纯属写着玩, Swift3 目前的最新版本, Linux 代码和 OS X 上代码有些地方写法需要改变,坑不是一般的多哦(框架有 Zewo , IBM 的 Hikura , Perfect ,都还年轻,都会有坑的)。
    frogcjn
    frogcjn
    May 18, 2016
    98
    但论语言的话, TIOBE Index May 2016 : http://www.tiobe.com/tiobe_index
    Go 排名 42 , Swift 排名 15 , Ruby 排名 8 , Javascript 排名 7 , PHP 排名 6 , Python 排名 5 , C#排名 4 , Java 排名 1

    Go 排名*非常非常*靠后,原因也很简单,除了后端, Go 基本没应用在其他领域。实际上 Go 的真实位置应该是相当于后端的 C , C++这种感觉,看了一下语法感觉就是这样,毕竟没法直接用 C/C++写后端...

    选一门语言能够跨移动端、 Web 前端,后端跨界,唯有 JS 了吧。(之前勉强做到这点 ActionScript 已卒,排名 50 靠后)
    YUX
    YUX
    May 18, 2016 via iPhone
    99
    我用 Python, 2 或 3 都行主要看你用的包的支持 一律用 Docker 部署
    julor
    julor
    May 18, 2016 via Android
    100
    如果把重构考虑进去,动态需要可能会有坑。剩下 java 和 golang ,看看你的需求。推荐 golang ,部署简单:编译后就是执行文件,可以非常轻松高并发。考虑到第三方包不支持的情况下采用 java 。


    楼主真的不要信全栈,你敢用前端来写 nodejs 准备好插屁股!接触过几个 javaweb 完全限制在几个框架,笑称 java 是面向框架编程。
    1  2  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4404 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 224ms · UTC 05:41 · PVG 13:41 · LAX 21:41 · JFK 00:41
    ♥ Do have faith in what you're doing.