Go 语言最初由谷歌公司的 Robert Griesemer 、Ken Thompson 和 Rob Pike 这 3 位技术大咖于 2007 年开始设计发明,设计新语言的最初动力来自对超级复杂的 C++11 特性的吹捧报告的鄙视,最终的目标是设计网络和多核时代的 C 语言。到 2008 年中期,在语言的大部分特性设计已经完成并开始着手实现编译器和运行时,Russ Cox 作为主力开发者加入。到 2010 年,Go 语言已经逐步趋于稳定,并在 9 月正式发布并开源了代码。 Go 语言很多时候被描述为“类 C 语言”,或者“21 世纪的 C 语言”。从各种角度看,Go 语言确实是从 C 语言继承了相似的表达式语法、控制流结构、基础数据类型、调用参数传值、指针等诸多编程思想,并彻底继承和发扬了 C 语言简单直接的暴力编程哲学等。
从上面的描述可以看出,Go 语言的目标是占领一部分 c 和 c++的市场,和 Java 语言毫无关系,再拿来作比较就有点牵强附会了。
个人认为 Go 语言的特性,其实更适合做工业嵌入式这块这块,毕竟下位机大部分都是用 C 或者 C++写的,Go 语言去构建边缘计算、工业网关我觉得比 python 、java 更适合 但不知道为啥大家都用来对标 java 做后台? 可能是个人小型项目或者中间件之类的用 Go 可能更好,但是多人大型项目和企业级的业务平台用 Go 似乎不是个好选择。 前端要做后台,搞了 node.js 系统、嵌入式要做后台,搞了 go 写算法的要做后台,搞了 python = =为啥所有语言发明了都要用来写后台服务?
Rooger
2021-09-13 10:45:21 +08:00
大学毕业前选择培训,C++ 或者 Java,我选择了 C++,进入的公司我也是极其幸运,做的是游戏服务端,工作四年后,回老家西安进入另外一家公司负责游戏后端工作。但是在西安的确招不到合适的 C++ 职位,即使是毕业生也很难招到,而且即使招到了,C++ 的开发效率不高。如今我们已经全面使用 Go 语言了,开发效率相比 C++ 肯定是提升很大的,Java 从来没有在工作中遇到过,不做评价。如今 Go 用了三年,我又想换成 Rust 了。生命不息,折腾不止。
两个语言都写过,现在在写 go,我就随便说说了。 1. 有关 go 与 java 的比较 首先,u1s1,从语言设计上,go 其实是开历史倒车的,java 基本没啥大毛病,所以如果单论语言本身的话,java 是比 go 好的,这毋庸置疑。 2. 为啥 go 跟 java 交火 首先,现在 go 开始慢慢动了 java 的部分利益了,很多公司业务开发都转向 go,势必有反弹啊。这很正常 3. go 这么破为啥不用 java 这就有得说了,80% java 的特性大部分都被人滥用,还有莫名其妙的设计,譬如 xml,又比如说繁琐的设计模式,没了 idea,写代码都困难,与其大部分人用不明白,不如用 go 了,就这么简单。问 go 哪里强了,就是简单,一共 24 个关键字。就比如搞多线程吧,就算写的再烂,go 也不会出太大篓子。java 就不一样了,经常陷入 to be or not to be 的问题
James369
2021-09-13 11:05:06 +08:00
Go 其实就是想蹭一蹭 Java 的热度,提高下自己的知名度。
cassyfar
2021-09-13 11:06:39 +08:00
go 只是继承了许多 c 和 cpp 的优点。最重要的一点,个人觉得,不盲目迷恋 oop,另外对多线程支持非常好。特别适合现在微服务,分布式的格局。易上手,出活快,对码农本身素质要求比 java 或 cpp 低了太多。
所以目前蚕食了很多微服务的市场,经典就是 go + protobuf 写 rpc service 。但是 go 无法取代 java + spring,go 也无法取代任何对性能要求极高的部件,比如 load balancer 。