个人对全栈工程师和JVM编程语言的一些理解
全栈工程师、JVM生态。
我个人对全栈工程师和JVM编程语言的一些理解,大家有不同看法的,我们一起交流梳理下。
全栈工程师从我的视角来看,是熟练使用多种编程语言,满足前后端各种业务、技术需求的服务和应用开发。因为语言都有自己的特点、独特性和应用领域,没有能解决所有问题的最佳语言,所以未来混合编程会很普遍,这对开发者也提出了更高要求,需要了解、掌握和使用多种语言。
但目前主流观点还是以JavaScript/TypeScript/Node.js为主流的全栈工程师。
Java也可简单理解为Android + Server的全栈语言,一个优秀Java工程师可同时完成Android和Server的开发。
当然,其它语言也有类似的全栈功能,如:C++。
JVM是个巨大生态系统,服务端语言除了Java,还有:Scala、Clojure和Kotlin。
Kotlin目前主要还是用于Android开发。
Scala是面向对象和函数式语言的混合,因为Apache Spark和Kafka也日益流行,但学习曲线很高。
Clojure是JVM上的Lisp,这三门语言的定位可简单描述为:
Clojure is about Data, Scala is about Types, Java is about Objects.
这三门语言的应用领域是服务端开发,Apache基金会大部分项目是Java项目,
若自己定位大数据工程师,是需要在Hadoop和Spark上有深度历练的。
一些思考:
1、若专注服务端开发,可选择JVM阵营,因为JVM的强项就是服务端;
2、除JVM外,Python、PHP、Go也都是Web服务端语言的选择;
3、此外,Python是数据科学和人工智能的首选语言;
4、全栈开发基本是JavaScript系的天下,从Web、App到Server;
5、Java仍是目前市场主流,不是因为它很好,主要是市场决定。更好用的Scala和Clojure是小众语言,生产力更高,若坚持使用并努力提升,机会也很大,毕竟函数式语言是未来,现在主流语言都或多或少在融合函数式编程;
6、以生态系统的方式去思考一种编程语言,GitHub Awesome 是个很好的开始。
以下语言链接,可拓展思路和关注点:
Awesome Node.js
Awesome Python
Awesome PHP
Awesome Go
Awesome Java
Awesome Kotlin
Awesome Scala
Awesome Clojure
Awesome C++