?
欢迎关注微信公众号 liaoliaoaws
多维度思考
?
记得刚毕业的时候,大家聚在一起经常争论编程语言孰优孰劣的问题,每次都争论得面红耳赤,每次到最后都是没有结果。那时年轻,看待问题都是非黑即白,刚刚从大学校园走出来的我们,依然坚信每个问题都有一个标准答案。所以看待编程语言也不例外,固执地认为肯定有一种编程语言力压群雄,无所不能。对于编程语言,每个人都有自己的评判标准,有人以学习难度作为标准,认为C和C++学习难度高,所以最厉害。有人以流行指数作为标准,Java正流行,所以胜出。还有人以开发效率作为标准,Php开发效率高,排第一当之无愧。
?
工作几年以后,才慢慢发现,编程语言各有各的优势,也各有各的劣势,每种语言都有各自适合的业务领域,语言只是一种工具,面对具体的业务场景,没有最好的语言,只有最适合的语言。比如,面对跨平台的场景,可能Java更适合,如果高度关注性能,可能C++更适合。如果考虑开发效率,Php,Python这样的脚本语言可能更适合。单纯地对各种开发语言进行单一维度的排名,其实没有太大意义。反观我们从小接受的应试教育,也是将每个个体,按照考试成绩,简单粗暴地进行单一维度的评价,这本身也是没有意义的。社会对每一个人的评价其实是多维度的,能够养成多维度思考问题的习惯至关重要。
?
多技能生存
?
随着云时代的到来,各种开发语言又何去何从呢?在云平台上,又发生了哪些变化呢?经常有人问我,听说Python很火,我们做Java的很焦虑呀,是否应该转做Python呢?继续做Java是不是慢慢地会没有饭吃呢?一开始面对这样的疑问,我也有点迷茫,不知道应该怎么回答。经过深入思考,我得出的答案是多技能生存。针对云平台的特点,在这里给大家提几点建议。
?
在云平台上,对开发语言的选择更加的宽容了。比如AWS,它的各个服务SDK都同时支持多种编程语言,基于云服务开发一个应用程序,如果你擅长Java,那么就用Java开发,如果你擅长Python,那么就用Python开发。语言的选择反而因人而变了,这一点对项目的推进帮助很大。
?
编程语言方面,要求程序猿要一专多能,面向对象世界的Java程序猿要去学一门脚本语言,比如Python,Javascript。Python程序猿同样需要去学习一门面向对象的语言,比如Java,虽然Python也支持面向对象。
?
云时代,对于编程语言的深度要求没有以前那么高了,相反,对编程语言的广度有了更高的要求。如果你能驾驭多种编程语言,反而更加如鱼得水。尤其是敏捷开发和DevOps大行其道的时代,一个项目中开发可能用到Java,Python,运维自动化可能要用Javascript,Shell,如果你是个全栈工程师,那就再适合不过了。
?
Java本身的强类型特性,导致柔软度不够,无法达到Python那样的编程自由度,所以为了改善这个问题,基于Java平台,出现了几种Java变种语言,比如,Groovy, Scala,当下最吸引眼球的莫过于Kotlin了。这几种语言努力的方向基本是一样的,就是用类似于Python的弱类型脚本语言进行开发,然后代码直接运行在Java平台上,这算不算Java的自我救赎呢?所以Java程序猿还有一个选择,就是去学习Kotlin或者Scala。个人感觉Groovy的语法比较怪异,如果没有刚性需求,不建议去学了。
?
在人工智能时代,掌握单一技能的人,都有很高的被替代风险。同样处在IT行业的我们,如果只掌握单一的编程语言,只做单一的具体岗位的话,是时候考虑做出一些改变了。
?
欢迎扫码关注个人公众号 liaoliaoaws
?