欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

力压JAVA与C语言,它自称是云时代最好的语言,你服吗?

来源:本站整理 作者:佚名 时间:2017-04-23 TAG: 我要投稿

Go语言号称是 “云计算时代的C语言”,不仅刚获得TIOBE年度编程语言,越来越多的知名企业(尤其是互联网和云计算领域的)也选择Go语言作为其主要的开发语言之一。
据统计,已在生产环境中使用Go语言的知名企业已有百度、美团、360、京东、搜狐、豌豆荚、金蝶等。由此可见,对于互联网软件开发者而言,关注Go语言已经是已经很有必要的事情了。

什么是Go语言?
Go语言是一种静态强类型、编译型,并发型,并具有垃圾回收功能的编程语言。通俗来讲,就是类似java和c++的语言,不同于php和python。因为是一门比较年轻语言,其语法规则也相对简单,抛弃了很多c++特性,如多继承,泛型,虚函数等等。但增加了slice型,协程,管道等特性,这些特性良好支持了云计算背景下的并发编程。

Go语言的优势
易上手,开发效率高
Go语言设计简洁规范,有其它语言基础的程序员都能迅速上手。同时Go语言自带完善的工具链,编译运行测试等都非常的简单,大大提高了团队协作。它自带的gofmt工具能自动排版Go代码,使得开发人员无需为格式浪费脑筋之外,还保证了相似的代码风格,使得Go程序具有很强的可读性,便于开发和维护。Go语言内置的丰富的标准库,尤其是网络库,可以大大加快开发进度。
部署简单,高移植性
Go语言是静态编译型语言,除了对glibc版本(CGO_ENABLED=1)有一定要求外,不依赖其他库,极大的降低了运维成本,不需要安装各种依赖,搭建各种运行环境,部署非常方便。同时Go项目支持多种操作系统和体系结构,具有很高的移植性。
适合高并发场景
Go语言原生支持并发编程,Goroutine和channel机制使得编写高并发服务变得相当便捷。一个Go进程可以轻易支撑几十万上百万并发运行的Goroutine(只要内存足够)。而goroutine的内存开销很小,大约为5KiB/goroutine。net包支持大量并发连接,同时支持多核并行(目前为8核)。channel机制提供了卓越的协程间的通信能力。因此Go语言在高并发,通信交互复杂的分布式系统中非常适用,具有开发效率高,一定量级下服务稳定、性能满足需要等优势。
高性能
Go语言直接编译为本地机器码,具有很快的运行速度。参考网上一个程序语言评测项目作出以下测试,从中可以看出,Go语言的某些性能接近C和C++,优于Java和Python。
(http://benchmarksgame.alioth.debian.org/u64q/go.html)
垃圾回收
Go语言内置轻量级runtime的实现,自带垃圾回收机制,开发者无须对内存进行管理,为内存泄漏问题焦头烂额。值得注意的是,Go语言的垃圾回收机制采用的是标记清除方法,最开始由于其垃圾回收时的停顿时长过长而广为诟病,不过这几年来,GC性能一直在飞速提升。从Go1.5版本GC耗时百毫秒级,到后来的毫秒级,以及2月份刚发布的Go1.8耗时已经达到百微妙级以下了,所以如今GC已经不再是影响程序性能的主要瓶颈了。

由于Go语言兼顾开发效率和运行效率,以及它对高并发场景的支持,使得Go语言非常适合做对并发和性能要求比较高的云计算基础设施开发,网络编程、游戏端服务开发等等。同时目前国外已经有大量项目是采用Go编写的,例如Docker、容器集群管理工具Kubernates、键值存储系统Etcd、以及各种消息推送系统、Web框架等,Github上丰富的开源项目也是让Go语言成为了大热门的一个重要原因。
 

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载