V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
beego
zwgf
V2EX  ›  Go 编程语言

为什么网上 go 写的产品这么少

  •  1
     
  •   zwgf · 55 天前 · 7043 次点击
    这是一个创建于 55 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我大致搜了一下 go 开发的商城系统,基本上找不到,尤其是 go 开发的商业商城系统,反倒是 java,php 开发的商城系统和商业产品一大堆。cms 也是,这是为啥?

    是 go 的程序员不够多?还是 go 不适合做这些?不应该呀现在 go 的程序员也不少,go 的高并发也适合做商城类呀。

    求解

    第 1 条附言  ·  55 天前
    对于我来说,编程语言都是工具,所以哪个工具顺手,就用哪个。没有语言鄙视链。请不要带节奏。

    既然是工具,go 这个工具也不输 php 、java,为啥用 golang 开发商业 web 产品的少之又少?这背后是什么深层次的原因?
    70 条回复    2021-10-15 11:53:18 +08:00
    gesse
        1
    gesse   55 天前
    多向钓鱼贴??🐶🐶🐶
    zwgf
        2
    zwgf   55 天前
    @gesse 啥意思,我是最近想转学 go,看教学视频 go 介绍的很牛,但是我搜 go 的商业产品,一搜全是没有,于是在考虑要不要转 go
    hutoer
        3
    hutoer   55 天前   ❤️ 2
    如果我说 go 不适合写商城类系统(包括 CMS 等)
    会不会被打?
    zwgf
        4
    zwgf   55 天前
    @hutoer
    我觉得应该是适合写的,而且我也看到过公司内部用 beego 开发的管理系统和网站项目,但是为什么没有用 go 开发的商业商城产品?这个是我不能理解的,而且 go 也有十多个年头了,这 10 多年来就没有一款这样的商业产品吗(这里的商业产品指的是商城和 cms 这种 web 产品)?

    如果是我搜索不给力,希望大家能举例几个
    Hanggi
        5
    Hanggi   55 天前
    @hutoer 你可以说一下理由,然后再被打
    westoy
        6
    westoy   55 天前   ❤️ 1
    当年百团大战 + 凡客独立电商紧喷期, 我这边接过好多电商外包的需求, 我是真研究过当时市面上几乎所有的开源电商程序的

    这么说吧, 除了 magento, 可以说没有任何一个现成的开源电商程序适合正经拿来用的

    然而 magento 的二次开发的学习成本, 比你拉团队从头写都高
    Hanggi
        7
    Hanggi   55 天前
    @zwgf 你这搜索确实不给力,我随便搜都出来好几个。

    https://getqor.com/cn
    https://www.go-admin.com/

    当然这些项目质量如何就不知道了。
    westoy
        8
    westoy   55 天前
    凡客独立电商紧喷期 => 凡客引爆的独立电商紧喷期
    zwgf
        9
    zwgf   55 天前
    @westoy 不是说开源的,开源的 golang 商城也是能搜到几个的,但是开源嘛,如果不是大厂维护或者有专人维护,产品质量确实不敢多求。像你说的 magento 也是 PHP 开发的,商业的有 ecshop 、hishop 、shop++等等这种 java 、php 、.net 开发的商用商城项目一搜一大把,为啥 go 的就一个也搜不到
    wunonglin
        10
    wunonglin   55 天前
    历史原因与潮流趋势。

    以前前后混合的时代正好是 php 和 java 的天下,有各种各样的系统、管理后台。到了依旧充斥着以前那套东西,在加上以前的东西现在也能复用。

    所以,现在 golang 火了,但是人们一旦做这种 cms 就会联想到用 php 、java 做的“快”,那是因为以前有现成的东西给他们,而不是因为 php 和 java 有多“快”。

    所以现在就算用 golang 开发 cms,也不会再想到以前那套东西,且需要前端配合,前端现状又是娱乐圈 A 、R 、V 百花齐放。对于某些原因来说,用以前那套东西“成本低”

    但是 golang 渲染模板确实不好用就是了
    zwgf
        11
    zwgf   55 天前
    @Hanggi
    https://getqor.com/cn 这个是一个海外项目,从界面到语言,在国内拿来做商城基本上不用想。
    https://www.go-admin.com/ 这种后台项目是很多,什么 gin-vue-admin 等等,但是不是商业产品。只能算是一个 go 的项目
    zwgf
        12
    zwgf   55 天前
    @wunonglin
    确实之前 phpjava 的时代,但是 go 也有 10 多年的历史,对于网络世界 10 多年的历史可不短,为什么没有一个中文场景的这种产品,而且现在前后端分离基本上已经是共识了,那么后端从 php 或者 java 切换成 go,只要确保接口和之前的一致,前端的工作量并没有增加。加上 go 语言的设计优势,为什么没有人或者公司愿意做?
    westoy
        13
    westoy   55 天前
    @zwgf

    当年有市场, 催生出来的呗, 我上面提了当年有段时间是百团大战 + 凡客引爆的独立电商紧喷期么

    你说的这些里面 ecshop 我是熟的, 最早是 phpx 一个水友开的开源的坑, 随便做着玩的, 后来就在那阶段转商业化的

    现在除了练手的, 谁还去开新坑啊, 电商这种程序, 和产品规划的业务耦合太紧了, 正经做的也不可能用现成的啊, 既然是找外包做着看的, 谁管你用哪门语言啊, 产品外包这块讲究的就是项目复用啊
    wunonglin
        14
    wunonglin   55 天前
    @zwgf #12 原因已经说了。
    iyear
        15
    iyear   55 天前
    @zwgf #12 go 火是在电商爆发期之后了,现在搞这种新坑没啥名堂
    loading
        16
    loading   55 天前
    入门级商城这种小东西用迭代多次的 php/java 不比你一个 bug 版 golang 实现要好?
    要企业级的?目前估计只有 b 站这种不小心的才会开源。
    zwgf
        17
    zwgf   55 天前
    @iyear
    @westoy
    但是我不认同这一点,因为过段时间就能在看到一款新的 php 开发的商城系统上线,新开发一款商城选择 php,和选择 go 区别其实差不多。虽说现在电商热已经消退,但是全网靠卖商城系统赚钱的公司一大把。他们也很内卷,随便拿出几个 php 做的商业商城,看看他们的卖点也都是五花八门而且为了代码加密,他们也是想尽了方法,如果用 go 不是编译后二进制交付吗,那不是更安全。而且用上 go,可以吹的卖点不是更多。更别说正经开源的也是少之又少。

    就算电商,CMS 热潮已退,那其他的 web 产品,也没有见到
    danhahaha
        18
    danhahaha   55 天前
    @westoy 最近搞 magento 开发,别的不说,光是文档,就不是其他系统可以比拟的,不过学习成本真是高
    vinle
        19
    vinle   55 天前
    记得 donald kunth 在分享圆周率的趣事的时候提到过一句话 if you have to ask, you are not the right kind of person.。同理,会提出“为何 go 写的 cms 较少”这个问题的话,相信楼主并不是 go 的"right person"。我也曾有过类似的疑问,最后官方文档很好地解开了我的疑惑,或许楼主也可以尝试了解下。golang.org/doc
    Rorysky
        20
    Rorysky   55 天前
    商城是需要创新的地方么,php 和 java 写的商城有什么不够用么?

    都等用爱发电重写一遍么
    zwgf
        21
    zwgf   55 天前
    @vinle 我不是打算用 go 去写一个 cms,而是在学习 go 的时候突然发现了这个问题。用 go 写的开源的商城和 cms 倒是有,而且数量也还可以。只是突然觉得为什么没有商业的。

    @Rorysky 不是够不够用的问题,那现在的 php 商业商城就够用了,但是过段时间就会蹦出来一个 php 新开发的商业商城产品。而且在开源的 go 商城有的情况下,为什么没有商业的 go 商城。
    yoke123
        22
    yoke123   55 天前
    找个 java 、php 的商城项目,重构成 go 语言版本不就行了?
    当然和现在的比难度要难上不少,但是能做完你也会成长的更快,有利有弊。
    kwanzaa
        23
    kwanzaa   55 天前
    闭源。
    批站时间记忆犹新。
    youxiachai
        24
    youxiachai   55 天前
    用 go 写的商业项目。。基本都是闭源的吧。。。

    特别 cms 这种东西,脑子正常点的话,都不会用 go 在造一个轮子吧。。。
    fkdog
        25
    fkdog   55 天前
    因为大部分厂商都用 go 写一些高性能的中间件。

    至于应用业务逻辑,一方面是 php java 已经有了足够成熟的开源产品、开发生态和开发者,另外一方面是用 go 重写也没有太多好处。
    youxiachai
        26
    youxiachai   55 天前
    把楼上看了一遍 特别#19 楼那个

    go 有 docker,k8s...

    而楼主就只想着没有用 go 实现的商城。。只能说,lz 并不是 go 的目标用户
    dayeye2006199
        27
    dayeye2006199   55 天前   ❤️ 5
    因为 go 被设计出来的主要目的不是来写 cms,电商平台这类高度业务相关的程序的。

    go 一直是作为一个 better C 被设计出来的。C/C++的使用成本很高,go 出来之前,比较正经的基础组件(数据库、中间件、网路、容器编排等)基本选择只有 C/C++。但这个模式不符合大厂的利益,因为能用好 C/C++的人太少,写出来的程序 bug 太多。go 被搞出来之后,即使是年轻的工程师也可以像老帮菜一样,写出质量较高,性能不错的各种基础组件了。这个才是对大厂生产力提高最多的地方,也是 google 为什么乐意持续投资搞 go 的原因。

    至于传统的 web 后端,这个完全是语言流行起来之后的溢出效应。这个道理就和你问,为什么 C/C++写的 CMS 和商城系统这么少呢?非不能也,只是擅长的领域不一样。
    zbw0414
        28
    zbw0414   55 天前
    软件世界的本质还是人,毕竟俗话说组织架构决定软甲架构。java 培训班什么数量级,人口基数在那摆着,招人、招合适的人都容易得多,那这样你让原来公司转 go 或者新公司 all-in-go 都不太可能。而且电商系统并不是单体性能敏感型的业务,反而和大数据、数据运营、人群画像,这些大数据关系密切,那后端 all-in-java 基本上都 hold 住。但像是云计算、APM 等这种对内存敏感、启动预热时间敏感的业务,java 就不合适了( java-native 、graalvm 如果能被市场认可,那 java 场景又被拓宽了许多)。
    现在很多靠 AI 、算法、云服务起家的公司对 go 用的反而比较多,我猜主要可能是公司创始最早的那波人都是玩 C 的,从起源上和 go 比较亲近,和 C 的 FFI 亲和性比较好。
    kinge
        29
    kinge   55 天前   ❤️ 1
    每个语言都有自己擅长的地方,go 不擅长做 web,做 web 请选 php
    mengzhuo
        30
    mengzhuo   55 天前 via iPhone
    腾讯内部很多商城就是用 Go 写的,只是不开源。
    因为内部基本是用 trpc , pb 或者特定的二进制协议通讯,加上随便一个接口都会有超高流量,时不时老大还要降 CPU,内存使用量,这时 php Java 反而不合适了。

    个人单干,小公司的用 Java, php 没毛病。
    mengzhuo
        31
    mengzhuo   55 天前 via iPhone
    而且说 Go 不适合做 web 的。请考虑一下自己的 web 是不是访问量太低了,低到不需要考虑性能……
    emeab
        32
    emeab   55 天前
    工程化有点不太成熟. 项目结构都不太统一...
    janxin
        33
    janxin   55 天前 via iPhone
    不知道楼主怎么搜索的,感觉搜索方式有问题?很多商业产品是 Go 做的啊,比如腾讯字节都有很多。

    也有一些电商小程序服务商之类的在用 Go 开发商业产品。

    如上面所说,绝大部分为闭源产品。

    开源二开除非是喜欢自己造轮子,为什么不选成熟产品呢?

    另外,qor 是国人团队的产品。
    renmu123
        34
    renmu123   55 天前 via Android
    因为时间短,想想 php 和 java 流行多少年了,go 才多久
    sadfQED2
        35
    sadfQED2   55 天前 via Android
    头部公司现在很多项目都是 go 写的,包括你说的商城项目,只是大家没开源而已。

    另外,你找开源商城不就是为了开发快嘛,开发快干嘛不用 php,而且 php 已经那么成熟的社区生态了,就这一点来说 go 就没毕要存在开源商城
    IndexOutOfBounds
        36
    IndexOutOfBounds   55 天前
    go 这种至简的语言真的适合商城这种东西吗,还是别的优点很突出?
    DinnyXu
        37
    DinnyXu   55 天前
    想学 go 语言就业? 很简单 · 去各大招聘网站看看 go 的岗位有多少? go 的平均薪资是多少? 使用 go 做主要开发语言的公司类型是什么样的? 以及用 go 开发哪些产品...这些都只是表面,深沉次的可以去了解下 go 语言的发展史,多看看 go 的设计主要是基于什么。比如 Java 设计就是对标企业及 web 项目。
    wolfan
        38
    wolfan   55 天前
    go 语言不多是用在硬件项目上么?
    littlewing
        39
    littlewing   55 天前
    TiDB 算吗
    zjsxwc
        40
    zjsxwc   55 天前
    go 除了运维部署方便,写业务其实比 java 更麻烦,更不要说和 php 比效率了,
    对与小电商来说 php 最快成本最低,有了 docker 之后部署也不是问题,分发一个环境 image 包就行,

    在一个就是目前中国大环境对小电商不友好,审核越来越严格,和论坛一样,小电商走向末路,没人愿意搞。
    julyclyde
        41
    julyclyde   55 天前
    @mengzhuo 腾讯不是要求提高 cpu 使用率么
    tmac33
        42
    tmac33   55 天前   ❤️ 3
    年轻人,这会不是 2000 年了,不要一提到产品就想到电子商城(那跟整天创业就缺个程序猿的,有啥区别),那么多成功的中间件多看看,更有助于你的职业生涯。。。
    charlie21
        43
    charlie21   55 天前
    magento 的二次开发成本高在哪
    ucando
        44
    ucando   55 天前
    有什么实际场景需要用 go 再造一个轮子? 有多少商业前景? 普通中小企业的商城流量根本不需要什么高并发, 甚至一台 10 年前的破主机就足够支撑业务了
    Hanggi
        45
    Hanggi   55 天前
    @dayeye2006199 为啥总有人觉得 golang 是用来替代 C 语言的呢?

    这种论调是从哪里看来的?能说个出处吗?因为语法和运行方式像 C 语言?

    感觉很多人都会误解 go 语言的初衷,Go 语言是无法完全替代 C 语言的,完全是错误的定位。

    https://talks.golang.org/2012/splash.article

    请好好阅读 Go 语言设计初衷和要解决的痛点,不要误导别人。

    Go 语言的主流 web 框架在 github 上已经 52k 了,已经在其他主流编程语言 web 框架同样的热门程度了。
    nmap
        46
    nmap   55 天前
    go 是偏底层的语言,用来做上层业务不合适,另外也是错过了电商的爆发期,自然存量项目就少了
    iugo
        47
    iugo   55 天前
    @westoy 可能是 井喷.
    fmumu
        48
    fmumu   55 天前
    go 适合做底层平台,业务产品还是 java,php 多
    fyibmsd
        49
    fyibmsd   54 天前   ❤️ 1
    你说的这些东西 也没有 c 语言 c++开发的
    aptx4689
        50
    aptx4689   54 天前
    只要钱给够,拿 pure C 写也行,但你要说开源…用爱发电我感觉没几个人想写,特别还是在其他语言的开源商城这么多这么成熟的情况下
    tottea
        51
    tottea   54 天前
    Shopee 也算是吧
    Muninn
        52
    Muninn   54 天前
    你要的那些东西,商城,论坛,都是上一个时代的东西了。

    不是 go 不擅长写这些,是如今已经没人新起这样的项目了。
    fox0001
        53
    fox0001   54 天前 via Android
    假如已经有个成熟稳定的网站在跑,谁会闲着没事用 go 去重写?
    guanhui07
        54
    guanhui07   54 天前   ❤️ 2
    业务还是 java,php
    pengtdyd
        55
    pengtdyd   54 天前
    容器技术 Go 还是王者,其他的就一般吧了
    mengzhuo
        56
    mengzhuo   54 天前
    @julyclyde 降低应用使用的 CPU 总量(预占 /保留的资源)。
    Feiex
        57
    Feiex   54 天前
    @mengzhuo golang 可以显著降低应用资源占用吗?
    比如高峰期 5000qps 维持在 60%cpu 使用率情况下,计算密集型,spring 用了 160 核
    zoharSoul
        58
    zoharSoul   54 天前
    @Feiex #57 能显著降低内存占用, 对比 Java
    test0x01
        59
    test0x01   54 天前 via Android
    网上为什么一个汇编语言写的商城都没有?
    Feiex
        60
    Feiex   53 天前
    @zoharSoul #58 如果只是降低内存占用的话,那感觉不是很合算呀,毕竟公司里面部门成本都是按使用核数计算。
    在我看来需要如果可以降低计算密集型程序的 cpu 使用率达到 30%,放弃 java 生态做 go 重构还是勉强可以汇报的
    zoharSoul
        61
    zoharSoul   53 天前
    @Feiex #60 我们成本统计按具体价格算的
    zoharSoul
        62
    zoharSoul   53 天前
    @Feiex #60 而且互联网大部分 web 后端服务都是 io 密集型, 按核数统计意义不大
    dbskcnc
        63
    dbskcnc   53 天前
    前有 b 站,现有 Twitch,大部分的 go 代码,还有前面有几位谈到的国内头部厂家, 这些都是整体系统,商城只是其中的一小部分而已,单纯的开源商城目前不是好的开源点了,要做好不容易,没有商业参与和背书,靠爱发电也很难走远.
    Just a reminder that the Twitch leak is mostly in GO
    https://www.reddit.com/r/golang/comments/q32648/just_a_reminder_that_the_twitch_leak_is_mostly_in/
    Akiya
        64
    Akiya   53 天前 via iPhone
    产品不只有 curd...
    mengzhuo
        65
    mengzhuo   53 天前
    @Feiex 还不如看看是哪个家伙乱写逻辑,估计能减半,160 核,差不多是 40 个实例。
    某鹅内部 Go 写的话,大概是 6 个实例左右(一般业务还会有 50%预留),注意对象池,前端分配逻辑的话,差不多能扛住

    不过平均 5000qps 差不多日活得上百万了,你们还在为这事苦恼?
    Feiex
        66
    Feiex   53 天前
    @mengzhuo 业务模块是优惠计算、优惠最优解,计算密集型。用 go 重写可以缩减到 20 个实例吗?
    julyclyde
        67
    julyclyde   53 天前
    @mengzhuo 果然不是同一个腾讯
    2i2Re2PLMaDnghL
        68
    2i2Re2PLMaDnghL   52 天前
    @Feiex 我觉得你这得在算法上下功夫。
    刚播种的知识:换语言重写产生的性能优化 80%来自于重写,20%来自于换语言。
    index90
        69
    index90   52 天前
    lz 思考的方向错了,并不是技术选择了产品,而是需求选择了技术。

    你的问题应该是,是否有人愿意花钱买一个“一定要 go 写的”商城系统?
    lbp0200
        70
    lbp0200   46 天前
    go 语言对标的是 C/C++,你见过用 C++开发的商城系统吗?
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3656 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 05:38 · PVG 13:38 · LAX 21:38 · JFK 00:38
    ♥ Do have faith in what you're doing.