会java学scala多久_值得花时间学习Scala吗?

不请自来,先占个坑。

这几天在考虑写一些 Scala "标配库" 的推广文。

为啥要打个引号,因为我不是准备说 Scala自己的标准库,而是 Scala 当下生态圈里面比较好用,和比较有特色的第三库,对这些库的了解会对 Scala 的强大会有更好的认识。

提出问题的题主,有一个隐含的假设,那就是,Scala 是不是和其它语言差不多,学完了是不是会用不上,会不会不用就会忘了?

而基于这个假设,很多回答虽然是以应用场景作答,可惜这些作答的例子也没有说明不用 Scala 不行。那么我觉得我想用另外一个方式来回答。

首先,个人意见,Scala 的 多范式 在自己的标准库里面实现的并不好,在平衡和糅合各种范式的实践中有着各种妥协,甚至有些不太合理的做法,这些不合理在 Scala 版本演进中有得到修正,但是相对缓慢。这个时候,社区力量的强大就得到了体现,无论是常见的 Future, 还是 2.13 集合库, 它们其实都是由第三方库做好了才被归并回标准库里面。

那么,我们来想想,一般来说,很多语言都标榜自己的标准库是多么的强大,多么的完整,而Scala的标准库却愿意不断的否定自己,吸收社区的营养。这是为什么呢?

因为,学习 Scala,最大的收获,不是这个语言本身(语法,函数,标准库),而是语义(各个范式),而这些范式涉及的知识点,很多时,是在Scala新手的现有知识范畴以外的。而新手在不了解这些知识之前会认为世界是一个模型里面建立出来,所以在应用自己相对单一的知识模型去编写系统的时候是不完整的,效率低下的,甚至可能是充满漏洞的。

所以,对于题主的问题,我的回答是,是的,Scala是一门值得花时间去学习的语言。因为它自身的设计(以及其相关的生态)系希望把过去20年来一些计算机科学技术发展的成果,以一种尽可能友好(或者实用)的方式呈现在软件工程师面前,让开发人员更好地武装自己。你可以想象你在学习这门语言的路途上,能和全球的技术研发人员一起坐而论道。无论是如日中天的Spark,还是提供高效能框架的Actor, Kafka,为什么Scala能在Java雄霸JVM平台多年的情景下帮助这些新产品突围而出被研发广泛使用?并且产生足够大的影响让Java产生一些改变?这难道不是一个让你去了解和学习Scala的一个很好的动力吗?

你可能感兴趣的:(会java学scala多久)