2020年go/rust都好火,但为啥学校还是在教c/c++/java?

原因

  1. 因为go可以自己学, 语法很像c, 而且网上大把教程, 比如go 101, go语言圣经, 夜读.
    1. go优点是简单高效, 而且语义上也比较明确.
    2. 缺点是没有泛型, 然后go mod也不是很好用(个人感觉)
    3. 至于接口与OOP孰优孰劣,自己体会吧. 我全都要
  2. 至于rust… 建议先用C++搞搞项目, 然后看看有多少内存问题, 的问题, 以及模块管理的问题. 希望不会被悬垂指针爆锤狗头. 然后你会发现rust的语义是真的明确, 除了unsafe关键字应该改为i_promise_my_code_is_valid.
  3. 学校里, c是传统,Java是教你OOP顺便就业也有着落了大概有吧 , C++不学的话也太遗憾了.

吐槽

  1. go中for range的模糊语义, 比如说:
	for i,v := range an_array{	
		v = ...	
	}

v=...可以改变原值吗?

  • var an_array []struct_A 可以吗? 不行
  • var an_array []*struct_A 呢? 可以
  • 语义的clone可变引用没有明确的区分出来. 希望你不会掉坑里
  1. go协程的死锁问题, 我经常搞出来… 这个我觉得只能自己多分析情况, 不能靠语言来保护.单线程就没有死锁了

  2. 我觉得如果学校加一门计算机语言的话, 最好选一个函数式语言, 比如Haskell. 我们可以从图灵机的世界进入到 λ \lambda λ积分的世界, 进入一种不一样的抽象维度. 虽说能力极限是一样的, 可是花活多了, 有些问题也更简单了.

  3. c跟c++虽然大家经常一起说, 可是这哥俩真的分家了!. 比如说你用bison生成一个c++的分析器(っ °Д °;)っ, 不好搞.

你可能感兴趣的:(go)