Lightbend 的产品说实在,很多局限性。Scala 并没有想像的那样大红大紫,路越走越窄,只是极客的玩物吧。
试用过一些不多。现在它的产品,也是 Java 和 Scala 语言都提供。
我第一不满就是 SBT,国内大环境大家知道,Lightbend 开发人员坚称 SBT 比 Gradle 和 Maven 高级一些,不仅是 Build 还是一个开发环境。
还好当时 Lagom 出来 1.0 的时候,提过一个 issue,后来还好 Lagom 添加支持了 Maven 。我比较奇怪的是,我就只需要一个 BUILD,为什么 SBT 启动非要给把所有环境全部启动(数据库,ServiceRegistry 等)。后来我很少去关注这个了,写过几个 DEMO 后,看了全部文件,我也不知道怎么才简单的一个 Lagom Microservice Demo 部署到我的自己的生产环境中去,比如 K8s, Aws 等,当然文档有提到 LightBend 是有商业环境支持的很好。
Akka HTTP 和 Play 都有自己玩过,但是都没有实际应用。
与 java 互通性,Scala 明显不如 Kotlin,Kotlin 调用 Java 类,拿来就用,Scala 很多需要转换,特别是 Collections 里面,非常不方便。曾经试过来写 Spring ( Spring 官方以前有一个 Scala 项目,后来停止了,没用那个项目),这一点非常痛苦,
https://github.com/hantsy/scala-sandbox/blob/master/spring-boot-demo/src/main/scala/com/example/demo/DemoApplication.scala#L40-L45,
https://github.com/hantsy/scala-sandbox/blob/master/spring-boot-demo/src/main/scala/com/example/demo/DemoApplication.scala#L94-L99加上之前 Scala 版本兼容性问题,虽然最新版本好像兼容性问题改善了很多,但是一些老习惯留下来了,Scala 几乎每个大版本更新,整个生态都是重新以新版本后缀打包( SBT 是可以专门处理这个)。