七大利弊帮你分析Go语言的可用性

七大利弊帮你分析Go语言的可用性

2016年是充满惊喜的一年,根据Tiobe报告显示,Go语言在这一年中的占有率从0.161%一度跃升至2.001%,排名也从历史最低的122位上升到了13位(2016年11月),这意味着Go从一个利基工具正式走入了真正的程序设计语言的行列。
Go语言之所以可以实现这么大的飞跃,很大一部分原因可能是Docker。近些年,一些热门技术的特征之一就是开发语言的活力。反过来想,其实Docker的成功也为Go语言的发展提供了坚实的基础。
前几天,我们在网路上看到了一些关于C语言衰落的言论,笔者认为C语言的衰落与Go语言的崛起是有一定相关性的。虽然目前C语言在Tiobe排名还处在第二,但据Tiobe计算C语言已经失去了大约40%的程序员的支持。Go语言和C语言都是用于编写底层代码的精简高效语言,两者之间有很多共享的功能,其中包括大多数的语法,如继承、重载、对象等。所以我们不难推断出Go语言的很多新支持者可能是从C语言阵营过来的。
TIOBE排行榜并不能说明一门编程语言的好坏,但它的指数是基于世界范围内的资深软件工程师和第三方供应商提供的,所以它在一定程度上反映了编程语言的热门与否。根据Go语言的上升势头,不难看出Go语言已成热门趋势,下面我们就介绍它的七大优劣势,帮助企业更好的选用Go语言。
1.优势:简单
谈到Go语言大家的第一反应可能就是简单,当然这也是Go语言的一大优势,一个有经验的程序员一个晚上就可以掌握,而其他新语言如Swift它的相关文档就得有几百页厚。
简单带来的另一个优点就是更易于阅读,Go语言规范,有其他语言基础的程序员也能迅速上手,由于学习曲线平缓,团队之间的差距更小,更利于合作,另外Go自带完善的工具链,大大提高了团队协作的一致性。
劣势:简陋
当然,在晚上学习一门语言是很好的,但Go是舍弃了很多现代抽象的功能才实现了简单性,舍弃了这些功能也就意味着你不能依靠更复杂语言的力量来对抗Bug。所以对于复杂性和抽象的爱好者来说,Go语言不是进步反而是倒退。
除此之外,每个程序员都有自己的编程想法,有的人想要泛型,有的人想要可扩展性……但Go语言的使用往往会让程序员有一种绑住手脚的感觉,无法大展拳脚。
2.优势:自动化节省时间
Go集成了很多方便快捷的功能,如自动声明变量,它看起来是一个很小的功能,但是却为程序员带来了很多便利,毕竟没有人希望一直在写“int”吧。另外,Go语言的GC机制也是一个很大的优势,因为每个人都对malloc和free函数感到厌烦了吧。
劣势:自动化可能是危险的
相信每个程序员都对编程语言的自动化的缺点感同身受:如果你采用GC机制来自动回收内存,那么可能会在错误的时间被触发;自动声明可能会导致嵌套作用域中使用相同的变量名,从而导致错误;另外,现在人们对于数据管理系统更加谨慎,所以自动化对我们来说可能不是优势反而是劣势。
3.优势:无虚拟机
在过去的几十年里,基于虚拟机的语言都是爆款,二进制代码可以在不同的芯片架构之间轻松移动,而且虚拟机在执行优化时可以实施一些安全规则,所以在VM中整合了很多好的想法。
但是启动虚拟机需要一些时间,但是Go语言就不用担心这一点,它可直接编译成机器码,除了glibc外没有其他外部依赖,部署十分方便。这使得Go语言在开发和调试过程中的速度都非常快。
劣势:无虚拟机
Go语言有独立的二进制文件,但是它们内存占用都非常大,例如你写一个“helloworld”的示例,它就接近于2MB。二进制文件之所以会这么大,有一部分原因是它需要执行虚拟机的大部分功能,。
针对这一问题,Go1.7做了一些努力,减少了编译器所使用的内存量并且在连接时间方面也有所提升,据悉,相对于Go1.5.3它能够将总的编译时间降低大约20-30%。虽然这一变化让问题改善了很多,但是当服务器打开了数百个代码版本时,RAM仍会被阻塞。
4.优势:与C类似
Go语言带有强大的C基因,所以在支持底层代码方面毫无压力,1.5版本中完成的并发GC使得Go语言程序在响应时间方面有了质的飞跃,在软件开发效率和运行效率之间做出了绝佳的权衡。
劣势:与C类似
类C语言有很多,从显而易见的C#,C++和Objective-C到Java、Rust、Swift,它们涵盖了很多有趣的功能,如果你想要完成一个项目,你可以很多选择,Go语言并不是唯一。
5.优势:无回调语法
许多程序员都从Node.js的深坑跳到Go,为什么呢?因为他们之前要做很多回调。回调结构对于Web页面上的JavaScript代码来说是很有意义的,它有助于通过Node提供服务器端开发的速度,但是它很难保持直线,尤其是在有三四层嵌套的情况下。
劣势:无回调语法
使用Go语言你不需要考虑嵌套方法,但是你仍然需要考虑以相同的方式编码交互。Node.js的嵌套虽然有些烦人,但是它能够让你在大脑中清晰的形成一个架构图,而Go语言由于不需要考虑嵌套,所以很有可能会出现失误。
6.优势:逐渐丰富的库
Google为用户创建服务器应用程序提供很多重要的库,尤其是网络库非常强大。
劣势:库缺乏
这个咋一听来好像是自行矛盾,但其实也很好理解,虽然Google对于Go语言给予了大量的支持,但毕竟Go语言还很年轻,所以标准库少也是在所难免的。JAR是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件,使用可执行的JAR文件,我们可以不用提取它或者知道主要入口点就可以运行一个应用程序。可执行JAR有助于方便发布和执行Java应用程序。Clojure,Scala,JRuby,Kotlin和许多其他的新语言被编译为JVM的字节码,它们可以与所有Java库一起使用。
7.优势:前景可期
Go语言之所以能够飞速发展,很大一部分原因是Google的支持。Google是一家重视未来的公司,我们可以从一些蛛丝马迹中发现与谷歌阅读器相比,Google似乎更致力于Go语言,目前Google在无人驾驶汽车和其它新奇特的东西投入了大量的精力,这也为Go语言的发展提供了助力。
劣势:在利基范围之外未能完全实践承诺
Go语言的上升令人印象深刻,但是能否继续上升,我们可能要打一个问号。企业对于代码的要求除了效率,还有稳定,要让企业将项目的未来从现有的语言突然变向押宝在另一种语言上,似乎不太可能。另外,Google对于Go语言的支持是优势也是掣肘,一旦Google风向有变,放弃Go语言转向一个更好的版本,那么对Go语言来说可能是灭顶之灾。
Java是AP计算机科学语言,C是Unix语言,Python更受社会科学家青睐,PHP非但没有死亡,反而越来愈好……每一种语言都有自己的使用场景,并且在自己的领域发展很好,如果Go语言不能尽快找好自己的定位,那么未来的发展可能会有影响。

主题测试文章,只做测试使用。发布者:最新稳定辅助网,转转请注明出处:https://www.744broad.com/13455.html

(0)
上一篇 2023年3月3日 上午11:15
下一篇 2023年3月3日 上午11:18

相关推荐

  • 操作系统 20 年一周期,国产 OS 迎来黄金时代

    操作系统 20 年一周期,国产 OS 迎来黄金时代 【CSDN编者按】5月6日,据彭博社报道,中国部分企业希望能够在未来两年内用国产替代品如操作系统替换外国品牌的个人电脑。有知情人士表示,此举可能最终会取代至少5000万台的国外品牌电脑。这一决定也将有效推动国内长达十年的用本土技术取代进口技术的「替代运动」,减少操作系统、半导体、服务器、手机等多个领域对外的…

    RUST资讯 2023年2月23日
    100
  • IT大佬推荐!YouTube上12个热门免费公开课,订阅过万,建议收藏

    IT大佬推荐!YouTube上12个热门免费公开课,订阅过万,建议收藏 作为会科学上网的程序猿,一大乐趣就是爬到国外看油管。YouTube上除了有各种有趣的视频,也有许多公开课程的分享,是一个获取免费资源的好渠道!老K整合了我个人和一些朋友的经验,找到了12个YouTube上热门的免费公开课,分享在下方。都是非常有人气的视频资料,包含了各种计算机语言、数学等…

    RUST资讯 2023年2月18日
    110
  • 长途高效物流车中的强者,开四川现代创虎重卡,收获舒适驾驶体验

    长途高效物流车中的强者,开四川现代创虎重卡,收获舒适驾驶体验 位于四川资阳的四川现代在最近几年已经陆续推出多款牵引车、重卡、轻卡产品,其产品线随着韩国现代技术输出在逐渐丰富。在2019年9月重庆召开的一个发布会上,现代汽车描绘了一个宏大的蓝图,表示四川现代在2020年初将会由其独资运营,独资以后,意味着合资企业变为外资企业,四川现代将会共享现代汽车集团技术,…

    RUST资讯 2023年3月10日
    30
  • 干掉CC++?

    干掉C/C++? 最近某平台总是给我推送一些应用开发者对C/C++语言的吐槽;还有一些人工智能公司的人对我说:机器学习不是用python吗?为什么用C/C++?。吐槽C/C++这里我不想引发论战,我只想试着澄清一下大家长久以来对C/C++的误解。我想这对于那些正在艰难的选择是否学习C/C++的人来讲也许是个参考。首先C/C++相对于其他高级开发语言来说是个“…

    RUST资讯 2023年2月25日
    70
  • CS之父离职后,放弃反恐精英,做了款不让玩家穿裤子的游戏?

    CS之父离职后,放弃反恐精英,做了款不让玩家穿裤子的游戏? 回顾开发团队,详解打折精品近期,曾开发生存沙盒射击游戏Rust(腐蚀)的FacePunchStudios(打脸工作室)在Steam上展开了发行商活动。主要内容是针对自己旗下的4款游戏进行促销,折扣是7折左右,还上线了一款合集包,总价136元。打脸工作室是自2004年起,来自于英国沃尔索尔的独立游戏开…

    RUST资讯 2023年2月17日
    100
  • GitHub 热点速览 Vol.31:在?跑个 GitHub 评分如何?

    GitHub 热点速览 Vol.31:在?跑个 GitHub 评分如何? 作者:HelloGitHub-小鱼干摘要:个性化的GitHubREADME自从7月上线之后一直风靡在各大技术平台,当中最有意思的莫过于代表你技术的GitHubReadmeStats了,除了能显示你提交的pr、commit数等等,还能给你的表现评个分,A++选手遍地走,不知道你的表现又如…

    RUST资讯 2023年2月18日
    110
  • 嵌入式中各的种语言

    嵌入式中各的种语言 想学习单片机的同学可以关注、私信我或者在评论区回复我要入门。单片机的主流编译语言仍然是以C语言为主再加上少量汇编的结合体,而嵌入式Linux领域的更多使用的是多种语言混合应用编程,内核模块使用的是C语言,而界面的话使用java和QT/C++,应用层逻辑使用C++,Python,nodejs的混合编程。在单片机领域C++不能成为主要流行语言…

  • 闲暇时光,不妨听一首安静舒心的欧美民谣

    闲暇时光,不妨听一首安静舒心的欧美民谣 欧美好听的民谣太多了,尽量选择在民谣发展过程中重要的音乐人、创作型和根源性音乐人,尤其以旋律优美、富有诗意的歌曲为主,愿这些歌曲在日渐式微的日子里带你起飞。NovoAmorAnchor选自专辑《Anchor》。NovoAmor背后是英国独立音乐人AliJohnMeredithLacey,来自威尔士,是一名多乐器演奏家,…

  • 现在的市场对 C++ 的需求大吗?

    现在的市场对 C++ 的需求大吗? 2010年之后,移动时代到来,WindowsC++工程师有一大半都转换到安卓或者IOS开发,而随着JAVA的崛起,在服务端C++也面临一定威胁。不少曾经的同事,纷纷转战移动端,或者转战JAVA。但依然也有不少朋友依然坚守C++,他们都有一个很大的特点:越来越高精尖!其实,直到今天,C++依然是绝对刚需的语言,且很难被淘汰,…

  • 小学语文1-6年级常见换偏旁组词汇总,太实用了,收藏好!

    小学语文1-6年级常见换偏旁组词汇总,太实用了,收藏好! 小学语文1-6年级给汉字换偏旁组成新字,并组词,这道题绝对是小学生常见的一道题!家长在给孩子辅导家庭作业的时候,是不是也经常碰到呢?今天老师特意整理了一份非常全面的资料分享给大家,喜欢的可以收藏哦~安——氨(氨气)(氨水)按(按照)(按动)鞍(鞍山)(马鞍)案(案件)(方案)桉…

关注微信