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

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

  •  1
     
  •   zwgf · 2021-10-05 22:05:37 +08:00 · 9676 次点击
    这是一个创建于 1145 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    求解

    第 1 条附言  ·  2021-10-05 22:56:40 +08:00
    对于我来说,编程语言都是工具,所以哪个工具顺手,就用哪个。没有语言鄙视链。请不要带节奏。

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

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

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

    然而 magento 的二次开发的学习成本, 比你拉团队从头写都高
    Hanggi
        7
    Hanggi  
       2021-10-05 22:22:44 +08:00
    @zwgf 你这搜索确实不给力,我随便搜都出来好几个。

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

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

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

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

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

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

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

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

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

    就算电商,CMS 热潮已退,那其他的 web 产品,也没有见到
    danhahaha
        18
    danhahaha  
       2021-10-05 22:53:16 +08:00
    @westoy 最近搞 magento 开发,别的不说,光是文档,就不是其他系统可以比拟的,不过学习成本真是高
    vinle
        19
    vinle  
       2021-10-05 23:23:54 +08:00
    记得 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  
       2021-10-05 23:26:47 +08:00
    商城是需要创新的地方么,php 和 java 写的商城有什么不够用么?

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

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

    特别 cms 这种东西,脑子正常点的话,都不会用 go 在造一个轮子吧。。。
    fkdog
        25
    fkdog  
       2021-10-06 00:42:37 +08:00
    因为大部分厂商都用 go 写一些高性能的中间件。

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

    go 有 docker,k8s...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    不是 go 不擅长写这些,是如今已经没人新起这样的项目了。
    fox0001
        53
    fox0001  
       2021-10-06 18:44:19 +08:00 via Android
    假如已经有个成熟稳定的网站在跑,谁会闲着没事用 go 去重写?
    guanhui07
        54
    guanhui07  
       2021-10-06 19:17:53 +08:00   ❤️ 2
    业务还是 java,php
    pengtdyd
        55
    pengtdyd  
       2021-10-06 19:26:03 +08:00
    容器技术 Go 还是王者,其他的就一般吧了
    mengzhuo
        56
    mengzhuo  
       2021-10-06 22:55:45 +08:00
    @julyclyde 降低应用使用的 CPU 总量(预占 /保留的资源)。
    Feiex
        57
    Feiex  
       2021-10-07 00:23:53 +08:00
    @mengzhuo golang 可以显著降低应用资源占用吗?
    比如高峰期 5000qps 维持在 60%cpu 使用率情况下,计算密集型,spring 用了 160 核
    zoharSoul
        58
    zoharSoul  
       2021-10-07 12:14:27 +08:00
    @Feiex #57 能显著降低内存占用, 对比 Java
    test0x01
        59
    test0x01  
       2021-10-07 12:51:21 +08:00 via Android
    网上为什么一个汇编语言写的商城都没有?
    Feiex
        60
    Feiex  
       2021-10-07 19:45:31 +08:00
    @zoharSoul #58 如果只是降低内存占用的话,那感觉不是很合算呀,毕竟公司里面部门成本都是按使用核数计算。
    在我看来需要如果可以降低计算密集型程序的 cpu 使用率达到 30%,放弃 java 生态做 go 重构还是勉强可以汇报的
    zoharSoul
        61
    zoharSoul  
       2021-10-07 19:53:32 +08:00
    @Feiex #60 我们成本统计按具体价格算的
    zoharSoul
        62
    zoharSoul  
       2021-10-07 19:55:11 +08:00
    @Feiex #60 而且互联网大部分 web 后端服务都是 io 密集型, 按核数统计意义不大
    dbskcnc
        63
    dbskcnc  
       2021-10-07 20:29:25 +08:00
    前有 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  
       2021-10-07 21:02:20 +08:00 via iPhone
    产品不只有 curd...
    mengzhuo
        65
    mengzhuo  
       2021-10-07 21:58:46 +08:00
    @Feiex 还不如看看是哪个家伙乱写逻辑,估计能减半,160 核,差不多是 40 个实例。
    某鹅内部 Go 写的话,大概是 6 个实例左右(一般业务还会有 50%预留),注意对象池,前端分配逻辑的话,差不多能扛住

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

    你的问题应该是,是否有人愿意花钱买一个“一定要 go 写的”商城系统?
    lbp0200
        70
    lbp0200  
       2021-10-15 11:53:18 +08:00
    go 语言对标的是 C/C++,你见过用 C++开发的商城系统吗?
    fo0o7hU2tr6v6TCe
        71
    fo0o7hU2tr6v6TCe  
       2021-12-23 10:13:22 +08:00
    我也一直在找,如果有找到合适的开源项目麻烦踢一脚 3q
    mlbjay
        72
    mlbjay  
       2023-07-04 15:49:39 +08:00
    之前公司需要临时搞一个 web 商城,直接用 wordpress 部署了。
    但是有点儿深度定制需求,改点儿东西,那就直接火葬场了,公司的后端都是些 py 的,没人会 php 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2646 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 02:54 · PVG 10:54 · LAX 18:54 · JFK 21:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.