让我们先来回顾下以前编程语言的发展和投资创业的风口,2000年,当第一次互联网泡沫的时候,PHP热门了起来,这是因为PHP能非常快速的开发Web应用,并且学习门槛还非常的低;但随着互联网规模的扩张,高并发的需求越来越多,比如沉寂十余年的Erlang,从原先的电信交换机领域一举突围,成为了互联网行业中解决对高并发、分布式、容灾等有要求的应用的利器,也获得了大量应用;与此同时,小微企业的互联网创业成为了热门,这种团队对个人开发效率有着非常高的要求,于是有Ruby借Rails火了一把,这是在2008年左右.
随后,基于浏览器的应用的流行,也就是B/S结构,带动了JavaScript的发展;接下来,移动互联网浪潮的兴起,而其中的领头羊苹果,因为自身的生态原因,则带动了整个Objective-C--一门有了近三十年历史的语言.其实我们可以发现,很多语言在成为一种工业上应用很广的语言之前,其实都小众存在过很长的时间,当遇到适合它的浪潮时,他就会兴起.反过来说,如果一个语言解决的领域不存在了,或者场景越来越小了,那么自然工作也会少,但只要这种编程语言对应的场景还在,学了总是可以找到工作的,门槛高低市场大小机会多少的问题.所以未来哪些领域会有风口,而什么语言又有比较好的解决方案呢?我认为可能的风口有:人工智能、大数据,而对应的可能的语言是Python和Julia,Python早年就在学术界流行,在科学计算上进行了布局(误打误撞?),当时是解决了C/C++这类语言过多的涉及计算机和系统底层的知识,而Python这种脚本语言可以让学术界的人更好的把关注点放在算法等本身上;现在Python几乎成为了人工智能入门的标配,同时相对Matlab这种语言来说,又非常的普通适合大众,各方面的生态都有.而Julia则是完全的学术派的设计思路,在语言层面上就有很多矩阵等计算,语法上又接近普通的语言.
区块链,对应的语言可能是Go.区块链本身是一种巨大的分布式系统,Go的设计天生就是分布式系统有很多考虑的,这点Go优于Java,而区块链又同时是一个计算非常密集的应用,这点Go优于Erlang.有人会提到Rust、Kotlin等语言,这些语言都是通用性的语言,诞生的时候解决的业务问题并不明显,当这种情况下的话,就要等到有高人能在某个领域把他们的能力全部发挥出来了.
而JavaScript已经是浏览器中的统治地位了,我就不放在这里讲了,至于TypeScript、WebAssembly,留给大家判断吧.那么找工作的问题呢?大家肯定会说最好找工作的应该还是Java吧.那为什么Java会这么流行?大家都听说过"Horizontal Scalability",也就是说,一个系统如果架构得当,只需要不断的加入新的机器,就能相对比较线性的提升计算能力,就叫做水平扩展能力.如果把这个移植到开发领域的话,一个团队能不能有"Horizontal Scalability",也就是团队能不能在不断加人的情况下,线性的提升开发效率.当然这是非常困难的,这时候就非常考验团队Leader的管理能力,同时也要求团队使用的工具能够支持这一个特点.而Java是最早具备这个能力的编程语言.
Java在诞生当时率先应用了OOP,并且取消了C/C++中经常让人犯错的指针等东西,并且增加了接口.通过OOP,能很好的帮助架构师对系统进行拆分,通过接口,能保证不同团队互相开发出来的东西在调用的时候不容易出低级错(还有单元测试).最后在历史的不断演进过程中,Java又积累了非常庞大的生态,各个领域的问题都有解决方案.
总结,Java解决的领域问题是其实是:管理,不能说Java已经完全解决了,至少在这点上还没有超过Java的语言.这就是为什么Java让其一直在大型业务系统的研发领域中,处于主流地位的原因.当然,谁说程序员只能用一种工具呢.
更多烟台达内相关资讯,请扫描下方二维码