不同编程语言有哪些差异?如何选择入门语言?( 三 )


文章插图
 
六、Python/ target=_blank class=infotextkey>Python语言
Python是支持面向对象和面向过程,也支持函数式编程的解释型编程语言,它在语法风格上也属于C语言系 。但它与其他语言所不同的是采用缩进来表示包含关系,而不是花括号 。喜欢这种风格的人对此爱得要命,不喜欢的人则反感至极 。
从语言特性上来讲,可以说Python与JS最为接近,既可以采用面向对象,也可以采用函数式 。它与Java不同,没有变量类型声明关键词,方法也可以脱离于类存在 。Python总体上是一个强类型语言(但因为无需明确变量类型,以及存在自动类型转换,所以也不是严格意义的强类型) 。
看Python代码,可以说是最简单明了,最易懂 。与JavaScript一样,Python也是动态脚本语言,列表(数组)也是动态可变的,其列表操作非常好用 。Python很适合新手学习,因为简单,同时含括了编程的几乎所有概念 。
Python自90年代推出,早期为增强Shell脚本,后来发展为Web后台语言,一直不温不火,后来随着大数据和人工智能的流行,Python在这两个领域里大放光彩,未来前景非常好,是最值得推荐学习的入门语言 。
看下Python的代码量是否最少(跟JS差不多),也最好懂?

不同编程语言有哪些差异?如何选择入门语言?

文章插图
 
七、Go语言
Go语言是静态编译强类型语言,由google于2009年推出,其初衷是替代C语言做系统开发,但目前来看更多是替代Java做服务端开发 。其语法风格与C十分接近,在C语言基础上增加了内存安全和垃圾自动回收功能 。
Go语言不以类为依赖,语言非常简练,语法风格上是C和JS的混合体,变量声明是var,数组空间需要提前申请,无需括号和分号 。从这段代码来看与C语言差异不大,本质上是C的变体 。
Go语言目前在微服务和云原生领域颇受欢迎,在高并发、高可用Web应用中发挥着良好的作用,这部分有取代Java的趋势 。Go语言在分布式系统、网络编程领域表现良好,目前最流行的容器编排系统Kube.NETes就是Go语言编写,未来更多云原生应用会逐渐采用Go语言 。
Go作为新贵,这几年开始在服务端大放异彩,因此如果您是新一代的开发者,那么跳过C++和Java,直接学习Go也是值得推荐的 。看下Go的代码风格,您感觉舒服吗?我感觉比起Java好一些 。
不同编程语言有哪些差异?如何选择入门语言?

文章插图
 
八、Kotlin语言
Kotlin是JetBrains公司于2011年推出的编程语言,这是一个面向JVM的新语言 。JetBrains就是开发IDEA编辑器的公司 。
Kotlin代码最终编译成Java字节码class执行,也可以编译成JavaScript,以方便在没有JVM的设备上运行 。除此之外Kotlin还可以编译成二进制代码直接在操作系统上运行 。
Kotlin也可以看成是一种Java语法糖,是完全兼容Java语法的 。Kotlin相当于是简化版的Java,的确Java太臃肿了,Kotlin提供了变量类型、高阶函数、函数独立等,使得编程风格更接近于JS和Python 。
在Kotlin 中没有原始类型,一切都是对象 。参数一旦将值分配给val,就无法更改 。如果想重新分配它,则必须将其声明为var,而在Kotlin的方法中,参数隐式声明为final val,也无法更改参数 。因此,这里将number赋值给变量num 。
Kotlin语言设计的确很优秀,目前已正式成为Android官方支持的开发语言,所以如果做Android开发,那么直接学Kotlin吧,没必要学Java了 。看以下代码是否有Java和JS的影子?
不同编程语言有哪些差异?如何选择入门语言?

文章插图
 
九、Dart语言
Dart是支持即时编译和提前编译的强类型语言,于2011年由Google推出 。主要针对JavaScript,对JavaScript一些不适合的特性进行改进,如弱类型,非完全面向对象等 。Dart的理念是借鉴Java 语言的数据类型和内存管理机制和面向对象的特征,同时借鉴 Scheme 语言,将函数提升到“第一等公民”(first class),再就是参考 Self 语言,使用基于原型(prototype)的继承机制 。这么看来几乎就是JavaScript的翻版或者说是JavaScript增强实现,跟TypeScript不同的时,它并不兼容JavaScript 。


推荐阅读