blog
blog copied to clipboard
Golang: Fucking Go official, Goodbye Go
related:
- [x] #309
- [x] #247
- [x] #343
- [x] #347
- [x] #162 : 对比 vlang 的泛型<T>设计
- [x] #363 : zig 语言
艹他妈的 Go 官方: 再见 Go !
- ✅ Go 官方最近的恶臭表现, 实在忍无可忍.
- ✅ 写了5年+ Go, 这可能是我最后一次关注这个傻逼社区的治理讨论.
update 2022.09:
- ✅ https://fasterthanli.me/articles/i-want-off-mr-golangs-wild-ride
- ✅ https://fasterthanli.me/articles/lies-we-tell-ourselves-to-keep-using-golang
- 另外2篇老外的文章. 该作者也转向 Rust.
- 该作者设计过一门语言: https://ooc-lang.org/
- https://github.com/ooc-lang/rock
update:
- ✅ Go 官方的回应, 证实了, 这是个虚伪透顶的独裁社区.
- Go 官方如果不回应, 我没招. 无从判断他们的态度.(还要不要做人?
- 也就无法打脸一些"伪理中客", 毕竟如果没有证据, 只是猜测, 无法服人.
- 但, 好在, 他们愚蠢的回应了. (下文展开...
- ✅ 那就没啥好说的. 我不配写 Go. 让配的人写就好了.
update: 提案被折叠的内容
- ✅ 鉴于被折叠的内容很重要, 太长不看. (提前放这里了)
最近发生了2个事情:
- Go 1.18 发布了, 正式支持
泛型[T]
. (支持泛型是好事, 恶心的是实现非常丑陋,[T] vs <T>
) - Google 内部团队发了个新提案: 引入手动管理内存.(类似社区提案通通被拒, Google 自家人就秒过, 进入"假装讨论阶段")
- https://github.com/golang/go/issues/51317
虚伪的社区治理:
- ✅ 简单说, Go 只有 Google 内部团队意见是被关注的.
- ✅ Google 以外的社区意见, 当与官方冲突的时候, 基本是忽略的.
- ✅ 也就是说: 这个傻逼社区, 根本不存在社区.
虚伪的 Go 社区讨论:
- ✅ 第一层虚伪: 区别对待/响应 社区提案 vs Googler 自家员工提案.
- 该提案下, 贴过类似提案的处理/相应周期. 我也顺手翻了大量提案的处理动态.
- 大部分提案, 平均被 go 官方标记为 active 的周期是 1周.
- 此
Google 自家人
提案, 仅1天, 就标记 active了, 突然就高效了? 就这?
- ✅ 第二层虚伪: 类似
这个诉求
的提案, 过去社区已经有很多人提过. 过去, 官方的态度是:不需要+closed
.- 该提案有人贴了过去的
类似提案
处理结果. - 换成 Google 自家人提, 就突然
又需要
了? - 感情上,
社区
需要, 就不算?Google
需要, 就算?Go 官方
是一点碧莲都不要! - anyway, 我是反对这个提案的.
- 该提案有人贴了过去的
- ✅ 第三层虚伪: 当我和另一个俄罗斯🇷🇺人, 质疑这个提案的
存在必要性
时. 官方态度:不正面回应+顾左右而言他
.- 这位俄罗斯🇷🇺开发者, 贴了更多证据.
- Google 官方后续做法: 主动
hide 我的质疑讨论, 并清零社区 emoji 点赞
. 试图混淆视听.(让反对声音消失 - 自始至终, 官方都没有一个人回应: 这个提案的必要性. (尝试直接跳过, 进入讨论: 如何实现的阶段...
- 潜台词: Google 需要, 就是必要的(毕竟是爹). 无需质疑+讨论.
- ✅ https://github.com/golang/go/issues/51317#issuecomment-1070848780
- ✅ 简单说, 这个提案, 是非常重要的一个提案, 会影响未来所有人的代码书写模式.
- ✅ 然而, 这个提案, 讨论一经提出, 就被标记
active
.- https://github.com/golang/go/issues/51317#issuecomment-1049160908
- ✅ 大部分人对这个状态变更不了解.
- ✅ 简单说, 过去被官方否决的社区提案, 通常7天, 才进入
active
状态.- 还有一些装睡的人, 试图辩解这是巧合.
- 对, 就是这么巧. 巧的次数有点多而已.
- ✅ 这次换自家兄弟, 都不装了.
- ✅ 艹他妈的.
‼️ 注意: 提案创建时间 + 被官方标记 active 时间. 官方不要逼脸.
![image](https://user-images.githubusercontent.com/3252130/158935865-c0fa9e67-3cc7-4daa-bc7b-9d8e1b990506.png)
关于这个社区: (理解能力有问题的, 注意限定上下文...
- ✅ 国内社区的人, 基本是麻木的. (我在几个不同的 Go 技术群尝试讨论这个提案)
- ✅ 都是事不关己高高挂起.
- ✅ 没意思. 这样的社区. 实在恶臭. (对这句话引起不适的, 请看后面详细回复...
- ✅ 很多人, 都不喜欢这个提案, 但是, 依然不会出来表达. (最终会是少数人的暴政压迫所有人)
- ✅ 沉默的大多数. 不愧是国人性格. (对这句话引起不适的, 请看后面详细回复...
- ✅ 问题是, 这个提案, 会影响到所有人.
- ✅ 那又怎样? 反正总会有其他人发声吧?
- ✅ 这个国民性格. 恶臭. (对这句话引起不适的, 请看后面详细回复...
为什么这么生气?
- ✅ 以过去 go 官方劣迹斑斑的行为. 这个提案, 基本是必然通过的.
- ✅ 希望官方打我脸. (然而并不会...
- ✅ 那这样的傻逼社区. 没有必要继续为伍.
- ✅ Go 1.17 之前, 也有一些蠢设计. 都忍了. 毕竟无伤大雅.
- ✅ Go 1.18 这个傻逼泛型实现, 会比 Python 2.7 vs Python 3.4 更加恶臭.
- ✅ 人类的教训: 就是人类从来不吸取教训. 重复犯同样的错误.
讨厌这些双标狗们:
- ✅ fucking Go official.
- ✅ fucking everyone.
- ✅ 默许这个恶臭的官方的行为的每一个人, 都是纵容者.
- ✅ 这个世界愈发恶臭.
- ✅ 同样, 程序员的世界, 也是一样.
为什么一定要对他们竖中指?
- ✅ 当这些虚伪恶臭的双标怪, 一次又一次强奸你, 并正在强奸你的时候.
- ✅ 你不仅要朝他竖中指, 更要朝他吐痰.
- ✅ fuck you. 艹他妈的.
- ✅ 如果你不表达, 那活该你被一次又一次强奸.
- ✅ 强奸这种事, 只要你纵容了. 就不会只是一次, 而是无数次等着你.
关于 Rust VS Go:
试图把 go 进行 rust 化的做法极其愚蠢:
- ✅ 正如我在提案里喷的意见: https://github.com/golang/go/issues/51317#issuecomment-1070848780
- ✅ 这些打着性能优化旗号, 强奸所有人的提案. 是非常恶臭的.
- ✅ 真正在意 Go GC 性能的人, 你他妈的的该去用 C/C++/Rust/Zig(新秀).
- ✅ 而不是试图把 Go 改造成 Rust.
- 过去 Python 社区也有很多蠢货, 但也没有 Go 社区蠢, 至少社区的大多数并不想去掉 GIL.
- ✅ 你永远叫不醒这些装睡的臭傻逼们.
产品级佐证案例:
- ✅ 当 go 不满足 or 达到优化瓶颈, 脑子正常的做法, 主动切 rust.
- ✅ 当 go 不满足 or 达到优化瓶颈, 脑子正常的做法, 主动切 rust.
- ✅ 当 go 不满足 or 达到优化瓶颈, 脑子正常的做法, 主动切 rust.
- ✅ 如下2个大厂 or 产品级案例, 已经清楚证明: 试图把 go 变成 rust 的做法, 极其愚蠢(东施效颦).
案例1:
- 字节开源的 Go RPC: kitex, 首个版本 go.
- 而性能优化版本是 rust 重写版: Volo
- https://mp.weixin.qq.com/s/vlDs_Bla7p_qyYh-8LvZOw
案例2:
- 某个时序 db 中间件, 初版用 go 写, 当前已用 rust 重写
- https://github.com/cnosdb/cnosdb
- https://my.oschina.net/cnosdb/blog/5555116
关于 Rust:
- ✅ 是的. 我已经学习了1个月的 Rust 了. (Go 泛型的恶心, 已经潜意识让我觉得 Rust 没那么讨厌了)
- https://github.com/better-rs/learn-rs
- https://github.com/better-rs/annotated-rs
- ✅ Rust 有很多非常操蛋的设计.
- ✅ 但总体上, 确实也有很多高明的地方.
- ✅ 虽然从2018年, 就了解了 Rust. 一直讨厌 Rust 的 "符号学大师"(现在依然讨厌).
- 而且2018年的 Rust, 几乎没有任何生态.
- 而这几年, Substrate 项目, 几乎把 Rust 的基础设施构建完善了.
- 这个时间点, 切入 Rust, 是非常合适的.不早不晚.
- Rust 的语言设计, 基本趋于稳定.
- Rust 语法体操, 可以玩起来了. ( or 实在不喜欢 rust, 还可以试试 zig)
- ✅ 但是, Go 更加恶臭. Go 加入
手动内存管理
, 会比 Rust 性能更好? 笑话.- 这些臭傻逼知道自己在干什么吗?
- ✅ 是时候 all in Rust 了.
- ✅ 为什么是2022年决定学习 Rust.
- 最初的契机是: 为了研究 Substrate项目.
- Rust 的复杂语法(符号), 导致不完整学完 Rust, 是没法读懂 Substrate 项目.
关于 Go:
- ✅ 最早了解 Go 是 2014 年. 当时在写 Python 2.7(怀念那时的美好).
- 当时和 mentor 讨论 Go 的前景, mentor 非常不看好, 理由是 angular 被坑(不兼容升级, Google 传统艺能). 讨厌 Google 的产品.
- mentor 由此站 react 一边. 顺势, 这些年 react 也确实赢了.
- 那我开始写 Go 是2016/2017年. 初衷是 Python + Django 的性能, 实在捉急.
- 当 Python 性能优化的手段, 全上一遍(拆微服务之后), 依然捉急. 社区的异步生态迟迟没有进展.
- 在那个时间, 评估了 Go 和 Rust.
- 没有选 Rust, 一个是丑陋的语法美学(现在依然丑), 一个是几乎没生态. 土法炼钢阶段.
- so, 没有意外, 选择了 Go.
- 老实说, 这5年左右. Go 带来很多快乐. 虽然 Python 依然是写起来最爽的.
- 写 Go 的时候, 也学到了很多良好的架构设计. Go 有非常多聪明的设计.
- 感谢 go-micro
- 感谢 Go-micro 这个项目, 让我学到非常多的架构经验.(一览众山小)
- 虽然这个项目, 被作者玩坏了. 非常可惜.
- 5年. 差不多该痒了.
- Go 依然是非常适合写 web, 写中间件服务的. 让别人写去吧.
- 原本最近还想用 Go + Go-zero/go-kratos, 开个坑写电商平台(repo 进度1%). 那就算了. 留给 rust 了.
- ✅ 未来会越来越少写新的 Go 项目. (从 Python 转 Go 的时候, 也对社区失望, 但不至于完全不想写)
- 讨厌, 就是最好的理由.
- 而 Go + 丑陋泛型, 我看到都倒胃口. 艹他妈的. 再见.
- ✅ 没有 Go, 世界并不会怎样.
All in Rust:
- ✅ 艹他妈的 Go. 再见.
- ✅ 兜了一圈, 最终发现, 还是 Python 和 Rust 搭配一起.
- ✅ Python 也不是当年的 Python 了.
- 这个社区, 还是很搓. Django 3 还在 异步 I/O 挣扎.
- 好在, 我回归了.
- ✅ Rust, 我来了.
关于 Go 泛型提案有多少人讨厌:
- 知乎 - Golang有了泛型以后性能是不是会再提升一个档次?
- 关于对讨厌此泛型提案, 是不是少数人的意见?
- 我这个回答. 截止当前222个赞. 还在持续增长...
- 那为何当时提案讨论时, 这些人(go 开发者)不去发表反对意见呢?(很多人不关注官方动态, 没看见, 等看见就晚了)
- 那当前这个提案, 不是一回事?
来看看 Vlang(类 go 语法)的泛型<T>
设计:
- https://vlang.io/
- Vlang 这个语言, 语法7/8成是基于 Go 的. 语法相似度极高.
- Vlang
基于 <T> 实现泛型
, 那 Go 基本也可以. - 说 <T> 实现困难的, 可以闭嘴🤐了.
泛型:
- ✅ https://github.com/vlang/v/blob/master/doc/docs.md#generics
vlang 支持多返回值:
- ✅ https://github.com/vlang/v/blob/master/doc/docs.md#returning-multiple-values
Go 官方说<> 和 多返回值, 引起语义歧义的说法, 骗骗傻瓜还行!
- ✅ 不想做 != 做不了.
- ✅ https://vlang.io/
- ✅ vlang 快来教教
Go 官方
这帮傻逼!
关于 Go 泛型有多丑陋:
- ✅ 其他主流语言, c++, rust, dart, 基本都是使用 <> 来标识.
- ✅ 而 go 选择[]. 理由是<> 实现困难. 艹他妈的. (其他语言也困难?)
来看一些示例:
-
https://github.com/samber/lo
-
✅ 方法定义: 注意区分哪里是泛型, 哪里是 map
- ✅ 方法定义: 注意区分泛型 vs 数组.
- ✅ 使用方:
- ✅ 数据类型定义:
具有传染性的特性:
-
✅ 具有传染性的特性:
- ✅ 泛型
- ✅ async/await
- ✅ 手动 GC: x.new(), x.free()
-
✅ 简单说, 代码只要有一段引入这些特性, 所有传递链, 都不可避免要使用.
-
✅ 所有有泛型, 有 async/await 的语言, 最终都会被这些特性代码, 侵占掉绝大部分项目.
-
✅ 手动 GC, 一旦侵入到基础库, 就无一幸免.
- ✅ 理解反对这个
手动 GC
提案 和 反对泛型[T]
提案的原因, 是一致的.
- ✅ 理解反对这个
-
✅ 泛型, 必然会侵入到大量基础库.
- ✅ 觉得 [T] 香的, 恭喜你. 以后你可以天天看到它.
关于 Python 之禅:
- ✅ 理解 less is more.
- 做加法容易, 做减分难.
- 有舍有得, 无舍无得.
- 既要, 又要, 什么也得不到.
- ✅ 曾经的 Go, 比较好的继承了 Python 的
极简设计
美学. - ✅ 现在, 呵呵...
![image](https://user-images.githubusercontent.com/3252130/159105414-b0add4d3-847b-46b5-a1f6-89a2317f80b2.png)
- ✅ 对照一下现在的 Go. 在哪一层邪路上.
- ✅ 当然现在的 Python 也做错了很多, 违背了很多早期的理念.
关于一些编程设计理念:
- https://www.jdon.com/project/fundamental-laws-of-software-development.html
如无必要,勿增实体:
- ✅ 奥卡姆剃刀原理
这个泛型的实现,确实丑的一逼
确实
![image](https://user-images.githubusercontent.com/3252130/159103027-511866ee-77d0-4598-bd0d-4dccd77b45cf.png)
LS 这位 bestgopher 臭傻逼, 跑过来 BB 一句. 还 block 我. 是 TM 的多玻璃心(太拿自己当盘菜...
- 看不见我上面提到: 在几个 Go 技术群, 讨论这个提案.
- 一众讨厌这个提案的人, 也没有一个人, 去该提案下发表反对意见.
- 这个会影响所有人的提案, 他们虽然反对该提案. 但是, 依然选择默不作声.
- 这还不够恶臭?
你 TM 的瞎吗? 你 来 BB 就算了, 我也会引用你, 客气跟你解释. 你 TM 的 block 我, 还来 BB 个毛线? 我在意多你一个垃圾 block 吗? 傻逼.
特别声明:
- 我没有删他贴. 是他自己删的. 谢谢.
- 即便是他骂我, 我也不会删帖. 太拿自己当回事...
关于辩论:
- ✅ 你愿意来和我辩论, 我绝对有理有据和你探讨.
- 理, 越辩越明.
- ✅ 你如果只是来吐痰的, 我也会.
- 你也别想占到便宜. 包您满意.
关于一些装模作样的臭傻逼:
- ✅ 既然对自己使用的语言, 没有热爱, 也漠不关心, 就只是混口饭吃的臭傻逼.
- 就不要来我这里装模作样.
- 我从业这些年, 见得多了.
关于此提案(Go 手动GC提案):
- ✅ 我骂
Go 社区(官方以及某些人)
这些人恶臭, 是觉得这些人, 还有骂的必要. (如果觉得没必要, 连吐痰的的心情都没有...- 我讨厌这个提案. 我去提案下, 表达了我的不满.
- 你支持这个提案, 麻烦你也去提案下, 发表你的支持意见. 和反对的人辩论.
- ✅ 跑我这里装个逼, 证明你不恶臭?
- 不恶臭的你, 在哪个社区项目表达过自己的观点/意见?
- ✅ 既然明明有看法/意见, 同时和自己切身利益相关, 又不去表达? 不恶臭?
- 不言自明.
关于 Go 泛型提案:
- ✅ 木已成舟. 我知道这个提案的时候, 已经晚了.
- 为什么错过? 是2020年开始写 flutter, 中间很长一段时间没有关注 Go 社区.
- 等我听说泛型提案, [] 已经是确定结果. 我如果早一点知道, 同样也会尽力阻止这个提案成为事实.
- 我非常讨厌这个[]设计.
- 这个[]设计有多愚蠢, 时间会证明的.
- ✅ Rust, 我从2021年断断续续就在看, 潜意识, 其实已经是对 Go 愈发的讨厌.
- ✅ 当我去这个提案下喷这些傻逼官方, 双标狗的时候.
- ✅ 我看到另外一个俄罗斯人, 列举了更多证据.
- ✅ 对. 很多人不喜欢这个提案. 但是, 他们不敢站出来.
- ✅ 只有少数人, 敢站出来, 表达不满. 敢和所谓的"大多数"斗争.
- ✅ 迎合多数人的一边, 更容易.
- ✅ 提案下, 那些对我来点踩的一众懦夫.
- ✅ 没有一个人出来反驳我的质疑.
- ✅ 我尊重有不同意见, 也欢迎来辩论.
- ✅ 只会点踩, 躲在众人身后, 不是懦夫吗?
- ✅ 反对我的观点, 就勇敢的站出来批判我. 我欢迎.
- ✅ 站着观点大多数的一边, 更容易, 更安全.
- 当我喷国人恶臭的时候, 是我觉得值得喷, 还有喷的必要.
- 我当然知道: 麻木的中国人和麻木的老外, 一样多.
- 那些傻逼老外们, 一样恶臭. 但, 轮的着我喷吗? 跟我有关系吗?
- ✅ 我试图呼吁
国内 Go 社区
反对这个提案的人, 去该提案下发声.- 然后呢? 这些人, 默不作声了.
- 这不恶臭?
- 鲁迅批判那些"喜欢看杀头的中国人", 2022年的今天. 并没有少太多.
我一个不打算继续写 Go 的人, BB 什么?
- ✅ 对. 我根本没必要去发声.
- Go 变成臭狗屎, 又跟我有什么关系呢?
- 这些还在继续靠 Go 混饭吃的人, 都不在意. 关我什么事?
- ✅ 我对泛型的提案很失望.
- 更失望的是, 当一个更愚蠢的方案(社区提,官方秒拒绝, go 团队提, 秒进入讨论进程, 双标), 正在逐步成为现实的时候.
- 这个社区的人, 是多麻木.
- ✅ 这样的社区, 比我经历过的其他社区, 更加臭不可闻.
- ✅ 我也不觉得其他社区会更好.
- ✅ 我去喷了. 本来就是宣泄情绪. (一个确定会被 accept 的提案, 本来就没有可讨论性)
- 别人已经正在强奸你了, 你还要跟他讲道理?
- 当
社区大多数
被少数人
强奸的时候, 这群人, 还默契的配合: 官人你轻一点. - 贱不贱啊?
- Go 虚伪的官方人员, 截止当前, 有一个站出来, 理直气壮的反驳我的质疑吗?
- 有一个吗?
- 他们也只是假装没看见.
- 这个官方不虚伪? 如果不心虚, 摆出证据, 证明我胡说八道啊?!
- 我就是要撕破这个丑陋嘴脸.
- 也许我阻止不了这个提案.
- 但是, 可以让这些恶臭的官方, 下次作恶的时候. 至少装一下, 别露屁股.
- 劣迹斑斑的功德簿上, 帮他记一笔.
关于 Russ Cox:
- ✅ 我就是要指名道姓.
- ✅ Go 社区在他的"英明"治理下, 到处弥漫着恶臭.
- ✅ Go 有没有区别对待
Google 内部团队的提案
vs非 Google 社区提案
. - ✅ 只要是不瞎的人, 都心知肚明.
- ✅ 我劝你(Russ Cox)做个人吧.
关于 少数人的暴政
:
- ✅ 少数掌权者, 可以轻易利用权力, 操纵民意, 迫害大多数.
- ✅ 而不发声的"大多数", 轻易被孤立, 反而以为"反对者"是少数. 而更加不敢发声.
- ✅ 以极低成本(信息不对称)控制
舆论走向
, 就可以操纵所有人
, 操纵民意
(假民主).
写的真好,忍不住点个赞.这个issue真是我最近2天最开心的事
上一次发生类似的悲剧,还是 godep 团队被集体忽悠的时候,哈哈哈
才看到这个issue,支持一下。但是在下觉得go支持泛型就是一个最傻逼的事情,不管用什么方式实现。企图让go rust/c++化的一切行为都是在破坏go自身的语言哲学。issue说到的感觉好像是支持<>泛型实现的,对此在下保留意见。不过还是很高兴有比较清醒的程序员意识到了泛型的侵入性,而不是一群程序员在那边狂欢,觉得go终于变得“高级”了。从go背叛它的语言哲学的那一刻起,go就完了。在下非常讨厌1.18.
你喷Go团队的双标,喷Go团队的无视社区,独裁。我都赞同,可为何会扯到国民性格?恶臭?人家白人的傲慢,你拿国人撒气?这种傲慢,你全中国的开发者去社区上书也不会理你。你这样很难在国内获得战友,国外更别想
这个<>确实。。。emmm
你喷Go团队的双标,喷Go团队的无视社区,独裁。我都赞同,可为何会扯到国民性格?恶臭?人家白人的傲慢,你拿国人撒气?这种傲慢,你全中国的开发者去社区上书也不会理你。你这样很难在国内获得战友,国外更别想
你可能没注意上下文.
关于"讨论背景":
- ✅ 各语言(Python, go, js 等)的国内社区, 大部分开发者, 基本都不太关注社区提案.
- ✅ go 社区的问题是, 在泛型提案到定稿过程中, 贵乎有大量讨论(初始阶段, 我没并没关注到)
- 大量反对泛型设计的, 并没有去提案发声. (当然, 发声可能也不会改变什么, 毕竟社区不存在...
- 本次提案讨论, 我在国内 go 几个微信群, tg 群, 都鼓励反对该提案的人, 去提案下表达观点/论据.
- 然而并没有.
- ✅ 注意, 我呼吁的群, 不只是普通的 go 水群, 部分微信群, 是大佬群, 国内 go 知名 top 开发者, 都在其中的.
- ✅ 然而, 很遗憾, 这些所谓的大佬们, 截止当前, 并没有在该提案下表达任何观点
- ✅ 这些"大佬们", 在群内讨论, 明确表达反对意见...
- ✅ 我写这篇的时候, 鉴于不想暴露一些群讨论细节. 毕竟和这些人无关.
- ✅ 如果觉得: 这些都和国民性格无关, 请你解释一下 why? (枪打出头鸟, 闷声发大财, 各人自扫门前雪... 这些话, 好像不是其他民族的?
关于 "恶臭":
- ✅ 如果觉得: "恶臭"不当( 不喜欢, 不发声, 不拒绝, 假装看不见...
- ✅ 请你给我一个更准确的描述词汇, 我词汇量浅, 我学习一个...
关于"傲慢":
- ✅ 如果我批判的是另一个民族, 你可以给我扣这个帽子.
- ✅ 我批判我自己, 我也傲慢?
- ✅ 为什么我说国民性格, 你就被冒犯到了? 这自尊心这么脆弱? 轻易就被刺痛到?
- ✅ 如果觉得这个国民性格很棒. 请解释一下, 棒在什么地方?
- ✅ 一个容不下"批评和自我批评"的国民性格, 哪里值得骄傲?
才看到这个issue,支持一下。但是在下觉得go支持泛型就是一个最傻逼的事情,不管用什么方式实现。企图让go rust/c++化的一切行为都是在破坏go自身的语言哲学。issue说到的感觉好像是支持<>泛型实现的,对此在下保留意见。不过还是很高兴有比较清醒的程序员意识到了泛型的侵入性,而不是一群程序员在那边狂欢,觉得go终于变得“高级”了。从go背叛它的语言哲学的那一刻起,go就完了。在下非常讨厌1.18.
关于 go 社区蠢货试图对 go 进行 rust/c/c++ 化:
- ✅ 你的总结很到位: go 社区(官方)很多蠢货试图对 go 进行 rust/c/c++ 化.
- ✅ 这在其他语言, 譬如Python, 试图这样干, 一定会被社区大多数当傻逼一样看.
- ✅ 而在 go 社区, go 官方是在默许这类提案的.
- 对此类行为, 大多数的反对者们, 都假装没看见. (可能他们知道, 发声也没用?
- ✅ 所以, 这个独裁假社区, 必然会越来越糟糕.(这体验过的, 应该都懂?
关于 <T>
:
- ✅ 有必要强调一下, go 官方反对使用 <> 的一些屁话:
- 都是套路
- 那些问题, 不是不能克服, 是官方不想克服.
- 最主要的是实现泛型的人, 不想.
- 这也没毛病, you can, you up. 代码谁写, 谁说的算.
- 但是, 我不 can, 我不 up. 我可以不要这个[]实现, 行吗? 不行.
- ✅ 关于 <> 带来歧义:
- 这种屁话. 你稍微思考一下, 就能发现漏洞.
- rust/c++/dart, 这些语言使用<>实现的泛型, 都有歧义?
- 已经更新 vlang(仿go 语法) 的
泛型<T>
实现方案. 说实现不了的, 可以闭嘴🤐了.
- ✅ 关于 <> 带来编译器性能问题:
- 其他语言没有?
- 编译性能问题, 不能逐步优化?
- 性能优化慢, 提案不着急出啊? 笑话, 社区等了多少年了, 现在突然等不急了?
- 现在这个烂货提案, 就能用了?
关于 [T]
:
- ✅ go 非常不适合用 [].
- ✅ 不管他使用啥符号, 都不适合[].
- ✅ 因为 map 和 数组[], 都在使用 [] 这个符号. 这个符号在代码中的使用频率已经非常高.
- 基于 [] 实现泛型, 会导致满屏都是[], 需要识别具体含义.
- ✅ 基于 [] 实现泛型, 不只是对语言的破坏, 更是和其他rust/c++/dart 等语言背景开发者, 不兼容.
- 主动设置理解障碍...
- 是怕其他语言背景的开发者学 go? 这脑回路不一般. 为了保饭碗吗?
@jiangyuzhao
关于 美式 "言论自由":
- ✅ 这几天没注意, 今天特地去看了一下提案进展.
- ✅ 果然, 妙啊!
来看一下 go 官方的应对: (学习一下...
- ✅ go 官方, 对我的质疑. 选择了折叠评论. (并没有回应质疑...
- 注意: 只有 repo 管理员有权限折叠.
- 这里的折叠, 和正常盖楼过高的折叠, 是完全不同的. ( minimized vs hidden)
- ✅ 更妙的是, 这个折叠之后, 评论的 URL, 是无法复制的. 妙啊!
- 链接处上方位置: https://github.com/golang/go/issues/51317#issuecomment-1068458173
- 这里只能截图了.
- ✅ 而且折叠的评论, 点赞 emoji 也清零了. 妙啊! (这可以营造出, 被折叠的内容, 不值得看...
![image](https://user-images.githubusercontent.com/3252130/159841853-012526aa-d231-4227-bf6f-0d98ba253996.png)
- ✅ 这个go 官方的虚伪, 是彻底的.
- ✅ 但凡, 他官方出来个人, 敢正面回应一句质疑. 我可能会觉得这个社区还有救.
- ✅ 这个下限, 我是没预计到的. 哈哈, 果然是深不见底.
但是, fucking Go official, 他们只能咽下去:
- ✅ 毕竟 blog 是在我自己 repo. 他只能看着.
![image](https://user-images.githubusercontent.com/3252130/159842713-e15ec7bb-3e3a-4a4a-af32-a58a8ce11744.png)
- ✅ 这个关联 issue, 他们折叠不了. (这就够了...
- 让 go 官方这些傻逼恶心一下, 可能是我为这个社区做的一点微不足道的"贡献"
- ✅ 链接位置: https://github.com/golang/go/issues/51317#issuecomment-1071720399
- ✅ 我之前可能对这个社区还抱有幻想, 我错了.
- ✅ 我彻底滚好吧.
- ✅ 我不配写 go.
关于 go 官方究竟折叠了什么内容?
- ✅ 我质疑了哪些问题? Go 官方, 敢回应吗?
- ✅ 事实证明, 他们大概觉得不需要回应.(有没有怂, 不知道...
- ✅ 既然不心虚, 为何要折叠呢? 让群众骂我是臭傻逼, 不香吗?
- ✅ 既然不心虚, 应该 twitter 转发, 并把我喷成筛子啊?
- ✅ 毕竟现在他们折叠了. 但, 万一他真的删帖呢? (万一他们也一样够下贱呢?
- ✅ 所以, 截图了质疑内容: (他们哪天想喷我的时候, 来这里喷, 随时欢迎...我对我说的话, 负责...
- ✅ 截图晚了, 点赞的 emoji, 被官方清零了...妙... (折叠, 自带清零 emoji 点赞, 实在是高!
- ✅ 折叠后, 是不能点赞的...妙+1...
查看该评论: - https://github.com/golang/go/issues/51317#issuecomment-1068458173
![image](https://user-images.githubusercontent.com/3252130/159847181-a76a1141-f507-475a-8214-6fda5f938e81.png)
- ✅ 美式言论自由的虚伪, 是通过让"质疑"不被看见. 来实现的.
- 折叠评论.
- 再用更多饱和式盖楼, 让普通人看不到. 就好了. 这样就没有反对声音了.
- "投票"的时候, 让支持的人来投.
- 反对的人, 不通知就好了.
- ✅ 这个操作, 比某东方大国, 要高明很多.
- ✅ 毕竟, 我只能骂一句: 虚伪. 我拿他一点办法都没有.
关于"言论自由":
- ✅ 我喷 go 官方, go 官方, 也就折叠我评论.
- ✅ 他们讨厌看到:
- 也没删我贴. (美式虚伪, 折叠评论就够了... 大概, 还不够玻璃心吧...
- 也没全网封禁我. (可能比较困难... 大概, 还不够玻璃心吧...
- 也没人道毁灭我. (可能比较困难... 大概, 还不够玻璃心吧...
一些其他人的观点:
- https://youtu.be/QAxrHUSuwe4
关于我的"言论自由"观:
- ✅ 我从来不删任何评论, 也不会折叠评论, 包括骂我的. (多大点事...笑话, 我不怕任何人冒犯我...
- 观点/内容质量,高下立判. 无需多言.
- 可以看我知乎评论区.(怕被喷, 就不讲话? 呵呵...
- 一个内心不够强大的人, 才会处处觉得被冒犯到.
- ✅ 至于觉得会冒犯到我的, 他可能真的想多了...
- ✅ 对岸嘲讽此岸: 玻璃心. (没有玻璃心的, 会被冒犯到吗?
以上, 是我一个普通人理解的"言论自由":
- ✅ 比较粗鄙, 比不上"东西方两个大国"的实操.
- ✅ 那又如何?
全方位比烂的时代:
- ✅ 很难讲, 当前时代 VS "礼乐崩坏"的春秋战国, 哪个更好?
- ✅ 是全方位比烂的时代.
- ✅ 东西方大国, 都不做人了.
- 谈高尚, 太粗俗.
- 要比下作更下作.
- 要比粗俗更粗俗.
- ✅ 穷是原罪.
- ✅ 高尚, 可能也是.
- ✅ 向下兼容, 比较好. 活的容易些.
- ✅ 礼义廉耻, 也许真的是用来骗人的?
谁信谁傻逼
吗? 妙.
题外话:
关于"双标":
群体盲从意识会淹没个体的理性,个体一旦将自己归入该群体,其原本独立的理性就会被群体的无知疯狂所淹没。
—— 古斯塔夫·勒庞《乌合之众》
- ✅ 很多人, 看我喷"美式民主/自由"虚伪, 很支持/高潮.
- ✅ 但看到我喷"国人性格"丑陋面, 就觉得不适/被冒犯到.
- ✅ 这其实也是一种双标.(预设立场的人, 只愿意看到自己想看的一面, 但错失真相...
- ✅ 当同样的批评, 预设立场, 喷对面, 就不觉得傲慢, 喷自己这边, 就觉得傲慢?
- ✅ 很多人潜意识, 根本没有独立思考, 也意识不到问题点.
预设立场的狭隘处: (换位思考
- ✅ 很多人, 站在对立面, 很容易看透"美式民主/自由"的虚伪面. 但, 却看不清自己一边的问题.
- ✅ 对面, 也一样. 这就更加需要换位思考.
- ✅ 以铜为镜,可以正衣冠;以古为镜,可以知兴替;以人为镜,可以明得失。
- 对面(彼国), 应该以此面(此国)为镜子.
- 此面(此国), 应该以对面(彼国)为镜子.
- ✅ 不思考, 不进步. 所有人都一样. (觉得刺痛/冒犯, 那其实是可以进步的机会...
- ✅ 欢迎有人指出我的不足, 让我进步. 谢谢...
- ✅ 但, 也许很多人, 并不想进步?
建议理解:
- 实事求是.(不少知名高校校训, 可能都忘了?
- 哀其不幸 怒其不争.
- 以人为镜,可以明得失
- 择其善者而从之,其不善者而改之
关于独立思考:
- ✅ 文字很容易操纵情绪, 但, 很多人, 缺少分析能力.
- 包括我的文字, 也在操作你们的情绪.
- 你们意识到了吗?
- 意识到为什么要这样操纵吗? 目的是什么? (这是"伪理中客", 不懂的...
- 你觉得别人这样表达没意义, 你怎么就知道别人不是"故意为之", 你觉得你是"大聪明", 然后呢?
- 你觉得你在第几层? 真的是这样吗?
- ✅ 缺少分析文字背后的动机. 包括很多人, 并不理解我为什么要去提案下表达"情绪".
- ✅ "伪理中客"会告诉你: 你不讨论事实, 只发表情绪, 毫无用处.
- 情绪无用论, 是屁话.
- 如果真无用, Go 官方干嘛要全折叠? 他不需要折叠啊?
- 情绪, 是态度. (谈判, 首先是态度问题. 这个还要教?
- 处于弱势一方, 不争取舆论, 等着挨操?
- 被操完了, 再问大爷: 爽不爽? (贱不贱?
- ✅ 这种"偷换概念", 我更娴熟.
- ✅ 用一个"理性客观表述", 让你"悄无声息"的接受他的立场, 限定在"讨论如何完善", 而不是 "要 vs 不要"的问题.
- ✅ 你接受了"伪理中客" 的 "偷换概念", 进入他预设讨论范围, 你就输了. (没参加过辩论赛吧...
- 这个提案, 我根本不想要.
- 根本不 care 你好不好, 怎么完善.
- 你跟他讨论怎么完善这个提案, 你就输了.
- ✅ 尤其是这个"伪理中客", 还是一方观点的支持者. 这种"伪", 是彻底.
关于一些"伪理中客":
- ✅ 既然我鼓励:
理性/中立/客观
的讨论. 那就要批判一些"伪的理中客". 去伪存真. - ✅ 很多自以为"聪明"的"伪理中客", 根本没有独立思考能力. (预设立场, 就错了...
- 是非观, 非常薄弱. 双标什么, 更是意识不到.
- 你指出来, 他只会恼羞成怒.
- ✅ 当然, 全世界的教育(包含此国/彼国), 都不鼓励培养"独立思考".(毕竟文盲多一点, 才好管理...
- 教育/媒体/舆论, 都在疯狂操纵, 构造 信息茧房.
- 试图把民众关在笼子里.
- ✅ 有些"伪理中客", 是被忽悠瘸的一群人. (这些跟白左一样, 本质是不坏的...
- ✅ 有些"伪理中客", 是揣着明白装糊涂的一群人. (这些是趁火打劫的...
- ✅ 有些"伪理中客", 是恶意低成本操纵民意的一群人.(这些是恶贯满盈...
- ✅ 要仔细辨别.
关于"信息不对称":
- ✅ 当信息不对称的时候, 就永远存在"中间商赚差价".
- ✅ 这个时代, 很多人欣然接受"被奴役", 却毫无知觉.
收割:
- ✅ 很多人以为, 信息不对称, 只是商品收割.
- ✅ 其实, 信息不对称. 是全方位的收割.
- ✅ 收割你的人生, 你全家的人生. 你子子孙孙的人生.
- ✅ 独立思考, 不能让你改变命运. 但, 至少能让你少被收割一些.
建议关注一下erlang erlang/otp
@jiangyuzhao @leeyisoft
更新了 vlang(语法类 go) 的泛型<T>设计:
- ✅ https://github.com/vlang/v/blob/master/doc/docs.md#generics
- ✅ https://github.com/vlang/v/blob/master/doc/docs.md#returning-multiple-values
- ✅ vlang 同样支持多返回值表达式.
- ✅
不想做 != 做不了
. - ✅ 让 vlang 教教
go 官方
这些臭嗨做泛型
!
字词老哥。有些人跪久了,想让他们站起来都觉得腿麻不肯
支持老哥
支持老哥
当我们在讨论言论自由的时候,你可以闭嘴了。
Go 的问题暂时不值得我评价,但是认为 <>
简单“正常”的,先手撸个 C++ parser ,或者不会实操讲清楚 <
消歧义解决方案再评论。
需要提醒的是,利用 <>
表示参数化类型的出处是学院派的 ⟨⟩
,和 <>
是不同的符号。C++ 继承了 C 等更早期语言在源代码字符集上的抠门,用 <>
代替不在基本字符集中的 ⟨⟩
,在这里直接付出了严重代价:跨越多个翻译阶段的记号歧义。把 <>
视为正统的观念,是比整个 Go 语言更大的笑话——特别是考虑这些毒害的不只是个别语言而几乎是大半个工业界的用户。
(TODO: +FAQ).
再顺带提个问题,关于所谓的多返回值,只用过 ALGOL-like 语言或者四不像语言的用户还是别碰瓷了。
Google "multiple values" 第一个就是 Guile Manual,殊不知 multiple value 在 Scheme 里也是几乎最容易黑出翔的无谓增加设计复杂性的特性——随便一坨 values
和 *-values
就把 spec 连带 formal semantics 都 bloat 了多少?当然,在只用过已经到处 bloat 的语言的用户,没这种敏感性倒也不是不能理解;但更体现出加入半吊子特性时的没事找事。
对剩下的人,认识不到问题是一个原因,另一个原因是语言设计者死活拎不清楚怎么引入满足 multiple values 背后需求的和其它特性整体协调一致的合理设计。虽说不是没有,但极少。也许见识仍然是需要着重鄙视的点;多数 ALGOL-like 语言的用户,能认识个 tuple 这样的舶来品,或许都够我烧高香了。
Go 的问题暂时不值得我评价,但是认为
<>
简单“正常”的,先手撸个 C++ parser ,或者不会实操讲清楚<
消歧义解决方案再评论。需要提醒的是,利用
<>
表示参数化类型的出处是学院派的⟨⟩
,和<>
是不同的符号。C++ 继承了 C 等更早期语言在源代码字符集上的抠门,用<>
代替不在基本字符集中的⟨⟩
,在这里直接付出了严重代价:跨越多个翻译阶段的记号歧义。把<>
视为正统的观念,是比整个 Go 语言更大的笑话——特别是考虑这些毒害的不只是个别语言而几乎是大半个工业界的用户。(TODO: +FAQ).
- ✅ 这里关于
<T> vs [T]
谁更好, 根本不是讨论重点. - ✅ go 的问题是
[]符号
已经被其他语义(数组/字典)
大量使用. 数组/字典, 同时在使用[]
. - ✅ 使用
[T]
带来更大代码阅读开销, 会大量出现在和 map[] 混用的地方. 造成代码阅读直线下降. - ✅ 即使不使用
<T>
, 使用其他更清晰的符号
来实现. 我也不介意. - ✅
<T>
被大量主流语言(非主流别凑热闹)用于实现泛型
, 遵循最小惊讶原则
, 有什么不妥? 理解不了? - ✅ "
<>
毒害大半个工业级" 这种屁话, 你开心就好. (你比王垠牛逼多了...
关于
<T>
更简单.
- ✅ 看你对
简单
的理解, 指的是实现层面
. - ✅ 而我全程讨论的
简单
指的是代码可读性(更简单)
. 鸡同鸭讲. - ✅ 关于
代码可读性
vs编译器实现开销
. 这本来就是取舍问题. 没有讨论必要. - ✅ 觉得
代码可读性
更重要的. 自然追求语义设计
更清晰+直观. - ✅ 觉得
影响编译器效率
的, 那这个泛型不加最好. 零开销. (抬杠谁不会.
上面文章补充了
vlang
(类 go 语法) 的泛型<T>实现方案:
- ✅ 从侧面佐证了. 基于
<T>
来实现泛型, 从技术层面
毫无问题. (打脸 go 官方说困难... - ✅ https://github.com/vlang/v/blob/master/doc/docs.md#generics
- ✅ 眼神不太好的, 再贴一遍.
关于
<>
正统概念?
- ✅ 你想多了. 谁更正统, 一点都不重要. (正统的东西多了. 没人用, 有卵用?
- ✅ 至于
学院派 vs 工业级
谁更笑话, 你开心就好. 张口就来毒害的不只是个...
, 毫无营养的评论.
再顺带提个问题,关于所谓的多返回值,只用过 ALGOL-like 语言或者四不像语言的用户还是别碰瓷了。
Google "multiple values" 第一个就是 Guile Manual,殊不知 multiple value 在 Scheme 里也是几乎最容易黑出翔的无谓增加设计复杂性的特性——随便一坨
values
和*-values
就把 spec 连带 formal semantics 都 bloat 了多少?当然,在只用过已经到处 bloat 的语言的用户,没这种敏感性倒也不是不能理解;但更体现出加入半吊子特性时的没事找事。对剩下的人,认识不到问题是一个原因,另一个原因是语言设计者死活拎不清楚怎么引入满足 multiple values 背后需求的和其它特性整体协调一致的合理设计。虽说不是没有,但极少。也许见识仍然是需要着重鄙视的点;多数 ALGOL-like 语言的用户,能认识个 tuple 这样的舶来品,或许都够我烧高香了。
💢 关于multiple values
:
- ✅ 这里对
multiple values
的讨论. - ✅ 仅仅是为了回应 go 官方不使用
<>
来实现泛型, 找的借口是 <>会和multiple values
语义冲突. - ✅ 你作为不写 go 的, 根本不知道
如上在争论什么
. 就别凑热闹了 - ✅ 隔空发评论. 很无聊. 自己立靶子, 自己喷? (令人发笑...
- ✅
multiple values
, 这种不值得讨论的特性. 都能让你高潮? 尿点有点低.
至于 Scheme.
- ✅ 我也写过 Scheme. 秀语言没意思. 掌握鄙视链制高点? 然后呢? 冷不冷.
- ✅ go/rust/dart/python/zig/c/c++/java/ 我都在生产中大量写过, 语法特性集, 见得多了. 有什么好秀的? 这么村?
- ✅ 语言官司, 很无聊.
- ✅ 想好好讨论就好好讨论. 不想讨论, 来阴阳怪气(自立靶, 自己喷...). 想秀什么?
- ✅ 我寻思写的已经很通俗易懂了(图文并茂+有理有据). 感情还是高估了一些人的理解力.
PS:
- ✅ 理解力过低的, 麻烦多看几遍. 看懂了, 再开喷. 不然有点秀智商.
- ✅ 理解力过低的, 麻烦多看几遍. 看懂了, 再开喷. 不然有点秀智商.
- ✅ 理解力过低的, 麻烦多看几遍. 看懂了, 再开喷. 不然有点秀智商.
自己立靶子, 自己喷自己.
- ✅ 有点好笑. 捉急.