|本文由好程序员特训营编辑
|作者:好程序员
Java在程序猿江湖的霸主地位已经很多年没有受到挑战了。
作为一门主流编程语言,在所有领域的普及率、职业选择、业界倾向榜单中,Java即使不在榜首,也位于前列。即便是Python为王的机器学习领域,Java的普及程度也稳居第二、三位,仅有R语言可与之相比。Java能够如此巨大的成功,跟它的灵活多功能,以及处理复杂任务的能力是分不开的。但有没有比Java更好的选择呢?
就好程序员所知,在资深程序猿眼中,能替代Java、并且能做得比它更好的只有Scala。不可否认的是Scala在业内的口碑不错,作为一个后起之秀,它解决了Java普遍存在的许多问题,Scala的性能比Java更加强大。
Scala属于函数式语言的一员,未来函数式语言必火,虽然函数式语言不是什么新东西,但是之前受到很多制约,所以被命令式语言胜了一筹。
随着摩尔定律的打破,CPU的最高处理频率到达了阀值,现在的发展方向转向了多核技术。并发越来越重要,而在这一领域函数式语言要强于命令式。特别是大数据越来越火今天,spark,MapReduce,无处不充斥着函数式语言的思想。
但是至于函数式语言能火到什么程度?我觉得最多也就是和命令式语言平分天下。毕竟各有千秋,任意一方都无法完全取代对方。
至于scala,我个人觉得他比较优秀,连Java都开始向函数式语言发展了,更别提Python这里多范式语言本身就可以当函数式语言来用了。所以竞争还是比较激烈的。但是scala还有有机会的,Java也只能是借鉴一些元素,但永远比不上scala这种原生函数式语言。毕竟Java不可能推倒重来。
学一门函数式的语言确实可以打开一扇新世界的大门,从此看代码的感觉就不一样了。当然了,开不开这扇门也无所谓,毕竟殊途同归,还真没有什么事情是Scala才能做而Java做不了的。毕竟一部分人喜欢多看看世界,另一部分人喜欢守着自己的一亩三分地,也不见得谁比谁优越,只是不同的选择罢了。
很多人认为Scala的学习成本太高了,又有几个人能完全理解函数式编程的呢?虽然现在觉得Scala比Java好用,但是普及率确实不高,毕竟目前无论是工程还是研究,还是Java用得比较多。
还有,更重要的一点是,很多人认为Java可以让本来高高在上的程序员变成码农,这可是资本家们梦寐以求的救星。当老板发现这些功能用廉价的Java码农也能实现的时候,Scala程序员就很难有市场了。
Java这门语言以及这门语言的生态环境能兜住低端码农的下限,能让一群低端码农合作完成比较大型复杂的任务。但Java好歹也是一门通用编程语言,限制不住一个人的上限的,这也造成了学不学Scala其实都无所谓了。
所以对于想拿Scala试试手的,好程序员还是要提醒大家,不要期望太高。比如说,它在国内的大环境并不理想,使用Scala的人太少,工作机会比国外少得多。对于个体而言,它也并不适合每个人。大牛David Pollak曾表示:“对于50%的Java开发者,学习Scala的难度高于它带来的便捷”。换句话说,Scala难以在大众开发者群体之间推广。
未来Scala会不会超越Java?各位程序猿、攻城狮,来聊聊你们的感受。
欢迎关注【“好程序员”头条号】高端IT教育培训机构——