是谁说的go语言好?因为协程泄漏搞到现在。

早期的基本上PHP

1 个赞

go 语法我也觉得反人类,但是跨平台编译,内存小,性能高。写一些小工具确实很好使 :rofl:

3 个赞

go确实是一门很简陋、不够优雅的语言,但不按顺序执行这个不是协程的问题,而是特性。

协程就是一种比多线程更轻量级的并发方案,都并发执行了,肯定是无序的,其他的并发方案也是一样的,比如多线程、libuv。

4 个赞

不过 async/await 语法可以用同步写法

6 个赞

不不不, Rust 异步也是灾难, 深入一点就要涉及到手动实现 Future, Pin 就绕不过, pin-project 或者 pin-project-lite 这两个胜似标准库的三方库也是绕不过的. 编译器也没提示, 对新手简直是地狱级别难度.

不过这玩意主要是新概念, 多用用就能熟悉, 前一阵子折腾给 axum-server 加上 TLS 指纹识别的功能做风控, 还折腾了一大堆中间件, 我现在差不多能手到擒来了.

3 个赞

看到 Go 特有的 err = *** 满天飞就应激了 :joy: 说实在的这语法实在是太丑陋, 不如 Java 等采用的 try {} catch {} 一根毛, 更不用说 Rust 采用的 Result<T, E> 加上 ? 了.

1 个赞

但是宏好难的, 可维护性极差, 主要应用在避免重复代码, 写好了确实贼强大.

说明你还不习惯写 golang 。每个语言都有它的特点。
了解一下用户空间的线程是如何运行的吧。

这让我想起采集盗版小说网站,想要多线程采集每章(无序),最后又要合并成txt(需要有序)。

确实比容易看懂,看用途了,装饰器场合还是要用,平常也不可能去改

确实写一些shell小工具确实可以的

怀疑 goroutine 出问题的话用 Goland 直接跟踪下就能定位了。各种 metrics 里基本也有自带 goroutine 监控。
channel 和 goroutine 其实只要稍微习惯下基本都是一个套路,每次都copy paste一下,没那么容易写 bug。

正常学校科班毕业,大家都是有 C 的基础,转 Go 上手分分钟,从技术选型上看学习成本很低。Rust 相对来说也喜欢,私下现在后端只用 Rust 了,但是团队不是每个人都能接受,Go 代码写出来每个人都能看得懂,大部分功能基本就一种写法,开会时打开代码一看所有人都能迅速回想起之前的逻辑。

10 年前第一次接触 Go 的时候,自带格式化,自带 LSP,网络相关工具库 std 直接提供,GitHub 包直接导入,到后面官方加入 pkg 管理,语言特性还向后支持,cross compile,相比于其他语言易用性和维护性高太多,属于是直接闪瞎眼了。现在新出的语言倒是和 Go 一样都挺齐全的了,也没那么优势明显了。

3 个赞

“新出的语言倒是和 Go 一样都挺齐全的”
大佬细说一下,还有什么新贵语言跟go一样好用

衡量好不好用,我觉得一个是看基本的代码编写体验,一个是看语言生态。

最近这 10 年新出的大部分语言基本已经都是比较成熟,比较会去考虑开发者体验的了。Rust,Swift,Zig,Elixir,Kotlin,最近的话 Gleam,基本 LSP,包管理这些都是标配了。

1 个赞

swift出现在这个表里有够抬举的,一年之前windows包都没有。

1 个赞

c才是最好的语言

令人震惊的代码!怎么敢这么用的

1 个赞

还是PHP好啊,就是没人要了:cry:

你问问大家认可php还是c

这个要看你怎么定位了,Swift 当作全平台语言那肯定是不及格的。但当作 OC 的升级版,只限苹果生态开发,那就好的超出预期了。当年刚发布的时候,Xcode 的各项支持就已经非常不错了。