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


主要特征:
Go具有一流的并发支持 。Go不通过线程和锁提供“共享内存”并发性,因为编程难度太大 。相反,它提供了基于CSP的消息传递并发性(基于Tony Hoare的论文) 。Go使用“ Goroutine”(轻量级绿色线程)和“ Channel”进行消息传递 。
Go最大的杀手级功能是:简单,它是最简单的系统编程语言 。新手软件开发人员只需几天就可以编写高效的代码,就像Python一样 。有些大规模的云原生项目(如Kubernetes、Docker)都是用Go编写的 。
Go还内置了垃圾收集器 , 这意味着开发人员无需担心C/C++中的内存管理问题 。
Google投入了大量资金打造Go 。因此Go拥有大量的工具支持 。新手Go开发人员拥有大量的工具生态系统 。
一般,开发人员80%的时间都花在了维护现有代码上,用于编写新代码的时间只占20% 。由于其简单性,Go在语言维护方面表现出色 。如今,Go在业务应用程序中大量使用 。
流行度:
Go一问世就受到了软件开发社区热烈的欢迎 。2009年-2018年,Go一直在TIOBE编程语言排行榜上徘徊 。Go的成功为Rust等新一代编程语言铺平了道路 。
如今,Go已是主流编程语言 。最近,Go团队宣布了有关“Go 2”的消息,这门编程语言的发展会更加稳固 。
几乎在所有的流行编程语言排行榜中,Go的排名都很高 , 已超过许多现有的语言 。自2019年12月以来,在TIOBE指数排名中 , Go名列第15位:
根据StackOverFlow的调查,十大最受喜爱的编程语言中,Go也位列其中:
此外,根据GitHub的数据 , Go也是十大发展最迅速的语言之一:
Google趋势显示,在过去的5年中,Go的热度每年都在增加 。
主要用途:
系统编程
Serverless 计算
商业应用
云原生开发
主要竞争对手:
C
C++
Rust
Python
Java
Kotlin
Java 是企业软件开发领域无可争议的王者 。近年来 , Java受到了一些负面评论:过于冗长,大量样板代码,容易出现意外的复杂性 。但是,关于Java虚拟机(JVM)的争论却很少 。JVM是软件工程的杰作,经过了时间的考验,提供了硬核的runtime 。
多年来,Scala等JVM语言一直在努力克服Java的缺点 , 想成为更好的Java , 但他们都失败了 。最终,这场提升Java的探索以Kotlin的诞生结束 。Jet Brains(流行的IDE IntelliJ背后的公司)开发了Kotlin,它可以在JVM上运行,克服了Java的很多缺点,提供许多现代功能 。
与Scala不同的是,Kotlin比Java更简单,还可在JVM中提供与Go或Python开发人员同等的生产力 。
Google宣布Kotlin是一流的Android应用开发语言,因此Kotlin在社区中的接受度得到了大幅提高 。自2017年以来,同样受欢迎的Java Enterprise框架Spring也开始支持Kotlin 。我曾尝试结合Kotlin与Reactive Spring使用,体验非常棒 。
主要特征:
Kotlin的主要卖点在于其语言设计 。我总是将Kotlin视为JVM上的Go/Python,因为它简洁明了的代码 。因此 , Kotlin的生产力很高 。
与许多其他现代语言一样,Kotlin提供了Null指针、安全性、类型推断等功能 。
由于Kotlin也运行在JVM中,因此现有Java库庞大的生态系统都可供使用 。
Kotlin是一流的Android应用开发语言,并且已经超过Java,成为开发Android应用的首选 。
Kotlin得到了JetBrains和Open Source的支持,因此具有出色的工具支持 。
Kotlin有两个有趣的项目:Kotlin Native(将Kotlin编译为原生代码)和kotlin.js(Kotlin到JavaScript) 。如果成功,则可以在JVM外部使用Kotlin 。
Kotlin还提供了一种简单的方式来编写DSL(域特定语言) 。

推荐阅读