V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
only0jac
V2EX  ›  程序员

最方便的后端语言?

  •  
  •   only0jac · 2016-05-17 16:30:44 +08:00 · 27234 次点击
    这是一个创建于 3111 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    还有其他的吗?

    第 1 条附言  ·  2016-05-17 17:22:30 +08:00

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

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

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

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

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

    145 条回复    2016-05-25 10:18:04 +08:00
    1  2  
    h4x3rotab
        101
    h4x3rotab  
       2016-05-18 07:37:13 +08:00 via iPhone   ❤️ 1
    都试一遍不就知道了,不同情况下显然不同的语言和框架适用程度不一样。
    julor
        102
    julor  
       2016-05-18 07:42:19 +08:00 via Android   ❤️ 1
    golang 约等于 nodejs(io 类高并发)+python(高效的编码)+c(高性能)
    ayaseangle
        103
    ayaseangle  
       2016-05-18 07:50:57 +08:00
    楼主缺铜币了吧。。
    only0jac
        104
    only0jac  
    OP
       2016-05-18 08:24:25 +08:00
    @ayaseangle 每次回复多的帖子总有几个说铜币的,我就想问铜币多了能兑换 RMB 还是咋着?你真无聊,“请尽量让自己的回复能够对别人有帮助”
    only0jac
        105
    only0jac  
    OP
       2016-05-18 08:31:56 +08:00
    @h4x3rotab 确实是这样,但是但是但是,都试一遍的话先不说花费多少时间,都试一遍,我觉得深入了解的可能性不大(对我来说,不排除有大牛真能精通),熟悉一种框架的优劣我觉得最好的办法就是多一些项目,在项目中解决碰到的问题,再加上我也不小了,不跟上学时一样,想到什么折腾什么,没那么多时间呀,不过还是谢了!
    only0jac
        106
    only0jac  
    OP
       2016-05-18 08:35:33 +08:00
    @quietin 个人的小项目而已,不超大, php 的语法我真是觉得超无语,定义变量不懂为什么用$,语法让我觉得很别扭(勿喷,一点点看法而已,不引战)
    only0jac
        107
    only0jac  
    OP
       2016-05-18 08:37:32 +08:00
    @wangxiyu191 搜了下 benchmark ,原先还是为是个 http 服务器,原来是性能测试的?感谢!
    only0jac
        108
    only0jac  
    OP
       2016-05-18 08:43:25 +08:00
    @frogcjn 我是 c 开始入的坑, Java 和 c#这种类 c 的语法看起来很舒服,像 go 和 ruby 我是真心觉得不习惯,现在一直在用 Python3 ,部署略繁琐,像 @YUX 说的一样,一律 docker 可能会好很多,真心喜欢 Python ,除了它的变量不声明类型:)
    jinsongzhao
        109
    jinsongzhao  
       2016-05-18 09:08:02 +08:00 via Android
    看了这么多回复,突然发现我想说 C++!就无人知晓它也是强力后端语言吗?排名里它可从未出过前 5 ,何况已经醒悟, boost 要被认可了,回血是必然的。
    ayaseangle
        110
    ayaseangle  
       2016-05-18 09:18:36 +08:00
    @only0jac 你先看看你自己的帖子是不是很像月经贴。。。。
    siteshen
        111
    siteshen  
       2016-05-18 09:27:08 +08:00   ❤️ 1
    常年 *ix 环境开发,无视 .net ,对 java 这种大部头的语言无感。
    我选择 python3 , python 库丰富,绝大部分库已支持 python3 。主流操作系统都能方便的安装,搭上 jinja2 做个网页也比较轻松。
    用 go1.2 写过 API ,调用通用接口时,需要类型转换比较麻烦,和 python 相比有被束缚的感觉。
    jindian
        112
    jindian  
       2016-05-18 09:32:28 +08:00
    C++呗
    only0jac
        113
    only0jac  
    OP
       2016-05-18 09:35:32 +08:00
    @jinsongzhao
    @jindian
    C++岂是一时半会能玩熟的呀
    only0jac
        114
    only0jac  
    OP
       2016-05-18 09:36:26 +08:00
    @siteshen 别无视.net 呀。.net 已跨平台了,我现在也在用 py3 ,是很舒服
    archer2ee
        115
    archer2ee  
       2016-05-18 09:38:04 +08:00
    java 狗已经 go 在路上~
    jindian
        116
    jindian  
       2016-05-18 09:54:56 +08:00
    @only0jac 玩熟了就不用纠结什么语言类型了,自由自在,专注解决内存 break 和并发问题就行了。当然,现在还不熟的再去学花的时间略多,在上手速度上不能和 python 、 go 比
    chenxytw
        117
    chenxytw  
       2016-05-18 09:58:42 +08:00
    玩 Python 当然用 arch 呀,当前版本自带 3.5 ,爽爽的,逃,,,,
    Azone
        118
    Azone  
       2016-05-18 10:57:40 +08:00
    Swift
    jhdxr
        119
    jhdxr  
       2016-05-18 11:01:20 +08:00
    @only0jac php 变量的$命名其实用多了绝对是个好处,因为任何名字都可以拿来命名变量了,不用担心和保留字冲突了。另外还有一种神奇(但是并不推荐,用了导致代码可读性降低)的用法
    ```
    $a = 1;
    $b = 'a';
    echo $$b; //a

    $a = 'foo';
    function foo(){ echo 123; }
    $a(); //123
    ```
    roricon
        120
    roricon  
       2016-05-18 11:04:05 +08:00
    @common07 我个人觉得多个 web 项目是要 build 成多个 image, 然后通过 link (compose) 的方式来一起运行. 如果项目过于复杂, 可能还要借助于 Swarm, Kubernetes, Rancher 这样的解决方案.
    wqchen
        121
    wqchen  
       2016-05-18 11:07:50 +08:00
    Go 真心觉得挺丑,但习惯了就好
    Python->flask
    Web Server->Nginx+gunicorn
    Envirement config->virtualenv
    Devops->fabric or ansinble
    only0jac
        122
    only0jac  
    OP
       2016-05-18 11:30:35 +08:00
    @wqchen 没看懂 ansinble 这东西怎么玩。。。求教!
    baozijun
        123
    baozijun  
       2016-05-18 11:42:03 +08:00
    扔一个二进制到服务器上就能跑...23333,楼主肯定是没做过稍微大点的 web 项目
    lygmqkl
        124
    lygmqkl  
       2016-05-18 13:35:53 +08:00
    6 年+ phper ,今年下半年预留了时间初步学习下 golang
    6rzgeek
        125
    6rzgeek  
       2016-05-18 14:23:47 +08:00
    没看到有人说 Rust ,可以观望一下
    优点是静态类型,特有的 lifetime 能够在编译阶段发现大部分错误,语言的运行速度还可以,自带模块系统
    缺点是发展不久,各种轮子不多,写一些底层的轮子还是得用 unsafe
    dworld
        126
    dworld  
       2016-05-18 15:15:38 +08:00
    推荐 Go, 简单、并发,开发、编译、运行都快
    chocotan
        127
    chocotan  
       2016-05-18 16:20:28 +08:00
    spring 很早就支持用注解配置了, xml 都不需要的,最近的 spring-boot 更是简化了配置
    servlet3.0 开始就支持 servlet 和 filter 等的注解配置,不需要 web.xml 的

    说配置环境要一天的,你是初学者么
    stormpeach
        128
    stormpeach  
       2016-05-18 17:50:55 +08:00
    c++和 rust 开发 web 后端还是略吃力的
    miaoxinwei
        129
    miaoxinwei  
       2016-05-18 19:34:53 +08:00
    @murmur v 层可以用 thymeleaf 转 html
    wujunze
        130
    wujunze  
       2016-05-18 19:39:43 +08:00
    PHP 最方便
    zzlettle
        131
    zzlettle  
       2016-05-18 20:03:49 +08:00
    HTNecro
        132
    HTNecro  
       2016-05-18 20:17:22 +08:00
    Java 狗准备玩 Kotlin
    jinsongzhao
        133
    jinsongzhao  
       2016-05-18 20:41:01 +08:00 via Android
    @archer2ee 你这风险大大的, go 出生好,基础好,可是生不逢时。前后夹击的语言一窝蜂出来了。
    archer2ee
        134
    archer2ee  
       2016-05-18 21:59:56 +08:00 via iPhone   ❤️ 1
    @jinsongzhao 确实 go 目前在国内应用不是特别广泛,印象中就七牛用它作为主要语言。不过我学习 go 主要是理解下它在并发和性能上的优点。主力开发还是 java 哈。
    lilydjwg
        135
    lilydjwg  
       2016-05-18 22:07:57 +08:00   ❤️ 1
    Go 是静态类型。不过你竟然喜欢 Go 的静态类型?那你喜不喜欢 C 的静态类型呢?

    喜欢静态类型和编译期检查的话,建议你去找门使用 ADT 类型系统的语言品尝一下。我品尝过的: Haskell 、 OCaml 、 Rust 。不过各有些明显的缺点: Haskell 是 FP 并且涉及一些晦涩的数学; OCaml 库和文档太少; Rust 生命期是个好东西,但是为 ADT 而去的话却又不得不花精力去对付它。
    lilydjwg
        136
    lilydjwg  
       2016-05-18 22:08:55 +08:00
    @julor Go 的性能比 C 比差不少吧。当然比 Python 好多了。我再也不想用 Python 写对性能敏感的程序了 :-(
    tSQghkfhTtQt9mtd
        137
    tSQghkfhTtQt9mtd  
       2016-05-18 22:19:17 +08:00 via Android   ❤️ 1
    @only0jac 建议你回复的时候在一条回复里集中回复几个人,例如
    @only1jac xxxx
    @only2jac yyyyyyy
    @only3jac zzzzzzz
    节省铜币同时防止被限制回复。
    gowk
        138
    gowk  
       2016-05-18 22:56:49 +08:00 via Android   ❤️ 1
    C#, Java , Go 都用过,如果是 windows 平台,请选择.NET ,大型的分布式应用选择 Java , API 自己后端的各种小工具可以选择 Go ,同时看好.NET Core ,希望出现更多的跨平台.NET 应用。
    h4x3rotab
        139
    h4x3rotab  
       2016-05-19 00:38:49 +08:00 via iPhone   ❤️ 1
    @only0jac 我觉得你可以把具体的需求稍微说一下,大家给你推荐几个候选,然后你按喜好选择一个就是了。都是正经的语言,使用得当好坏差别并不是特别大。比如我就不喜欢$,所以大家推荐 php 和 py ,我选择了 py ,这就没问题。当你经历几次这种项目就能体会到具体的区别了。其实很多情况还是看喜好。
    only0jac
        140
    only0jac  
    OP
       2016-05-19 08:12:11 +08:00
    @liwanglin12 感谢建议!


    @lilydjwg 确实喜欢类 C 语言, go 是静态类型,但他定义变量的方式好奇怪......


    @gowk
    @h4x3rotab
    需求前面也说了,不是公司用,都是自己的小项目,做 app 的后端和 web 程序,公司的当然无所谓,写完代码 commit 就行了,不需要我折腾部署什么的,一直在关注.Net Core ,并且十分看好!
    Neveroldmilk
        141
    Neveroldmilk  
       2016-05-19 09:40:15 +08:00
    python 开发时间 80%都花在部署环境上了。
    yeelone
        142
    yeelone  
       2016-05-19 11:54:58 +08:00 via Android
    python 部署比较蛋疼。至今仍然很不舒爽。还是喜欢 go 编译后直接扔到服务器就完事。
    only0jac
        143
    only0jac  
    OP
       2016-05-19 13:59:29 +08:00
    @Neveroldmilk
    @yeelone
    同意!不过之前有个项目已经用 Python 了,要换后端的话一时半会也搞不完,先用着 py ,以后用用 golang
    rust
        144
    rust  
       2016-05-20 01:13:06 +08:00
    @6rzgeek 我正打算提 Rust 呢~
    SpicyCat
        145
    SpicyCat  
       2016-05-25 10:18:04 +08:00
    golang 够浪
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2865 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:22 · PVG 19:22 · LAX 03:22 · JFK 06:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.