区块链100问 | 本科计算机,想学习区块链技术,应该使用什么语言呢?
发布于 2021-11-04 14:28 ,所属分类:软件编程学习资料
先说结论,初学者建议选择Go语言。
区块链本质上是分布式去中心化的不可篡改的数据库存储技术,本身并不是一门语言,需要语言这个工具去实现,所以想学习区块链必须选择一门具体的适合它的语言。
区块链是一种编程思想,使用任何一种编程语言都可以实现。比如:C++、Java、javascript、python、Go都可以实现开发区块链。
比特币系统使用C++开发。我们学习比特币系统目的是用来学习区块链原理,很难在比特币系统上进行继续开发。学习比特币原理时可以使用Java、javascript、python、Go任何一种语言。
以太坊系统,官方推出了C++开发版本和Go开发版本。要在以太坊平台上开发智能合约,官方建议使用Solididy语言,该语言类似Javascript。如果开发DApp,可以采用C++、Go、Python、Java开发。
超级账本中的Fabric系统是用Go语言开发的。学习Fabric开发,可以使用Go和Java语言。
综上所述,学习区块链开发建议建立在Go语言和javascript基础上。而建议使用Go语言,是因为它的学习难度比Java略低。
当然,除了学习难度低之外,它同时也用有别的语言没有的优势。
1. 出身名门、血统纯正
之所以说Go出身名门,从Go语言的创造者就可见端倪,Go语言由Unix之父肯·汤普森(电脑工业史上具有极高的地位);
其次Go语言出自Google公司,Google在业界的知名度和实力自然不用多说。Google公司聚集了一批牛人,在各种编程语言称雄争霸的局面下推出新的编程语言,规避了各种让大牛们所诟病的缺点,语法简洁好学、语言稳定性高。
2. 竞争压力小,发展前景好
Go语言在2007年9月正式命名为Go,2012年3月发布第一个正式版本,是一门非常新的语言。
相对新就意味着竞争压力较小,不用和一群老油条比技术,还是很不错的。同时Go语言短短五年时间,已经成为2016年年度编程语言。在2021年10月刚刚发布的TIOBE语言排行榜上挤入前15名,上升至第12位;Go语言是目前项目转型首选的语言,也是软件工程师转型首选的语言;Go语言被预测会成为未来编程语言的前三甲。
△数据源自TIOBE官网
3.曲线容易,极易上手
Go语言语法简单,包含了类C语法。因为Go语言容易学习,所以一个普通的大学生花几个星期就能写出来可以上手的、高性能的应用。
现在大家都追求快,这也是为什么国内Go流行的原因之一。Go语言的语法特性简直是太简单了,直来直去几乎玩不出什么花招。
4. 标准库强大,稳定性极强
Go里面的标准库基本上已经是非常稳定了,网络层、系统层的库非常实用。Go语言的lib库麻雀虽小五脏俱全,虽然有些库还不是很特别完善,但在未来的发展中这些问题一定会被解决。
Go拥有强大的编译检查、严格的编码规范和完整的软件生命周期工具,具有很强的稳定性,要知道在代码的世界里稳定压倒一切。
Go相比于其他程序会更稳定是因为Go提供了软件生命周期(开发、测试、部署、维护等等)的各个环节的工具,如go tool、gofmt、go test……
5.自由高效,适配性强
Go语言是为了解决分布式计算,在云计算领域的新兴语言。而区块链是典型的分布式数据存储系统,使用Go语言是绝配。
Go语言可以说是开发效率和运行效率二者的完美融合,支持当前所有的编程范式,包括过程式编程、面向对象编程、面向接口编程、函数式编程。程序员们可以各取所需、自由组合、想怎么玩就怎么玩。
6. 高并发,低内存
Go最大的优势就是高并发,并行和异步编程几乎无痛点,这是目前主流的编程语言都望尘莫及的。作为一门语言它并未引入很多新概念,而是聚焦于打造一门简单的语言。
Go语言的个goroutine和Channel这两个神器(两个创新)简直就是并发和异步编程的巨大福音。
Goroutines是Go面向线程的轻量级方法,而Channel是Goroutines之间通信的优先方式。
Go使用goroutine,而其他语言(例如Java)则使用线程。Goroutine很便宜(大约2 Kb),因为线程需要更多的堆栈空间,因此它们通常占用大量内存(从1 Mb开始)。
Goroutines以及基于Channel的并发性方法使其非常容易使用所有可用的CPU内核,并处理并发的IO。相较于Python/Java,在一个goroutine上运行一个函数需要最小的代码。这使开发人员可以创建线程无法实现的大量goroutine。
区块链一定要解决网络高并发问题,所以这也是选择Go语言的主要原因。
另外,语言好不好,市场能看到。
现在越来越多的公司开始使用Go语言开发自己的服务,同时也诞生了很多使用Go语言开发的服务和应用,下面我们来看一下,有哪些大公司在使用Go语言。
△数据源自Go语言官网
通过上图列表我们可以发现,许多大厂包括百度、阿里、网易、京东、头条、小米、知乎、360等等都在使用Go语言。而且在云计算、微服务、大数据、区块链、物联网等领域都有Go语言项目应用。
相关资源