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

一个疑惑:为啥很多初创公司不选择最主流的技术栈?

  •  
  •   passer9527 · 107 天前 · 5512 次点击
    这是一个创建于 107 天前的主题,其中的信息可能已经有所发展或是发生改变。
    从本站的各种招聘帖子,以前别的地方的招聘帖子发现,很多初创公司并没有选择最主流的技术栈。而是用了自以为很前卫的技术,比如做 web 的用 go 之类的。

    就从这个点来说,难道不应该选 java/springcloud 这一套吗,优点明显:
    1. 成熟度非常高;
    2. 各种轮子应有尽有;
    3. 非常主流,所以好招人,各种层次的人都能找到;
    4. 由于前面几点,所以基本没啥坑。

    反观 Go:
    1. 一个 web 都各有优劣,不注意都会犯选择困难症;
    2. Go 的定位根本也不是来写业务来的,而是写一些中间件,基础组件。

    当然,如果是大公司,你用啥都是对的,因为大公司可以养得起一个研发部门来给业务组造轮子,要啥有啥,bug 修的快,响应及时。

    但是,你是一个初创的渣渣小公司,乱选技术栈,天天在那儿乱折腾,填新技术的坑,不好好思考下业务,这不是纯属瞎搞吗。

    ——————————

    上面的 java 和 go 只是举个例子,成熟的轮子不止 springcloud 那一套。但 Go 确实不行。
    77 条回复    2021-08-18 01:47:43 +08:00
    micean
        1
    micean   107 天前   ❤️ 2
    公司都会选熟悉的,不一定是最主流的
    huruidev
        2
    huruidev   107 天前 via iPhone   ❤️ 14
    楼主主观性太强,认为尝试新技术就是乱折腾 纯属瞎搞。
    1. go 并没有不成熟,go 在 2015 年在国内就开始火起来,java 是保守派,go 是革命派
    2. go 开发的应用程序方便容器化部署,镜像体积比 java 应用小很多,运行时的内存占用也是。基于 k8s 相关生态,可以实现 springcloud 那一套
    3. 最近有个书比较火,叫凤凰架构,里面的观点认为 k8s 那一套会是未来发展的趋势。创业公司没有技术债,更应该也更合适去尝试新技术。如果发展到了老代码庞大,开发人员很多并不愿意学习新技术,那种情况下想尝试新技术就是真的无法实现了
    westoy
        3
    westoy   107 天前   ❤️ 16
    无论初创还是空降, 选偏冷门一点的技术好插自己人啊, 而且还能增加投资人和创始人洗团队的成本
    Kobayashi
        4
    Kobayashi   107 天前 via Android   ❤️ 4
    你项目还没起来像那么多干嘛?盈利了,有了投资人干爹的钱,想换什么技术栈就换什么。

    项目成功与否,技术可能只占非常小的部分。滴滴打车最初代码都是外包的,能不能打到车都是玄学,主力靠推广安装。YouTube,Python 写的全球第一视频网站,现在和 Python 一点关系都没了。

    创业,熟悉什么技术就用什么技术。
    yanzhiling2001
        5
    yanzhiling2001   107 天前
    会、熟悉、上手快,合适,符合上面一半就用什么。

    go 写业务还好,前后端分离,只提供 restful api,
    agagega
        6
    agagega   107 天前 via iPhone
    初创公司要的是创始团队熟悉+干活快,从这个角度说,Ruby 、Python,Node 都是很好理解的选择。Go,说不定也是人家熟悉呢…
    chenqh
        7
    chenqh   107 天前
    可能是技术团队顺手呀
    lalalaqwer
        8
    lalalaqwer   107 天前   ❤️ 2
    反正都是要跑路的,花钱也不是自己的,为什么不刷一下自己以后简历呢
    sutra
        9
    sutra   107 天前   ❤️ 2
    我有个观点,可能会招喷。

    就是,Java 已经内卷得不行了;而 Go 还是处女地,可以造很多轮子,而大有作为。
    所以,现在不少 Java 玩久了的都在尝试 Go 。
    而一般初创公司,都会先找个经验丰富的,刚好也是 Java 玩久了的。
    felixcode
        10
    felixcode   107 天前 via Android   ❤️ 21
    从楼主帖中可以看到 java 程序员的迷之自信,除了 c 和 c++其它语言估计都被认为自以为前卫了。
    akira
        11
    akira   107 天前
    创业公司。。选啥都行啊,快速出产品验证模式才是最重要的, 技术栈重要么?
    pi1ot
        12
    pi1ot   107 天前
    和团队技术负责人经验及喜好密切相关。
    cmdOptionKana
        13
    cmdOptionKana   107 天前
    Go 招人方便啊,不管原先搞 Java 还是 Python 、PHP 、C,学 Go 快则一天慢则一周就可以直接写生产代码了,阅读代码更没问题,语法糖几乎为零。
    wdhwg001
        14
    wdhwg001   107 天前 via iPhone   ❤️ 4
    你们 Java 栈招人是好招人,但是你们要不要扪心自问一下,开发效率真的高吗?可以快速出活儿吗?
    说实话也就和 Go 比一下了吧,毕竟 Go 简直难受得的罄竹难书。
    sagaxu
        15
    sagaxu   107 天前
    因为你看的都是“招聘帖子”,有样本偏差
    rockycc
        16
    rockycc   107 天前 via Android   ❤️ 9
    招 go 可以帮你排除掉那些常年浸淫在 jsp, servlet 的 java 程序员。招 go 相当于招了一个会运维,热爱新技术,学习动力强的开发工程师。
    rabbbit
        17
    rabbbit   107 天前   ❤️ 1
    讲个遇到的例子,以前面过一家做海外电商的.
    两年前去面试的时候前端技术栈是 vue, app 用的 weex(我觉着这玩意不太靠谱,就没去).
    隔了一年左右又翻到他家招聘, 已经从 weex 变成了 react-native
    前段时间再翻, 他们的技术栈变成了 react react-native flutter vue,那个 react 还特地标了个为主
    我觉着这变化挺好玩的,不知道他们再 weex 上踩了多少坑.
    rabbbit
        18
    rabbbit   107 天前
    以至于连带 web 的技术栈都切到 react 那边去了.
    mekingname
        19
    mekingname   107 天前   ❤️ 3
    Spring 是一个非常庞大臃肿的框架,但是搞 Java 的这帮人把它奉为圭臬,竟然用它来写微服务。用“庞大”的框架来写“微”服务,哈哈哈真是可笑。
    anguiao
        20
    anguiao   107 天前 via Android
    golang 应该算是最工程的语言了之一,你说它不适合写业务?
    至于成熟不成熟这种问题,就不评价了,毕竟谁也说服不了谁。
    avastms
        21
    avastms   107 天前 via Android   ❤️ 2
    难道初创公司每月花个几十万雇几队 Java 架构师互相甩锅玩么
    TypeError
        22
    TypeError   107 天前   ❤️ 4
    也就中国 Java + spring 比例最高

    人家欧美日韩各种语言写 web 服务的都有,go 、python 、ruby 、nodejs 、java
    Mohanson
        23
    Mohanson   107 天前   ❤️ 8
    楼主火星了, Go 早在 15 年左右就已经是最主流的技术栈了. 那个时候

    B 站: 用 Go 重写全部 Java 程序
    知乎: 用 Go 重写 Python 后端
    头条: 16 年成立, 早期不清楚, 但我知道 17 年他们就在招 Go

    别人都用了 6 年了, 有的公司都已经上市了, 楼主的认知中居然是 "自以为很前卫的技术"(2021 年).
    agagega
        24
    agagega   107 天前 via iPhone   ❤️ 1
    @TypeError
    这么一说确实是。国内好像只有前端喜欢新技术。国外 iOS 都在走向 SwiftUI 了,国内很多还没上 Swift
    512357301
        25
    512357301   107 天前 via Android
    java 不是能力低而是效率低,企业看的是成本,开发效率低的,初期不会尝试,后期稳定了,早晚还是会换到 java 。
    你就是典型的不当家不知柴米贵。。。
    如果不是 PHP 没落了,估计还有选 PHP 呢,那效率更高。
    Leviathann
        26
    Leviathann   107 天前   ❤️ 8
    看标题我还以为是说 elixir rust 啥的
    没想到是说 go
    ipwx
        27
    ipwx   107 天前
    初创时期,恨不得单枪匹马能用 python 的就两周撸一个原型出来。等产品有市场了,有钱了,再找十个 java 程序员重构不好吗?

    讲真,你看看程序员的薪水,再看看初创时期是找一个 python 大后端合算,还是十个 java 标准螺丝钉合算。
    momocraft
        28
    momocraft   107 天前
    "各种层次的人都能找到" 的反面是筛选成本大
    levelworm
        29
    levelworm   107 天前
    初创团队的大佬弄不好就是想用投资人的钱自己玩一把的。大公司里没机会玩啊,只有去初创团队自己做大佬的时候才能玩了。
    adoal
        30
    adoal   107 天前 via iPhone
    用比 Java 稍微“小众”一点的技术可以有效过滤掉海量的培训班 crudboys 。算上过滤人的成本,招“小众”语言程序员真不见得比 Java 的高很多。
    何况…go 真算小众?你是鸡丁还是谢莉丝?
    JudyHal
        31
    JudyHal   107 天前
    Java 是一个本来就应该死掉的语言,硬是被国内这些培训班救了,可以说没有中国,Java 这种古董语言早就进垃圾桶了,还是把眼界打开多去看看 Go 吧,设计理念会让你得到空前的享受
    passerbytiny
        32
    passerbytiny   107 天前 via Android
    初创公司,里面编码的可能总共不到 5 个人,这点人数用 spring cloud,那特么是找死。

    把 Java 学深入点,你就会发现 Java 的优点是螺丝多能让你能造出适合的轮子,而不是轮子多。前三年用 GO 然后再重构成 Java,要比直接上 Java 更有效。
    limbo0
        33
    limbo0   107 天前
    初创公司写 Java 可能得加 24 小时的班
    loading
        34
    loading   107 天前
    基本是由创始人的技术盏决定的,所以不会是大路货。
    shellic
        35
    shellic   106 天前
    java 实在是太臃肿太繁琐了,初创公司很明显更适合开发效率高的语言,而且感觉国内 java 大行其道有阿里一半功劳。。。
    Cbdy
        36
    Cbdy   106 天前
    因为 Java 水货的太多,靠谱的 Java 程序员相对更难招。举个例子,通常招个 Ruby 程序员往往是可以独当一面的,但是招个 Java,人虽然多,一个礼拜可以招一个办公室,但是人弄不好就是培训班出来、简历造假、学历造假的,这谁遭得住,特别是创业公司

    另一方面,Java 技术栈太广了,很多东西创业公司往往用不到。而创业公司的首要要求是快速做出产品,活下去——从这点出发,应该是这个公司的员工最熟悉什么,就应该用什么,而非追随大流
    notejava
        37
    notejava   106 天前
    因为第一号技术员工可能熟悉某个偏门的技术,他选择了自己熟悉的。
    SenLief
        38
    SenLief   106 天前   ❤️ 2
    初创公司大多是需要先活到拿到投资。至于选什么都没啥问题,技术类的初创公司负责人多数自己会啥用啥,用了来源有了钱再换不就好了,重点是快速开发,能把想法变成钱,至于用什么那是有钱之后的事情,大多数初创都没活的过有钱,这难道是语言的锅?
    FreeEx
        39
    FreeEx   106 天前
    golang 很多都是 Java/Python/PHP 程序员转的,或主动或被动,技能比专精某一门的程序员要广,而初创公司并不需要你有多么高深的技术,微服务、分布式事务、MQ 、各种缓存防止穿透,雪崩初期都是不需要的,单体应用短平快发布,占用资源少就足够了。
    Mirage09
        40
    Mirage09   106 天前
    @JudyHal
    Java hater 这么极端的么?
    vindurriel
        41
    vindurriel   106 天前 via iPhone
    我有另一个疑惑 为什么一个人要选择一门编程语言 都学会到能上手干活的程度 有那么难吗?
    acmore
        42
    acmore   106 天前
    又变成了一个 “你们 Java” 和 “你们 Go” 之间无聊立场之争的水贴
    morty0
        43
    morty0   106 天前
    go 在云原生方面有优势啊
    witcherhope
        44
    witcherhope   106 天前
    语言工具之争老政治问题了
    ryh
        45
    ryh   106 天前   ❤️ 1
    @Mirage09 Java 本身很好,但好多“外包”公司的 java 开发者用着 Spring + MyBatis (数据只有 String )+ Layui (盗版直接删除版权的) 批量生产的代码就觉得天下无敌了😂
    ps: 部署就是 tomcat 默认设置 。 我见过这样的公司,他们还这样做过很多 zf 项目
    janxin
        46
    janxin   106 天前
    因为你不熟悉所以才整天选择困难,就像 Java 有 Spring 和 SpringBoot,为什么不选择更多大厂在用的 Spring ?这种问题为什么不会问呢?

    创业公司短平快决定的选择创始人熟悉的技术栈进行,你看阿里系出来的大多也都是 Java 系没见整天 Golang 跑吧。

    2L 更容易安插人就更扯淡了,你作为联合创始人,如果你选一个人都需要创始人同意你还搞个屁?你当是大公司呢,从 10 个人不到就开始宫斗这破公司还有前途?这理由还不如说不好让别人替代自己来的更可信呢。
    janxin
        47
    janxin   106 天前
    @janxin 我的错,是 3L
    MengiNo
        48
    MengiNo   106 天前
    “初创公司”是怎么个定义法?如果是所谓普通的“不知道能不能活下去,能活多久的公司”的“创业公司”,我甚至都不知道哪个技术栈是不满足的。PHP 这种非常驻内存的语言,还有不少公司拿来做游戏服务器,做硬件通信,何来 Go 是真不行这种说法?。能落地就是好技术,其他都扯淡。
    gravitybox
        49
    gravitybox   106 天前
    初创公司应该更倾向于开发效率吧
    pengtdyd
        50
    pengtdyd   106 天前
    怎么就没创业公司选 rust 的,什么 java,python,go 全是渣渣。最前卫,最性能,最抽象,还能过滤一些学不会的人
    icyalala
        51
    icyalala   106 天前
    go 现在还叫前卫?那当年 WhatsApp 用 erlang 算什么?
    初创团队当然是要选择团队成员熟悉的技术栈了,关心外面流行什么干毛线。。
    Vegetable
        52
    Vegetable   106 天前
    你仔细品吧,如果 Java 真那么好,Go 能出的了头吗?
    我一直就认为,Go 的优势不是你看看文档写几个 Helloworld 能体会到的。工程上 Go 相比 Java 有很大的优势,所以在选型的时候能和 java 掰手腕。
    ArJun
        53
    ArJun   106 天前
    go 挺好的,起一个服务只需要几行代码
    Mirage09
        54
    Mirage09   106 天前
    @ryh 我只是作为一个主要用 java 的 sde 对他的言论表示诧异,如果 java 真的那么落后,我司怕不是早被淘汰了
    msg7086
        55
    msg7086   106 天前   ❤️ 2
    大概十年前左右的时候很多国外初创公司都是 Rails 起步的。
    初创阶段一个 Rails 程序员的开发效率大概能顶五个 Java 程序员。
    早上想出的点子速度快点的下午就能上线看效果了。

    如果是大公司,才需要「成熟度非常高」「好招人,各种层次的人都能找到」。你想想,你都要找各种层次的人了,这公司得多大了。小公司不都是只要强力党一个人能顶一片天的那种吗。
    x940727
        56
    x940727   106 天前   ❤️ 1
    啧,初创公司上来就是微服务+K8S 吗?我觉得不太行……而且 Go 语言的库无论是数量还是质量还是广度都没办法和 Java 比,如果是有钱的公司,当然可以自己造轮子,去踩坑,如果是初创公司,那真的是程序员干倒公司的典型了。从公司角度来说,好招人,招人便宜,大牛多,现成解决方案成熟的才是最好的选择,Go 连 Python 都比不过,怎么和 Java 比?至于说知乎和 B 站那就更搞笑了,自己好好看看为什么这俩公司会换语言,难道不是换了 CTO ?去看看李大海和毛剑什么时候当上 CTO 的,大概率就是 KPI 而已,那照这样看,头条最近官方招聘网站 Java 已经比 Go 多了又怎么说?
    janus77
        57
    janus77   106 天前
    很多初创公司的创始人都是从大厂跑出来创业的,你知道这种人很多都是极客并且有一定的强迫症,那么用新型技术栈就是很正常的事了
    ccppgo
        58
    ccppgo   106 天前
    @JudyHal 没中国 GO 也不火啊
    Cbdy
        59
    Cbdy   106 天前
    @ccppgo 说明中国互联网应用蓬勃发展,技术政治斗争也层出不穷
    kett
        60
    kett   106 天前
    个人觉得初创公司最重要的是快速出活,等稳定下来且当前技术栈顶不住的时候才会换主流技术栈,因为主流技术栈一般都有比较成熟稳定的解决方案。
    GoLand
        61
    GoLand   106 天前
    @x940727 “那照这样看,头条最近官方招聘网站 Java 已经比 Go 多了又怎么说?” 错了,头条全面拥抱 Go,能 Go 就 Go,Java 要绝迹了。
    XTTX
        62
    XTTX   106 天前
    @westoy 通过语言来作为被替代的屏障的可能性太小了
    GoLand
        63
    GoLand   106 天前   ❤️ 5
    XTTX
        64
    XTTX   106 天前
    我不是很懂了。 现在的 Go 生态里缺什么东西 ,满足不了初创公司的业务需求?
    上面老哥说的, 前后端分离,Go 做 RESTful API 。
    felixcode
        65
    felixcode   106 天前 via Android
    本来想学了 java8 用来养老的,却没想到不断的有“偏门”“自以为前卫”的语言占领招聘需求,难不成再费劲学门语言?都是被他们给害的!
    aogg
        67
    aogg   106 天前
    楼主才是那个落后的人,go 才是最新主流技术,单是一个内存占用就是你们 java 无法比拟的
    Lemeng
        68
    Lemeng   106 天前
    一套下来,可能不会轻易在变,顺手的不一定非得主流,
    henryhu
        69
    henryhu   106 天前
    看到 web,我还以为楼主要问为啥不选 php,难道 php 不是最主流的 web 开发语言?
    shayuvpn0001
        70
    shayuvpn0001   106 天前
    @GoLand 这个也太那啥了。。。。 哈哈。求个原始大图。。。
    x940727
        71
    x940727   106 天前
    @GoLand 自己去搜索了再来说话,如果找不到链接就去看看 #66
    jiayong2793
        72
    jiayong2793   106 天前
    @westoy 说的对,我们公司用.net ,招了半年才招到勉强合适的人,半年招来的都是不懂底层,只要框架不支持的需求就做不了。
    jswh
        73
    jswh   105 天前
    初创公司选技术很随意的。一般都是主力开发觉得什么好就选什么,没有那么多考虑
    cyrivlclth
        74
    cyrivlclth   105 天前
    列一下几个原因:
    1. 团队最熟悉
    2. 看似不成熟但是很好规避了培训机构
    3. 如果一门语言比较冷门,那么能够花时间学习冷门语言的人学习能力较强(学历同理,但是学历是硬条件,可能工资上面就不好谈了)
    4. 成本考虑
    5. 自身位置考虑,不想被后续空降
    Akiya
        75
    Akiya   105 天前
    Go 确实不行,应该选 C#(逃)
    glfpes
        76
    glfpes   105 天前
    初创公司,迭代追求短平快,不一样的。

    工程维护不是问题。只要前期打得好,总有资源去重构的。前期如果慢了,业务直接凉了,没有重构的价值。
    secondwtq
        77
    secondwtq   104 天前
    没在“初创公司”呆过(虽然前公司自称“永远都是 startup”),更没在“不选择最主流的技术栈”的“初创公司”呆过。不过个人网上的观察:

    * 有些“不选择最主流的技术栈”的“初创公司”是真的相信他们选择的技术栈更适合他们的场景。至于到底是不是我不做评论。不如换个角度讲,楼主认为:Java SpringCloud,行。Go,不行。现在某公司认为:Go,行。Java SpringCloud,不行。凭什么楼主就一定是对的,某公司就一定是错的呢?或者凭什么某公司就一定是对的,楼主就一定是错的呢?为什么 Java SpringCloud 一定没有坑,Go 一定坑很多呢?或者为什么 Go 一定没有坑,Java SpringCloud 一定坑很多呢?当然楼主可能会说:Java SpringCloud 用的人多,“成熟”,“主流”,但是楼主不知道有句话讲:“真理往往掌握在少数人手中”么?这个逻辑左右都说得通。
    楼主凭什么居高临下评价 Go ?楼主是 Gopher 么?楼主用过 Go 么? Golang,不吃楼主这一套!
    什么楼主用过 Go ?那么楼主有没有在某公司用过 Go ?有没有亲自体验过某公司的场景? Golang,还是不吃楼主这一套!
    正经地说,有很多试图解释技术和开发效率之间关系的尝试(包括一些量化的思路),但是目前没有哪个真的能服众,楼主只是相信了其中的一个流派,就是“最主流的一定是最好的”而已。我的观点,这个问题暂时还没有绝对的对与错。

    * 当然还有个人的 preference 问题。如果如同第一点一样,排除了对技术的优劣判断之后,个人偏好就会成为很大的因素。云风的公司就用 Lua 硬撸 3D 引擎,Yaron Minsky 的公司就用 OCaml 写交易系统。当然他们都能拉出一大堆理由来 justify 他们的选择,但是按第一点的意思,别人不一定认。所以最理性的解释是“有个人偏好是非常正常的事情”。或者也可以用统计学解释,有 N 个技术,M 个人,每个人选一个技术,既然没有绝对的标准谁好谁坏,那就是某种随机选择,样本足够大的话不可能全选择同一个技术。

    * 有些公司不仅仅是单纯选择技术栈,选择一个技术栈,同样也选择了这个技术栈背后的 implication 。一个技术栈往往 imply 了相当多的东西,比如像隔壁帖子 v2ex.com/t/795881 有人说“Java 背后的群体代表的就是不思进取,故步自封的保守派”,就是这个意思。这并不是说每个 Java 用户都是“不思进取,故步自封的保守派”,也不是说“不思进取,故步自封的保守派”该被消灭,而是如果一个 CTO 不希望构建“不思进取,故步自封的保守”的文化的话,那么避开 Java 是一个可能有效的 heuristic 。上面还有人说可以过滤培训班,应该也有这个效果,虽然我之前没想到。在有些技术的圈子里偶尔会碰到什么“用这个技术的开发效率倍儿高”“用这个技术的人都很聪明”之类的话,道理跟什么“在简历上留 QQ 邮箱的负面效果”是一样的,heuristic 而已。虽然我看大多数都逃不过草台班子定律。

    * 用新技术,可以成为招聘广告的亮点!亮点!楼主说“从本站的各种招聘帖子,以前别的地方的招聘帖子发现,很多 ...”,这个“很多”可能并不真的是“很大一部分”,而只是“在楼主的视野里格外显眼”而已,因为写的技术“非主流”,所以留下的印象更深。这个道理是这样的:根据草台班子理论,大多数人的工作是比较无聊的,为了排解这种无聊,除了刷 V 站之外,使用不一样的技术(倒不一定是“新技术”,但是这种情况下新技术更受欢迎)也是一种方案(虽然都不解决根本问题)。有使用新技术的机会,那自然会成为亮点。
    另外,开发者和 CTO 一样会有个人偏好,CTO 表达偏好的方式是开个用这个技术的公司,而普通开发者表达偏好的方式则是选择用这个技术的公司。依然是统计学,“非主流”技术用的人少,用的公司也少,只要不是非主流到样本实在太小的程度,没有理由说非主流技术比主流技术招人更难。

    我再尝试把“样本实在太小”这个 edge case 的坑填上:我知道有一些公司用的是这类非主流技术(也许我现在公司也算?不过是大公司),这种情况可能会有另一个 buff:就是因为招聘者和求职者都难找,所以(理论上)会更加珍惜已有的机会——我实在想用某技术,但是实在找不到对应的工作,能有用这个技术的工作那简直就是奥丁下凡啊!别的我都不在乎,只要打败波兰,啊不,能用这个技术就算是成功了!
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1876 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 00:19 · PVG 08:19 · LAX 16:19 · JFK 19:19
    ♥ Do have faith in what you're doing.