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

Go 成功让我实现了人格分裂

  •  
  •   GM · 2021-08-08 23:44:27 +08:00 · 16225 次点击
    这是一个创建于 996 天前的主题,其中的信息可能已经有所发展或是发生改变。

    从开发者的角度,非常讨厌 Go 语言的语法,极其讨厌,所以至今不愿意去学,也不愿意去用,新项目宁愿守着 java 、kt 。

    从使用者的角度,非常喜欢 Go 语言开发的各种软件,非常喜欢,零依赖的一个 binary 太他妈的好用了。

    Go 这坨屎真的让我很纠结很矛盾。

    第 1 条附言  ·  2021-08-09 10:58:34 +08:00
    部分网友说“语言只是工具”,这个我赞同你们。

    但是你们言外之意不外乎是“语言只是工具而已,都能干活,没必要喜欢、讨厌某个语言”,这个我表示强烈不赞同。

    确实,他们都是语言,都是干活、赚钱的工具,但是就语法美感方面,语言和语言之间是有很大的差异的。

    这个语法美感,你可以说这个很主观,确实,这个东西非常的主观,但是确实真实存在。

    个人觉得,只要实际使用过多种语言,就会、就能够感受到这种所谓的“语法美感”。

    PS:
    部分同学误会了我,以为我就只知道用 Java 所以就口出狂言,只能说:此言差矣。

    我工作中实际中用到(并且熟练掌握)的语言有:
    * Java
    * C#
    * VB
    * Objective-C
    * C
    * PHP
    * Erlang

    个人玩过的(初步掌握,能写一些玩具项目)语言有:
    * Kotlin (是的我没在实际项目中使用过 Kotlin )
    * Scala
    * Ruby
    * Elixir
    * Swift
    * C++(掌握得非常的浅,但确实真实使用,就不要脸地列出来了)

    觉得我是个不知天高地厚的就口出狂言的小子的朋友就免开贵口了吧。
    169 条回复    2023-11-26 12:33:50 +08:00
    1  2  
    yxcoder
        101
    yxcoder  
       2021-08-09 14:23:07 +08:00
    除了 if err!=nil 和 没有泛型,感觉没啥痛点了
    x940727
        102
    x940727  
       2021-08-09 14:23:48 +08:00   ❤️ 1
    @gowk 语言不是问题,问题是语言所有的生态。比如写游戏就是 C++,搞大数据就是 Java,搞科学计算大部分还是 Python 一样,不是某个语言不能干某些事情,而是某些事情用某个语言来干,更快更好。
    zjyl1994
        103
    zjyl1994  
       2021-08-09 14:26:50 +08:00
    等泛型出来就香爆。if err 的问题,我买了宏键盘一键输入解决了。
    xmge
        104
    xmge  
       2021-08-09 14:26:52 +08:00
    @x940727 承认 java 的面对对象很强大。我见过的几乎所有 java 代码都写 com.company.packet,你说我不写行吗?
    并没有说 java 不强大,只是想表达 go 写起来很清爽。
    gowk
        105
    gowk  
       2021-08-09 14:28:41 +08:00
    @x940727 嗯,我只是随便一贴,忽略即可哈
    AndyAO
        106
    AndyAO  
       2021-08-09 14:34:15 +08:00   ❤️ 6
    像极了口出狂言的小孩,因为你根本就没有说明理由,谁知道你说的是什么意思。

    只看到情绪,看不到任何理性思考。
    x940727
        107
    x940727  
       2021-08-09 14:36:23 +08:00
    @xmge 如果是大家一起写,其实对于个人来说,包早就是建好的了,完全不需要你重复的去建,实际上就是建 Java 文件写业务而已,个人项目自己想怎么写就怎么写了啊……
    peng0416
        108
    peng0416  
       2021-08-09 14:41:20 +08:00
    JavaScript 我都没说它是屎
    peng0416
        109
    peng0416  
       2021-08-09 14:43:24 +08:00
    @agagega 这东西的难度可能并不在设计和实现上,而是分蛋糕,毕竟老语言基础太厚,新生产品想插一脚真不容易
    pluvet
        110
    pluvet  
       2021-08-09 14:52:40 +08:00   ❤️ 1
    我吹爆 C#
    GM
        111
    GM  
    OP
       2021-08-09 15:00:28 +08:00
    @gowk
    I'm not stuck myself in any specific programing language. Please refer to my first appended post (or comment?), Thanks.
    GM
        112
    GM  
    OP
       2021-08-09 15:02:51 +08:00
    @peng0416

    JavaScript 语言本身看起来恶心,产品用起来也恶心。不像 Go,看着恶心,产品用起来很爽。

    所以,感谢上帝,JavaScript 并没有让我陷入精神分裂状态。
    lysS
        113
    lysS  
       2021-08-09 15:19:07 +08:00
    @GM go 看起来很好吧,可读性很强的
    AlexPUBLIC
        114
    AlexPUBLIC  
       2021-08-09 15:24:17 +08:00
    我也觉得 go 语法很恶心 人家是 int a 它非是 a int
    chuwt
        115
    chuwt  
       2021-08-09 15:29:39 +08:00
    @GM 我觉得他 @gowk 的意思是你只是会使用 go,比如写一些项目,而并不了解 go,比如他的实现和版本历史。go 语言的设计和实现是社区人员们的持续讨论与优化的产物。具体可以去 github 上看看,社区的热情还是有的。
    sgissb1
        116
    sgissb1  
       2021-08-09 15:37:43 +08:00
    坐等一个大哥来聊一聊 go build 问题,很多开源的编译问题很不友好,go 的各种依赖拉取也很烦。
    GM
        117
    GM  
    OP
       2021-08-09 15:40:48 +08:00
    @chuwt
    嗯........事实上,由于非常反感 Go 的语法,我根本没去使用过它,所以,根本不存在“只是会使用 go”这个情况,因为我根本连用都没用过 🤣
    Hanggi
        118
    Hanggi  
       2021-08-09 15:41:25 +08:00
    Go 语言有自动过滤人的特性。
    无法理解 Go 语言编程思想的人就被自动劝退,能接受并理解 Go 语言思想就会如鱼得水。
    prenwang
        119
    prenwang  
       2021-08-09 15:50:50 +08:00
    喜欢吃屎又嫌屎不好看, 怎么办, 闭着眼睛吃吧
    no1xsyzy
        120
    no1xsyzy  
       2021-08-09 16:04:14 +08:00
    炸鸡好吃,但炸鸡需要开油锅太麻烦了,只吃别人炸的炸鸡

    这有什么好纠结好矛盾的?
    yazinnnn
        121
    yazinnnn  
       2021-08-09 16:18:12 +08:00
    Go 语言编程思想是什么思想?
    ericguo
        122
    ericguo  
       2021-08-09 16:36:28 +08:00
    熟练掌握 Erlang 的绝对不会把 Java 排第一。。
    GM
        123
    GM  
    OP
       2021-08-09 16:46:55 +08:00
    @ericguo 在 12 、13 年左右,页游火爆的时候,当时所在公司用过 Erlang 开发页游服务器,我有参与几个项目的开发,勉强是熟练掌握了吧 🤣,不过现在很少用了,现在主力是 Java,自然就把 Java 排第一了。
    x940727
        124
    x940727  
       2021-08-09 17:09:05 +08:00
    @yazinnnn 不知道,大概,可能,应该是所谓的大道至简?狗头保命 :)
    darrh00
        125
    darrh00  
       2021-08-09 17:11:35 +08:00   ❤️ 1
    一直不觉得 if err != nil 有什么不好看的,写起来感觉很舒服
    seakingii
        126
    seakingii  
       2021-08-09 17:15:16 +08:00
    go 语言表示不背这个锅
    fyxtc
        127
    fyxtc  
       2021-08-09 17:23:36 +08:00
    v2 周经语言贴
    iyaozhen
        128
    iyaozhen  
       2021-08-09 17:24:08 +08:00
    为啥 论点呢?

    我其实挺想楼主说说,我用过的语音不多,但觉得 go 可圈可点还行吧
    huZhao
        129
    huZhao  
       2021-08-09 18:23:51 +08:00   ❤️ 2
    语言是工具,我们是工具人
    blackboom
        130
    blackboom  
       2021-08-09 18:41:06 +08:00
    我是从 15 年左右开始尝试 Go,反反复复丢了又捡起来用,现在只能说自己算是熟悉了,写起来舒心的多。

    刚开始 Go 有确实各种不适应的点,极其难以接受,其实多多熟悉生态,掌握最佳实践后对 Go 大有改观。
    GM
        131
    GM  
    OP
       2021-08-09 19:02:07 +08:00
    @iyaozhen
    我“非常喜欢 Go 语言开发的各种软件”,这还不算是对 Go 的赞许?
    sigl0p
        132
    sigl0p  
       2021-08-09 19:29:11 +08:00
    很讨厌变量名后置的写法,和主流语言格格不入,频繁切换语言开发时偶尔会因为这个怀疑人生。
    Martens
        133
    Martens  
       2021-08-09 19:48:29 +08:00
    golang 狗都不学
    fuchaofather
        134
    fuchaofather  
       2021-08-09 19:57:16 +08:00
    go 语法就是💩,别的不说就单一条:类型在变量之后,完全是为了不同而不同,你是标记语言吗?不是!
    Leviathann
        135
    Leviathann  
       2021-08-09 20:09:59 +08:00   ❤️ 1
    @fuchaofather
    @sigl0p
    新语言里的主流都是类型后置,因为有类型推导可以省略不写
    包括 Typescript Kotlin Swift Rust
    不过都有个冒号分隔开变量和类型
    littlewing
        136
    littlewing  
       2021-08-09 20:12:30 +08:00
    那你倒是说说哪里让你不爽了啊
    SuperManNoPain
        137
    SuperManNoPain  
       2021-08-09 20:38:14 +08:00
    运行的时候确实爽的飞起,语法看的我想死,😤
    robinlovemaggie
        138
    robinlovemaggie  
       2021-08-09 20:38:26 +08:00
    LZ 这一顿炫技之余竟然忘记这是一个 py 论坛。。。
    iyaozhen
        139
    iyaozhen  
       2021-08-09 20:48:28 +08:00
    @GM 不不 我是想听具体讨厌的地方,和其它语言的区别
    jeeyong
        140
    jeeyong  
       2021-08-09 20:51:27 +08:00
    老哥? 要不试试 Python ? 这才是世界上最好的语言.哈哈哈
    kksco
        141
    kksco  
       2021-08-09 20:58:34 +08:00
    @sigl0p
    @fuchaofather
    懂哥们比设计者还懂编译原理呗。类型推断以前是小众特性,现在走进主流了。rust 不也是类型后置。
    查了下:Scala (2004), F# (2005), Go (2009), Rust (2010), Kotlin (2011), TypeScript (2012), and Swift (2014) 都是类型后置
    micean
        142
    micean  
       2021-08-09 21:13:12 +08:00
    if err != nil 和 throw Exception 哪个舒服?
    CosimoZi
        143
    CosimoZi  
       2021-08-09 22:44:42 +08:00
    一个静态语言, 类型系统的门都没入......
    TypeError
        144
    TypeError  
       2021-08-09 22:47:52 +08:00 via Android
    @fuchaofather 类型后置+推导不比前置舒服多了?
    xarthur
        145
    xarthur  
       2021-08-10 06:46:03 +08:00 via iPhone
    理解楼主的想法。
    xsen
        146
    xsen  
       2021-08-10 08:27:14 +08:00
    @sigl0p @132
    就是个习惯问题,若一段时间内持续使用就没这个事情
    不过毕竟新的几种语言,基本都是类型后置
    xsen
        147
    xsen  
       2021-08-10 08:28:19 +08:00
    @micean @142
    exception 容易给滥用,使用质量高低与人有关
    xjlnjut730
        148
    xjlnjut730  
       2021-08-10 08:41:12 +08:00
    我也是挺赞同的,主观上还是不太能接受 Go 的语法。尝试了好多次,还是 Java 爽~
    GM
        149
    GM  
    OP
       2021-08-10 08:45:51 +08:00
    GM
        150
    GM  
    OP
       2021-08-10 08:48:26 +08:00
    @iyaozhen
    我说得很清楚了,那就是:语法丑陋。

    你可以说这个观点非常主观,确实是非常主观的,因为丑陋和优美的本来就没有一个客观判定标准。

    我觉得丑,那我就是觉得丑,不会因为“啊它很流行啊”于是就觉得美。

    我只是把我感受说出来,至于别人觉得怎么样,那是别人自己的主观感受。
    GM
        151
    GM  
    OP
       2021-08-10 09:08:57 +08:00
    @micean 很明显,当然是 throw Exception 舒服啊。
    willygeek007
        152
    willygeek007  
       2021-08-10 09:16:47 +08:00
    每周引战贴, 为了喷而去喷, 不值得.
    过于片面的言论, 容易引来口舌之战.
    年轻时候我也这样过, 直到不断被打脸.
    最后, 开心就好
    lolizeppelin
        153
    lolizeppelin  
       2021-08-10 10:04:02 +08:00
    我以前也和 lz 一样,后来才想明白

    你先想想 go 设计初衷是用来干嘛的
    顺便想想 erlang 设计出来是干嘛的

    人家本来拿来干自己家特定活的,本来一开始就不是面向大众化让你干各种活的,人家适配的是自己家的活

    人家 erlang 本来方便并发传输数据的,你非要拿来写游戏
    人家 go 本来就是别人用来写 k8s 管理集群的,你非要拿来写游戏

    好了,开发者看见火了也想适配一下用户,但是用户需求和语言设计初衷有冲突,结果两边都不开心了
    现在你明白为什么 go 加个泛型扭扭捏捏了把
    saulshao
        154
    saulshao  
       2021-08-10 10:37:18 +08:00
    我还以为你实现了一个叫做"人格分裂"的功能或者系统....
    danc
        155
    danc  
       2021-08-10 12:32:23 +08:00
    我从一开始就学习的 Go+Rust,现在工作中也主要使用 Go+Rust,这两把梭子各有所长,配合使用还是很不错的。偶尔会写写 js,python 之类的。我是非常讨厌 Java 之类的,也讨厌 python 之类的。不过嘛,也没必要去踩,自己尽量不碰就可以了嘛
    danc
        156
    danc  
       2021-08-10 13:05:40 +08:00
    之所以喜欢用 Go,Rust 这种,这是因为一开始就学习的这两个,先入为主了。对于我来说:1,Go,Rust 编译完了就一个 binary,拷过去运行就好了,就是做个 docker 镜像,做个裸镜像,也是很方便快速的嘛。其他的,Java,Python,Php 等,都什么嘛?你不要告诉我 Java 之类的也可以整成单 binary,人家 Go,Rust 这是天生的、cheap 的。2,Go,Rust 这种异常处理机制,虽然简陋,但确实有效。try catch 之类的,都什么嘛? 3,网络相关,没有什么比 Go 顺手了,没啥心智负担。4,设计模式,啥是设计模式?
    wowbaby
        157
    wowbaby  
       2021-08-10 15:42:20 +08:00
    不太喜欢 go 的语法,还有 python 的缩进语法,难受
    openmm
        158
    openmm  
       2021-08-10 16:20:57 +08:00
    @iold 哈哈哈哈 关于语言的讨论 肯定会有 php 的经典语录
    wangritian
        159
    wangritian  
       2021-08-10 18:14:13 +08:00
    这种问题跟“香菜臭不臭”一样对成年人来说没什么交流意义
    GM
        160
    GM  
    OP
       2021-08-10 18:38:12 +08:00
    @wangritian 那你为什么还要回复一下呢?有什么交流意义吗?
    whimsySun
        161
    whimsySun  
       2021-08-10 23:05:40 +08:00
    楼主掌握了这么多流量密码
    secondwtq
        162
    secondwtq  
       2021-08-11 02:15:16 +08:00
    Go 最大争议其实在语义上,并不在语法上 ...
    Y9qn1d
        163
    Y9qn1d  
       2021-08-11 08:54:59 +08:00
    我反而喜欢 go 的语法,而不喜欢 java c#之类的,go 看得舒服 java c#太繁琐啰嗦了 err!=nil 泛型没有我都觉得不是问题
    c88155745
        164
    c88155745  
       2021-08-11 11:20:15 +08:00
    大家小心此人,此人有人格分裂。
    GM
        165
    GM  
    OP
       2021-08-11 15:09:28 +08:00
    @c88155745 大家不要怕,我之前是有人格分裂症,不过,现在我们已经好了。
    fuchaofather
        166
    fuchaofather  
       2021-08-11 16:37:22 +08:00
    @kksco @Leviathann 专门查了下类型推导的相关知识,学到了,多谢指导。不过好像有的文章说类型后置跟推导并不一定是强因果关系
    abccccabc
        167
    abccccabc  
       2021-08-17 20:21:11 +08:00   ❤️ 1
    我也是觉得 go 是一坨屎,但还必须要踩一踩。^_^
    tlxf
        168
    tlxf  
       2022-11-12 17:37:38 +08:00
    @EscYezi ,这个合体不就是“swoole”吗?哈哈。
    Ethkuil
        169
    Ethkuil  
       156 天前
    @namelosw 这难道不就是 C#吗(
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1018 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 23:35 · PVG 07:35 · LAX 16:35 · JFK 19:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.