V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
baskice
V2EX  ›  问与答

初创团队后端语言选择什么好?

  •  
  •   baskice · 2018-06-07 09:28:40 +08:00 · 24870 次点击
    这是一个创建于 2362 天前的主题,其中的信息可能已经有所发展或是发生改变。
    过往一直在用 php,性能低、代码乱。

    新项目希望能:
    有大量使用这门语言的工程师,方便找人,
    代码相对规范、工整,
    高性能

    有什么好选择吗?
    第 1 条附言  ·  2018-06-08 06:10:00 +08:00
    一些频繁被问的问题的回答:

    之前的项目指 萌娘百科 。本身这个项目用的就是 mediawiki 框架,是维基百科在用的开源程序。基本上是把开源能占的缺点全部占了个遍。要不是后来与 Facebook 的 HHVM 项目进行了深度合作,而成果又被顺利塞入了 php7。这玩意基本是要凉了。这还没包括萌百自己开发的各种功能引入的问题。

    新项目指的是萌币 https://MoeCoin.one 项目。首轮融资了 500 个 ETH,投资人和我都希望项目能快速推进。但是目前又陷入了过往进展缓慢的情况……发愁
    169 条回复    2018-06-08 18:00:26 +08:00
    1  2  
    crossoverJie
        101
    crossoverJie  
       2018-06-07 14:24:50 +08:00
    有大量使用这门语言的工程师,方便找人,

    Java
    Twinkle
        102
    Twinkle  
       2018-06-07 14:27:36 +08:00
    话说冰娘是做什么的呀(
    qq976739120
        103
    qq976739120  
       2018-06-07 14:30:36 +08:00
    golang ,动态语言注定规范不了
    nekoyaki
        104
    nekoyaki  
       2018-06-07 14:30:48 +08:00
    用你们队伍里,相对最有责任心、中期内不会离职、具有一定代码水平的这些人最熟练的语言就行了……
    语言各自有适用场景和优缺点,没什么特别完美的语言,但是各自的缺点一般也有办法规避掉。
    eslizn
        105
    eslizn  
       2018-06-07 14:33:58 +08:00
    php7 开始有强制类型约束了,另外性能也能通过 server 的方式来解决,常见的解决方案有 swoole 和 phpreact
    whatisnew
        106
    whatisnew  
       2018-06-07 14:36:39 +08:00
    钱少 php
    钱多 java
    linuxchild
        107
    linuxchild  
       2018-06-07 14:56:42 +08:00
    没有统一风格么
    wly19960911
        108
    wly19960911  
       2018-06-07 14:59:58 +08:00 via Android
    @Twinkle 萌娘百科站长
    daxingzhesun
        109
    daxingzhesun  
       2018-06-07 15:09:06 +08:00
    PHP 冻死了,因为它听到一个很冷的笑话
    czzhengkw
        110
    czzhengkw  
       2018-06-07 15:09:25 +08:00   ❤️ 2
    性能低:一个关联查询,你查 N+1 次数据库,能不慢么

    代码乱:没有抽象,没有提取数据模型,全写在 controller 里面,能不乱么

    说白了,不是语言,也不是框架的问题,是开发者水平的问题……
    xiaowangge
        111
    xiaowangge  
       2018-06-07 15:16:49 +08:00
    Java
    wekw
        112
    wekw  
       2018-06-07 15:24:06 +08:00
    我写的 PHP 就性能高,代码整洁。


    话说 PHP 是性能最高的脚本语言,已经把 Python 秒的渣都不剩了,不该再拿性能说事儿了。Java 性能高? Java 也许在占用大量内存的情况下,处理时间可能比 PHP 端,但根据我的实测,在同一台机器上 Spring Cloud 框架的 QPS 性能并没有 Laravel 高,Laravel 已经是天天被人诟病性能差的框架了。

    建议选择对自己最熟悉的。选 Python 的话公司倒闭的时候记得通知我一声(在国内招人极其困难)。
    wupher
        113
    wupher  
       2018-06-07 15:24:28 +08:00
    看人

    我司既有 PHP 也有 Java。混乱的代码,两者都能让你吐。

    就个人而言,更推荐 Java 系( Java、groovy、Kotlin、Scala )。

    我有一个坑逼前队友,最近才被从 Java 骂到了 PHP 团队,这其实就已说明了许多。
    doracoinC
        114
    doracoinC  
       2018-06-07 15:27:21 +08:00
    1.代码乱和语言没关系,和写代码的工程师水准有关系;
    2.性能好坏一定程度上受语言影响,但不完全取决于语言,还有应对场景、工程师水准等等;

    应对你的新项目需求,看起来 Java 最适合你的情况:
    1.做 Java 后台的人很多,真的很多,绝对方便你找人;
    2.代码相对规范工整:不好说,还是取决于工程师水准,任何代码是否规范工整,都取决于工程师水平;
    3.性能高:这点不好说,什么语言都有关于性能的争论,但谁可以明确的否认哪种语言性能不够呢?只是应对场景适合和不适合的问题而已。不过还要再说一次,工程师水准不高,也可能会出现写出来的程序性能不好的问题。

    总结:
    - 目前做 Java 的人多,很多,非常方便招人;
    - 找个经验丰富的即可,经验丰富很大程度会避免代码不规范问题;
    - 擦亮双眼识人,别被招来的工程师忽悠就行;
    - **请你客观的、更深入的了解关于开发的知识,只知其然不是好习惯**
    - **请你客观的、更深入的了解关于开发的知识,只知其然不是好习惯**
    - **请你客观的、更深入的了解关于开发的知识,只知其然不是好习惯**
    MushishiXian
        115
    MushishiXian  
       2018-06-07 15:29:40 +08:00
    这怎么又 PHP 背锅了.....哪门语言人水平不行都会存在这个问题吧,如果你真的不要 php,就换 java 咯,当然你找的人不行的话,换什么都没用
    mudone
        116
    mudone  
       2018-06-07 15:56:15 +08:00
    你最熟悉 PHP,就选 PHP。
    业务先跑起来,然后逐步用 Java 或者 Go 构建后端服务,解决性能问题。
    znood
        117
    znood  
       2018-06-07 16:19:02 +08:00 via iPhone
    我觉得这种应该是你们架构师应该考虑的问题吧,看项目周期,后期维护性,性能,业务类型
    alwayshere
        118
    alwayshere  
       2018-06-07 16:21:40 +08:00
    目前想存钱买一辆跑车,他们都说玛莎拉蒂加速性能不好,希望能找到一辆加速性能好,逼格高的跑车
    nicevar
        119
    nicevar  
       2018-06-07 16:22:58 +08:00 via iPhone
    不知道选什么时选 Java 是没错的,技术栈选错创业公司也很容易挂掉,选 Python 要谨慎,玩得好的人相对来说较少,见过几家创业公司掉这坑里的
    a7a2
        120
    a7a2  
       2018-06-07 16:47:24 +08:00
    java。。。不用想的。。。
    WinMain
        121
    WinMain  
       2018-06-07 16:48:00 +08:00
    显然 java 没有之一,python 有几个深入了解的?坑居多。PHP 就不多说了,坑巨多。
    jadec0der
        122
    jadec0der  
       2018-06-07 16:56:49 +08:00 via Android
    萌百在组建开发团队吗?请问是以公司还是社区的形式运行的
    xnotepad
        123
    xnotepad  
       2018-06-07 17:12:57 +08:00
    Go 吧,语言特性少,随便找个实习生培训个把星期,业务代码就能写得飞起。
    当然第三方库少,很多依赖的第三方接口也很少有 Go 版本的 demo 可以参考的。
    xd314697475
        124
    xd314697475  
       2018-06-07 17:20:05 +08:00
    综合来讲 java
    jennifertxwoodma
        125
    jennifertxwoodma  
       2018-06-07 17:47:37 +08:00
    水平高的话,JS
    水平不行的话,Python
    feverzsj
        126
    feverzsj  
       2018-06-07 17:50:39 +08:00
    当然是 c++
    loryyang
        127
    loryyang  
       2018-06-07 17:51:43 +08:00
    JAVA,越流行越好,除非你们有人非常专长某个语言
    cxbig
        128
    cxbig  
       2018-06-07 18:04:15 +08:00
    初创团队必须选你们玩得最溜的语言,至于性能问题,等挣的钱能养活团队了再说。
    尤其是引进新技术方面要特别慎重。
    to2false
        129
    to2false  
       2018-06-07 19:19:24 +08:00 via Android
    代码乱可能换个语言也一样
    gclove
        130
    gclove  
       2018-06-07 19:25:40 +08:00
    @baskice 抱抱大佬

    我觉得吧, 代码乱的现象语言只是一小部分原因

    不过 PHP 过于宽松的语法,确实可能对一些不够深入学习的人造成这个问题

    java 确实可能会好一些吧。

    但是,终极的解决这个的办法,一定是做微服务, 服务间做 RPC
    Laughter
        131
    Laughter  
       2018-06-07 19:40:19 +08:00
    我司从 Java 转到 golang ,
    从楼猪期望来看, 首选 Java
    sunnygaofan
        132
    sunnygaofan  
       2018-06-07 19:57:13 +08:00 via iPhone
    从 php 转 nodejs,再转到 go,性能 NB 不用说了,三方包也在这两年完善很多,现在呆的公司用的就是 go,当然,go 的问题是招人确实不太好招
    karllynn
        133
    karllynn  
       2018-06-07 21:06:04 +08:00
    Java7,规整的不得了…注意不要乱用 annotation 黑魔法就行,好招人

    Go,连泛型都没有,interface{}满天飞,也很规整

    另外创业团队就别整微服务了,很难搞的
    yingfengi
        134
    yingfengi  
       2018-06-07 21:06:43 +08:00 via Android
    同意 9L,代码乱是人的问题。
    nameldk
        135
    nameldk  
       2018-06-07 21:08:37 +08:00
    可以用汇编啊,汇编写起来可规整了,而且运行起来效率也高。
    cncqw
        136
    cncqw  
       2018-06-07 21:40:32 +08:00
    PHP 做个比你规模大 10 倍的项目都没问题, 哪来的底气黑 PHP ?
    huclengyue
        137
    huclengyue  
       2018-06-07 22:13:41 +08:00 via Android
    java go python 个人排名
    huclengyue
        138
    huclengyue  
       2018-06-07 22:16:42 +08:00 via Android
    用 java 的话更推荐 kotlin
    ytmsdy
        139
    ytmsdy  
       2018-06-07 22:29:59 +08:00 via iPhone
    写的不好,无论什么语言效率都低!
    写的好,无论什么语音都能抗的住高并发!
    与其在这里考虑技术栈,还不如找一个靠谱的技术合伙人给你把关!
    turan12
        140
    turan12  
       2018-06-07 22:36:59 +08:00
    php7 性能其实不错的
    FrankFang128
        141
    FrankFang128  
       2018-06-07 23:30:29 +08:00   ❤️ 2
    没人推荐 Rails?
    xrlin
        142
    xrlin  
       2018-06-07 23:40:32 +08:00
    @FrankFang128 #141 看来 rails 真的越来越淡出视线了。
    changwei
        143
    changwei  
       2018-06-07 23:44:08 +08:00 via Android
    我很好奇你们是什么初创团队,你们的产品用户量有多少,居然能把 php 的性能瓶颈用出来。。。php7 的性能已经很棒了,测试数据秒 node,py 应该不是什么问题。

    php7 的工程化也很棒,什么命名空间,强制类型,接口,继承,反射,异常处理都是有的。代码乱和 php 有什么关系。

    感觉这样黑 php 过分了。
    msg7086
        144
    msg7086  
       2018-06-07 23:48:44 +08:00
    @FrankFang128 @xrlin 非常悲惨地三点都不符合……

    国内炒鸡难找人
    黑科技起飞,万一谁瞎瘠薄写代码,血崩
    性能算不上高

    :doge:
    james2013
        145
    james2013  
       2018-06-07 23:50:51 +08:00
    当然是 Java
    gowk
        146
    gowk  
       2018-06-08 00:31:49 +08:00 via Android
    推荐 Go,现代化的语言和类库,没有历史负担
    Humorce
        147
    Humorce  
       2018-06-08 00:36:46 +08:00
    Python 或 Golang
    BenX
        148
    BenX  
       2018-06-08 00:44:31 +08:00 via Android
    最熟悉最好
    fundon
        149
    fundon  
       2018-06-08 01:04:19 +08:00
    s609926202
        150
    s609926202  
       2018-06-08 01:09:06 +08:00 via iPhone
    代码乱从何说起?
    simpx
        151
    simpx  
       2018-06-08 01:38:48 +08:00
    我会选 golang

    1. 方便招人。这一点比不上 java,不过我见过非常多 c/c++程序员用 golang 的,迁移成本不会太高
    2. 代码相对规范、工整。强类型相对于 python、node 的弱类型,心智负担轻多了。而且 golang 限制了一些写法,用 gofmt 后,不同人写出来的代码差不太多
    3. 高性能。大多数项目都不会触碰到 golang 的性能瓶颈
    jiangzhuo
        152
    jiangzhuo  
       2018-06-08 01:45:43 +08:00   ❤️ 1
    前端是 web 就用 js
    前端是 iOS app 就用 oc 或者 swift
    前端是 android 就用 java 或者 kotlin
    反正前端熟悉啥用啥
    这样招一个人就能前端后端都干了
    xiparos
        153
    xiparos  
       2018-06-08 07:04:56 +08:00 via iPhone
    java
    Cbdy
        154
    Cbdy  
       2018-06-08 07:29:11 +08:00 via Android
    其实靠谱的 Java 开发者也不好找,我见过好多写 Java 的,Maven 都用不利索。但带 GC 的通用语言,Java 一般是最好的选择了,没有之一
    yazi
        155
    yazi  
       2018-06-08 08:03:35 +08:00
    个人认为语言层面的性能提升空间是很有限的,如果想提升项目整体吞吐量建议通过横向扩展而不是优化语言本身。
    HangoX
        156
    HangoX  
       2018-06-08 08:10:42 +08:00 via Android
    招人容易,只有 JAVA 了,代码规范,java 也复合
    anotherlf
        157
    anotherlf  
       2018-06-08 08:20:29 +08:00 via Android
    如果公司主要业务不是性能计算,只是表单、展示、扫码支付一类的,我觉得 PHP 最合适。构建简单,维护简单,人好找。
    jingrui
        158
    jingrui  
       2018-06-08 09:08:24 +08:00 via iPhone
    3 年 java 3 年 php 告诉你 php 是最合适的,但你可以选 java,人才是关键
    timwei
        159
    timwei  
       2018-06-08 09:24:18 +08:00
    我很喜欢这个项目呢
    skadi
        160
    skadi  
       2018-06-08 10:19:09 +08:00
    java or go
    karnaugh
        161
    karnaugh  
       2018-06-08 10:21:55 +08:00
    卧槽,这个项目情怀支持啊!
    southsala
        162
    southsala  
       2018-06-08 11:43:08 +08:00
    怎么参与啊 喜欢这个
    sampeng
        163
    sampeng  
       2018-06-08 12:21:38 +08:00
    你需要的不是一个好的语言。是一个靠谱的 cto。。。
    rocbomb
        164
    rocbomb  
       2018-06-08 13:31:32 +08:00
    其实 .net core 可以的
    java 转过来也很简单
    zjyl1994
        165
    zjyl1994  
       2018-06-08 13:39:41 +08:00 via Android
    go 啊,做币的不都用 go
    sasumi
        166
    sasumi  
       2018-06-08 13:57:52 +08:00
    凡是吐槽 PHP 脏乱差的人无非两种:1
    1、根本没在实际项目中大范围用过 PHP 的人
    2、即使是用其他语言写,同样觉得它们不行刚入行的。

    我遇到的人里面,基本没有能理解透面向对象、MVC,更别提抽象、架构能力的程序员。
    naeco
        167
    naeco  
       2018-06-08 14:03:07 +08:00
    FrankFang128
        168
    FrankFang128  
       2018-06-08 17:06:07 +08:00
    @msg7086
    1. 你要看「难招」的定义是什么。你可能觉得用的人少就是难招,但是我是这么认为的,你招 PHP 的人要从 100 个人里面找 10 个靠谱的,然后其中有两三个符合你的要求。而 Rails 是你找到 10 个人,其中有 9 个人都是靠谱的。
    从时间花费的性价比来看,PHP 更难找,因为遇到不符合要求的人太多。
    2. 这个看 leader 的功力了
    3. 初创团队能活下来就不错了,等用户超过一千万你再用 Java 重构核心部分即可。
    wekw
        169
    wekw  
       2018-06-08 18:00:26 +08:00   ❤️ 2
    @FrankFang128 还性价比呢。。。Rails 全中国的靠谱程序员还没有望京 soho 一栋楼的靠谱 PHP 程序员多。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1358 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 23:58 · PVG 07:58 · LAX 15:58 · JFK 18:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.