jet框架中用go语言 go语言jwt( 二 )


为什么要学习新语言?
首先,现代编程语言充分利用现代计算机硬件(多核CPU、GPU、TPU)、移动设备、大量数据、高速互联网、容器和云的优势 。大多数现代编程语言会关注开发人员的体验,比如:
简洁明了的代码(减少样板代码)
内置的并发支持
空指针安全
类型推断
简洁的功能集
降低学习难度
融合所有编程范例的最佳功能
本文列表的许多编程语言都带有革命性地变化,并将永久地改变软件行业 。一些已成为主流编程语言,还有一些则有望取得突破 。因此选择这些语言作为第二种编程语言是明智的做法 。
Rust
一直以来,系统编程语言环境主要由靠近硬件的语言(如C、C ++等)主导 。尽管它们可以完全控制程序和硬件,但是它们缺乏内存安全性 。即使它们支持并发,使用C/C ++编写并发程序也很困难,因为没有并发安全性 。还有一些流行的编程语言是解释性语言,例如Java、Python、Haskell 。这些语言具备安全性,但需要庞大的运行时或虚拟机 。由于它们的运行时间长,因此Java等语言不适合于系统编程 。
许多人曾尝试将C/C ++的功能与Java、Haskell的安全性相结合 。然而,Rust才是第一个成功实现了这一点的编程语言 。
Graydon Hoare在业余项目中开发出了Rust,他的灵感来自研究编程语言Cyclone 。Rust是开源的,由Mozilla与许多其他公司和社区一起领导这门语言的开发 。Rust于2015年首次发布,并很快引起了社区的关注 。
主要特征:
通过所有权和借用概念提供内存安全和并发安全 。
内存安全和并发安全在编译时确保,即如果程序代码可以编译,那么内存既安全又没有数据竞争 。这是Rust最吸引人的功能 。
它还提供了Haskell中元编程的表现力 。凭借不可变的数据结构和功能编程功能,Rust提供了功能并发和数据并发 。
Rust的速度非常快,纯Rust的性能甚至优于纯C 。
在没有运行时的情况下,Rust可以完全控制现代硬件(TPU、GPU、多核CPU) 。
Rust具有LLVM支持 。因此,Rust提供一流的与WebAssembly的互操作性 , 而且Web代码也非常快 。
流行度:
自2015年首次亮相以来,Rust已被开发人员广泛接受 , 并在StackOverflow开发人员调查中连续四年(2016、2017、2018、2019)被评选为最受欢迎的语言:
根据GitHub Octoverse的调查,Rust是运行速度第二快的语言,仅次于Dart:
此外,根据编程语言流行度排名网站PyPl的数据,Rust排名第18位,并呈上升趋势:
对比Rust提供的功能集,我们就会明白为什么微软、亚马逊、Google等科技巨头相继宣布投资Rust作为一种长期的系统编程语言 。
根据Google统计的趋势,在过去的5年中,Rust的热度每年都在增加 。
主要用途:
系统编程
Serverless 计算
商业应用
主要竞争对手:
C
C++
Go
Swift
Go
在本世纪初,Google面临两个扩展问题:开发扩展和应用程序扩展 。开发扩展问题指的是他们不能仅通过投入开发人员的方式来添加更多功能 。应用程序扩展问题则指他们无法开发出一款能够扩展到Google级别的计算机集群的应用程序 。
所以在2007年左右 , Google创建了一种新的编程语言,用于解决这两个扩展问题 。两位才华横溢的Google软件工程师Rob Pike(UTF-8)和Ken Thompson(UNIX OS)创建了一种新语言 。
2012年 , Google正式发布了第一版的Go编程语言 。Go是一种系统编程语言,但与Rust不同,它还具有Runtime和垃圾收集器(几兆字节) 。但是与Java或Python不同,这个Runtime包含了生成的代码 。最后 , Go生成了一个本地的二进制代码,可以在没有附加依赖项或运行时的情况下在计算机中运行 。

推荐阅读