go语言gc j***a,Go语言 web框架

kodinid 6 0

大家好,今天小编关注到一个比较意思的话题,就是关于go语言gc java问题,于是小编就整理了3个相关介绍go语言gc Java的解答,让我们一起看看吧。

  1. C/C++的人转Go都说很爽,Java转Go的人,觉得有时候写的很别扭,为啥?
  2. Go语言为什么没有流行起来?
  3. Go语言出后,Java还是最佳选择吗?

C/C++的人转Go都说很爽,JAVA转Go的人,觉得有时候写的很别扭,为啥?

Go 和 J***a 都是 C 系语言,语法方面,存在很多相似的地方。Go 语言从 C 语言继承了很多,同时也抛弃了不少,改进了不少。

Go 从 C 继承了哪些重要特性,同时改进了哪些?

go语言gc java,Go语言 web框架-第1张图片-安济编程网
图片来源网络,侵删)
Go 跟 C 语言一样,语法足够简单一些基础的语法,跟其他 C 系语言类似,从 C 继承了下来。和其他很多 C 系语言不一样的地方是,Go 继承了 struct,而且,不像 C++/J***a,还额外提供 class。所以 C 语言的人,写 Go 会有很亲切感。更重要的是,Go 对于 C 语言做了很多改进,而且这些改进很多由于历史原因导致的,作为一门全新的语言,没有历史包袱,完全可以设计上做出改进。主要的改进有:1. 跟 C 一样有指针,但不允许进行指针,提升了安全性和易用性,很多 C 语言的开发者,对指针是有点头疼的,但接触 Go,会发现很容易使用指针;2. 有垃圾回收机制,从繁琐易错的内存分配和释放中解脱出来;3. 在 struct(类型)的基础上,引入方法的概念,相比 C 语言更利于结构化和管理;4. 更高级数据结构原始支持,比如动态数组(slice)、string、map 等;5. 丰富的标准库支持,比如 Go 对于网络编程,标准库有了很大的支持,写起来会很简单,相对来说 C 使用第三方库,易用性也差一些;6. 一定程度上支持面向对象编程;7. 强大的工具链,编译速度超级快;8. import 机制改进;9. 类型定义避免歧义,比如 `var p, q *int`;10. 更强大的 IDE 支持;11. 更强大、易用的并发支持;...以上种种,会让 C 语言的开发者爱上 Go 语言。对于 C++,因为其复杂性,我想面对 Go 这样简单、性能不错、C 系的语言,应该没有免疫力吧~

J***a 为什么有时候会觉得 Go 别扭?

J***a 虽然也是 C 系语言,但更多是面向对象的功能。很多设计模式的书,都是用 J***a 语言来描述的。而 Go 语言,并非纯面向对象,只是一定程度上,支持了部分面向对象的特性,不少面向对象的功能缺失,这会让习惯 J***a 的开发者感觉别扭。1. 没有类型层次2. 接口隐式实现3. 没有真正意义的继承,因此也没有基于类型继承的多态4. 没有方法重载,而且还没有泛型5. 可见性问题6. 没有 Spring 这样一统天下的框架...另外,Go 里面的一些特性,J***a 开发者可能也不太习惯,比如:有指针、类型足够细分(比如各种 int)等。我认为还有一个很重要的是,Go 相对于 J***a,对计算机底层基础的知识要求会更高,这会让一些人感觉不适应。

但我还是要说一句,J***a 开发者们,Go 还是值得你学习的。这里附上之前回复的一个问答:《如何优雅得向J***a介绍go语言?》

***s://***.wukong***/question/6681852965965267212/


总结

go语言gc java,Go语言 web框架-第2张图片-安济编程网
(图片来源网络,侵删)

其实很多东西还是习惯问题,但有时候,我们需要尝试打破习惯,用另外的视角看待这个世界。对于编程语言来说,我们在使用一门语言时,要慢慢学会用该语言的方式来思考、解决问题,虽然这个过程可能是比较痛苦,但这是锻炼自己思维、提升自己很好地方式。

谢邀

关于这个技术性问题,针对楼主问题可以简单的回答。如果复杂的举例一一说明就比较繁杂。

go语言gc java,Go语言 web框架-第3张图片-安济编程网
(图片来源网络,侵删)

我先举个例子:

两个人,一个叫小明,一个叫小红他们平日上班时,小明骑自行车,小红开私家车。有一天公司提供班车供他们上班。这个时候小明就觉得很方便很好用。小红就会觉得坐班车还是不如私家车舒服方便(仅仅举个例子,不考虑绿色出行,不用自己驾驶的情况)。

这个时候你会发现,换了同样的交通工具,但是得到的却是两个不同的体验。就是因为他们起点和习惯不同。

把这个例子搬到技术上是一个道理。都知道C语言是面向过程的,J***a是面相对象,里面包含很多无法,关键字算法代码结构语块。使用GO语言对C语言的同学来说从语法和和开发思想上都有一定提升,所以用起来的感觉比较好。而对J***A语言的同学来说提升的可能不是很多,并且给自己带来了很大的学习成本和编程习惯的改变。所以同为GO语言,但对C语言和J***A语言的同学会各有不同的编程体验。

😊😊

C/C++是系统级语言,Go是[_a***_]级语言,正常情况下,是转不过去的,除非之前就是在用C/C++写应用,那不是自找没趣么,转Go当然会爽,Go太简单了。但如果之前是在用C/C++写操作系统底层,或者做嵌入式开发,想换一种21世纪的新语言,只能换成rust,而Go是不行的,因为Go有运行时,有GC。所以如果是从C/C++转Go,从此不再碰C/C++,那就是自废武功了。至于J***a转Go,我一直认为J***a语言本身非常优雅,而Go非常粗陋,转过去不爽很正常。另外再谈谈我对Go的看法,它虽然也算是21世纪诞生的语言,而且出身名门,但是它本身毛病也特别多,发明它的那几个大神绝对是老顽固不听劝,社区那么多呼声完全听不见,他们的原则就是够用就好!他们痛恨各类新特性和语法糖。所以说Go语言是21世纪最简陋的计算机语言一点不为过,另外再附带了一个史上最烂的包管理,没有之一,原因也很正常,人家被发明出来,主要是Google内部自用的,顺带便放出来让大家一起找找Bug。千万别去和pip比,和npm比,和cargo比,会被活活气死。所以,如果你是老板,未来想做一些平台,Go语言是首选,因为Go非常容易学,所以程序员好招。如果你是程序员,想通过换个语言提升一下自己,对不起,Go不适合,它太舒适了,要提升自己一定要挑战自己的非舒适区,譬如Rust,那货非常不舒适,以学习曲线陡峭著称

就一群沙雕事儿事儿的…正经程序员不咋挑语言,有偏爱,但是不踩其他语言。就这帮沙雕引战、无脑鼓吹,疯狂踩其他语言。为啥j***a程序员事儿多,跟j***a没关系,是用这个语言的程序员多,新手多。大学毕业就能j***a开发,正好年少轻狂。其实没啥,改改习惯就好。要说rust感觉麻烦还行,毕竟所有权就是难搞。其他的,呵呵了…

先说说go语言的来源,算是编程语言里面的富二代了,创始团队本身就是精通多种编程语言的大神,而且背靠着谷歌公司这座大庙,go语言的相比主流的几种编程语言都有明显的特点,go语言最大的特点是简洁明了,主要还是为了取代C++语言的繁琐,主创团队主要三个人,Rob ike 贝尔室Unix开发团队人员,Plan9操作系统主要领导人;ken tomption:图灵奖得主,C语言前身B语言的作者,Unix的发明之人,操作系统Plan 9的作者,共同开发了UTF-8;Robert 为谷歌的V8引擎开发代码,这些编程领域中顶级的高手了,开发一种新的编程语言主要从项目实战出发。

先看看go语言主要能用来做什么的,go语言主要用在中央服务器处理多核问题,存储集群等等应用方式,对于开发高性能的并发处理有着极大的好处,对于开发游戏服务器是一种极大的好处,都有哪些公司在使用go语言,Google,Facebook国内的阿里巴巴,百度,京东都在部署这方面的研发人员,毕竟还属于刚发展阶段,还在为生态链建设而努力的一种编程语言。

go语言都有哪些特性让这么多的程序员着迷?性能上就有着非常独特的优势,这点主要针是现在python和j***a语言中间还需要做解释转化用的,对于接近C语言执行效率的编程语言一般都会受到程序员的青睐,毕竟程序执行的效率一直贯穿整个程序的生涯,所以看到效率高的编程语言程序员都会有一种莫名的亲切感;go语言集成了很多优秀的工具,像告诉的GC工具,对于传统的GC有了极大的提升,本身在设计之处就是未来屏蔽很多的弊端,并且针对弊端集成开发了很多有用的工具包,开始的时候这些技术大牛只是花费工作时间的百分20去做这件事,但时间长了谷歌公司发现这种编程语言的有点,就开始让他们转为全职开发这门编程语言。

go语言还有一个非常明显的特点,语法简洁,有点类似于C语言的开发,但是又有很多工具可以使用,能够提升很多编程的效率,接近现在编程语言的发展趋势,快读的开发迭代,因为历史渊源的问题,很多C/C++的编程人员看到这门编程语言,觉得用起来特别的清爽,因为这些大牛在设计之初就是为了破除C++语法的繁琐,给大家开发一个效率高并且简洁的开发语言,主要设计的方向是针对服务器端的开发,所以C++程序员觉得是一种为自己开发的编程语言,所以会觉得特别的清爽,毕竟同样是在服务端开发换成这种编程语言能很快的解决问题何乐而不为的事情。

相比之下j***a开发者转化成go语言就会觉得有点不适应,虽然同样是服务端的开发,但看看go语言的缔造者更加接近于底层的开发并且更加注重效率,难免和j***a的距离有点远,通过j***a开发者可以看到go语言本身的很多不足之处,比如框架不够丰富,类支持的种类不够多,不支持函数式的编程等等,这也是go语言后续需要改进的地方,毕竟一个语言的生态链的建设需要一个一个很长的积累期。

现在的go语言只是在针对服务器端分布式高并发上有一定的优点,对于很多地方还有不足之处,未来如何发展还是要看生态圈建设的程度了,但从技术角度上看如果能够很好的解决服务端的高并发问题也算是一种不错的小众编程语言了,希望能帮到你。

Go语言为什么没有流行起来?

据我所知…没有流行起来,其实应该原因和node一样,太年轻了,很多项目已经用PHP或者J***A实现了,只有新项目可能尝试新架构。老项目整体更换新的不现实。所以,只有慢慢来呗

GO语言的定位是替代C或C++,本来C或C++的应用领域就没有J***a等语言广泛。

项目在选材的时候,如果可以,绝对是使用J***a而不是C或C++。

GO语言没有界面库,目前还不支持编写桌面应用,它就像一位幕后英雄一样,躲在服务器默默做着最沉重的活。

对于一种这么年轻的语言排在第9名,还说不流行,显然是很不公平的。

Go是2009年发布的,刚开始肯定是有很多的bug,有很多的类库功能都不完善,经过几轮的修改优化丰富,终于可以用在生产环境的时候已经是什么时候的事情了?

2012年3月28日Go version 1正式发布,算起来还不到6年的时间。

国内J***a占绝对的主导地位,很多人想从J***a转到Go语言,这是有学习曲线的,并且个人觉得还是非常陡峭的。

而且使用Go语言是为了追求极致的性能,如果不是有经验的程序员,我认为使用Go语言帮助也不大。

首先,我用Google trends搜索golang”,发现中国排名第一。

接下来,我又在alexa上搜索golang.org,发现golang.org的访问主要还是来自中国。

最后,我又通过百度指数来搜索“golang”和“go语言”两个关键字,发现go的指数在逐年不断增加。

通过以上数据我们可以看到,“Golang”目前在中国还是比较流行的,也并非提问者所说的它还没有流行起来。

Golang是什么

Go是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。(参考*** ***s://zh.***.org/wiki/Go)

Go语言似乎并没有不流行,在各大榜单盘点最流行的编程语言时,Go语言都是榜上有名。

1.优势:简单

谈到Go语言大家的第一反应可能就是简单,当然这也是Go语言的一大优势,一个有经验的程序员一个晚上就可以掌握,而其他新语言如Swift它的相关文档就得有几百页厚。

简单带来的另一个优点就是更易于阅读,Go语言规范,有其他语言基础的程序员也能迅速上手,由于学习曲线平缓,团队之间的差距更小,更利于合作,另外Go 自带完善的工具链,大大提高了团队协作的一致性。

劣势:简陋

当然,在晚上学习一门语言是很好的,但Go是舍弃了很多现代抽象的功能才实现了简单性,舍弃了这些功能也就意味着你不能依靠更复杂语言的力量来对抗Bug。所以对于复杂性和抽象的爱好者来说,Go语言不是进步反而是倒退。

除此之外,每个程序员都有自己的编程想法,有的人想要泛型,有的人想要可扩展性......但Go语言的使用往往会让程序员有一种绑住手脚的感觉,无法大展拳脚。

GO的主要应用领域还是linux后台底层开发,部分替代c语言的功能。国内重做linux后台应用的单位很少,所以应用场景自然就少。比如你做一个普通的web,用apache或者nginx就可以了,要是用go整体做后台,代码开发量大,维护任务重,恐怕只有BAT这种级别的公司可以承担。

Go语言出后,J***a还是最佳选择吗?

说一下我个人的看法吧,如有不同,欢迎留言指出。

第一

J***A已经很成熟了,go是新兴的语言,就好比当年的Python,好像过了这些年Python依然没有取代J***A。所以结论是j***a不单单是一门语言,而是背后的成熟的开发体系。至少目前的go还没有这样的成熟的体系。

第二:适用面不一样

j***a其实目前还是主要应用于web开发和Android这块。就好比Python适用于科学计算。每个语言有每个语言的特性,适用面不同。go也是如此。

第三:go存在很多问题

具体什么问题,可以搜一下就好,据我所知的安全等等问题还没有解决。冒险用的话划不来。

第四:就业

这个招聘的时候就知道了,go语言就南方那块多。

好了,在手机上敲有点慢,就先写这么多。

其实拿GO语言和J***A相比,本身就存在错位的问题。但从技术上讲,Go完胜J***A,毕竟它更加年轻,而且Go没有J***a浓浓的学术味道。Go从开发之初就是彻底为了实际工程而开发的语言。

J***a最初是为嵌入式设计的,后来赶上第一次互联网风口(泡沫),转化成了互联网语言。最早的J***a前后端通吃,后来由于臭名昭著applet被迫转到后端。最早的J***a核心技术全两册加起来只有2厘米厚,第9版的都已经比辞海厚了。J***a逐渐从一个肌肉少年变成一个油腻大肥仔。

12年的时候,同学有幸进入某大厂,做J***A的他非常痛苦地学习了一种叫做Go的语言。第二年他再次出现在我面前已是满面春风:“老大,Go实在太爽了,未来后台早晚是Go的天下”。

几十年的发展,海量的J***A遗留项目需要维护,因此J***A程序员还会继续招聘。想把这么庞大的项目统统转移到Go,短期内不可能。

给你2万月薪维护一个J***A老项目和给你1万月薪做一个Go新项目,你会选择哪一个呢?:p

从来没有那种技术不行了,永远是某人不行了。结合自己的经济状况和岗位实际,灵活掌握吧。都是好技术。

到此,以上就是小编对于go语言gc j***a的问题就介绍到这了,希望介绍关于go语言gc j***a的3点解答对大家有用。

标签: 语言 j***a 编程语言