Scala有两个流派:FP和Better Java。FP派喜欢scalaz,喜欢shapeless,喜欢type level programming。这一派特点是程序高度抽象但可读性奇差。适合PL研究者验证概念,适合业余项目自嗨,也适合学习PL概念。不适合多人协作的工程项目。Better Java派以前之所以存在,单纯是因为Java语法设计太烂,烂到无法忍受。而JVM上当时也没有其它更好的选择。那些告诉你“写了n年Java以后,我切换到Scala,现在每天都活在幸福中”的人,基本都是这一派。但Scala as a better Java的工程性也不好,因为特性太多太复杂,除非有高手带队,否则很难只用到它“better java”的那个子集。解决一个问题的同时,往往引入更多的问题。所以会有Java8发布以后Linkedin所有新项目全部回归Java这种事情。Groovy是动态语言,工程性比Scala还差。但是因为有Gradle这种被广泛采用的项目,所以会存活下去。但是请记住爱因斯坦曾经说过:“任何超过两百行的新项目,都不应该采用动态语言开发,无论是Ruby,Python,Perl,Groovy还是Clojure”。哦,对了,也不要用Clojure。因为它是动态语言,而且是Lisp系的动态语言。“Lisp系”意味着,读书的时候可以靠它开眼界。毕业工作以后,对于这一类语言,能躲多远就躲多远。刚刚发布的Kotlin看上去靠谱。它不讲究FP有多纯,目标就一个:“a better java”。Kotlin在“到底引入多少FP特性”上面做得恰到好处。 看到Kotlin,我马上就想起了这个演讲:“Please stop polluting our imperative languages with pure concepts”。Kotlin有以下好处:1. 强大的IDE。而且是JetBrains第一方支持,不是3年更新一次的第三方插件;2. 库多生态强。Kotlin的设计者非常重视和Java的互操作,所以Kotlin号称可以无缝衔接所有Java库。3. 宇宙第一运行时:JVM。4. Android上不能用Java8的新语法,Kotlin恰逢其时的出现,抓了一波完美的timing。如果Kotlin依靠Android开发爆发,那服务器端,大数据界,也会收益,最后多面开花,势不可挡。但是Kotlin刚出来,到底有没有它自称的那么好用还待观察。另外,Kotlin社区现在集中力量攻坚Android,在服务器和大数据方向没什么靠谱项目。所以还是得用Java8。总之,“魔镜啊魔镜,谁是JVM上最好的语言”之最后决战,将是Java10 vs Kotlin(Java9在语法特性上已经输了)。而在这场最终决战之前,C#已经靠着CoreCLR统一世界了。最后送上人生经验两则:1.match comment with
| "X怎么不能Y?人家Z就是这样做的。" -> reply "卡马克能用haskell移植Wolf 3D,你能?"
| _ -> reply "Thank you"
2.match location with
| Office -> use whatever your boss chose
| Home -> use F#
相关推荐
Scala是一门多范式编程语言,其名称来源于“Scalable Language”的缩写,即可伸缩语言。...对于那些希望在大数据领域发展的程序员而言,学习Scala不仅是掌握一门新语言,更是进入了未来技术发展的一个重要方向。
这一改变为Scala、Groovy等现代动态语言在Java平台上的普及提供了可能。 另外,Java 7引入了新的文件系统API(NIO.2),提供了更好的异步I/O支持和对文件系统操作的增强,使得开发者能够更方便地处理文件和目录,...
文章中提到,在2003年,如果开发者们看到了Martin Odersky、Lex Spoon以及Bill Venners合著的《Scala编程》一书,他们很可能就不会去创建Groovy这样的语言了。这表明Scala在设计之初就已经考虑到了很多Java开发者的...
书中的附录部分则提供了Java、Groovy和Scala的基础知识,为读者提供了进一步学习的机会。通过《Learn Java for Web Development》,读者不仅可以掌握Java语言在Web开发中的应用,还能形成坚实的技术基础,为未来的...
9. **语言演进**:书中可能讨论到Java如何借鉴其他语言,比如从Groovy、Scala等汲取灵感,增强自身特性,以应对Ruby等语言的挑战。 10. **跨平台性**:两者都是跨平台的语言,Java得益于JVM(Java虚拟机),而Ruby...
9. **主要JVM语言**:Java是主流语言,但报告也关注了其他在JVM上运行的语言,如Kotlin、Groovy和Scala的使用情况。 10. **Java模块系统**:Java 9引入了模块化系统(Jigsaw项目),报告调查了其采用率、难易度以及...
2. **技术趋势**:2008年的Java世界可能正关注JVM语言的崛起,如Groovy和Scala,它们在某些场景下提供了比Java更简洁、更强大的表达能力。此外,也可能探讨JavaFX,一种用于创建桌面和Web应用程序的富客户端平台。 ...
"基于Java平台的多语言混合编程" ...基于Java平台的多语言混合编程是软件开发中的热门话题,具有跨平台、跨语言、高效等优点,未来发展趋势是软件项目的未来在于混合语言编程,Java仍将是JVM生态系统中的重要组成部分。
Java程序员的未来正在走向混合编程时代,这是一个不可逆转的趋势。随着软件项目需求的日趋复杂化,单一的Java开发模式已经无法完全满足需求。在这个背景下,多语言混合编程正逐渐成为主流。这种编程模式允许Java...
Java的虚拟机(JVM)更是成为了运行多种语言(如Scala、Groovy等)的基础平台,展示了Java语言生态的开放性和兼容性。 #### 5. Java的未来趋势 尽管Java已发展成为一门成熟且广泛使用的语言,但它仍在不断进化中。...
2. **JVM语言多样化**:Groovy、Kotlin、Scala等JVM语言的兴起,丰富了JAVA生态系统,提供了更多选择。 3. **领域特定语言(DSL)**:JAVA支持创建内部DSL,使得特定领域的编程更加简洁高效。 4. **响应式编程**:...
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于...当前其支持的语言限于Java、Groovy和Scala,计划未来将支持更多的语言。
第17章 OSGi的未来 17.1 将OSGi作为推动者 17.2 颠覆性 17.3 生态系统的威力 17.3.1 生态系统与模块化的两个方面 17.3.2 基于组件的开发(CBD)不是已经成功了吗 17.4 生态系统 17.5 结论 附录A 类设计的SOLID原则
第17章 OSGi的未来 17.1 将OSGi作为推动者 17.2 颠覆性 17.3 生态系统的威力 17.3.1 生态系统与模块化的两个方面 17.3.2 基于组件的开发(CBD)不是已经成功了吗 17.4 生态系统 17.5 结论 附录A 类设计的...
2. **Java下一代语言**:专题讨论了Groovy、Scala和Clojure这三种Java虚拟机(JVM)上的语言,它们都试图改进Java的一些不足,如缺乏操作符重载。这些语言的共同点在于提供更灵活的语法和强大的特性,以增强开发者的...
- **未来趋势**:随着硬件技术的发展,未来的并发编程将更加依赖于高级抽象和技术框架的支持,使得开发者能够更加专注于业务逻辑而非底层细节。 通过上述内容的梳理,可以看出《Java虚拟机并发编程》这本书不仅深入...
【准备迎接JDK 9:Oracle Java平台的未来】 JDK 9是Java开发工具包的一个重大更新,它标志着Java平台的进一步发展和创新。在2016年的QCon上海会议上,Rory O'Donnell(Oracle公司的Java平台组成员)分享了关于JDK 9...
“Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目...当前其支持的语言限于Java、Groovy、Kotlin和Scala,计划未来将支持更多的语言。”
您未来的个人计算机助手DeskChan功能: 方便定制的事件和命令系统自然语音处理语音识别全字符自定义全界面定制热键支持网络支持支持Java,Groovy,Kotlin,Scala,Python(2/3),JavaScript中的插件脚本支持无需...