众所周知,java是基于JVM的开发语言,但能够在JVM上运行的开发语言不仅仅有java,目前还有很热门的kotlin(kotlin不仅仅只能开发Android)、scala、groovy等等。
目前国内主要的web开发语言还是以java居多,作为主流的面向对象开发语言,不可否认能够被工业社会所全面接受是有其优势的。但是从另一方面来讲,作为OOP也有其自身的局限性,即使官方也在积极的扩展java的各种功能,比如lambda的支持等,但这种阉割版的“FP”用起来还是有些差强人意,对于一些热衷于FP的开发人员,是满足不了他们的需求的。因此一种新的“混合式编程”便应运而生。
        所谓的混合式编程,就是在同一个project(module)中整合进多种开发语言(基于JVM),在开发过程中根据模块的特性选择不同的开发语言进行开发,开发完成之后使用不同的编译器编译为符合JVM规范的class文件并打包运行。这样在项目开发的过程中,就可以在不同的功能中使用不同语言的特长,充分发挥不同语言的特性。
       目前做了一个java、scalak、kotlin、groovy整合在一起的module模板,有兴趣的可以参考下。项目使用的版本管理软件是gradle,分为groovy DSL版本和kotlin DSL版本,主要区别在于build.gradle支持的DSL脚步不同。

git地址:

  gradle kotlin dsl版本

  gradle groovy dsl 版本

两个module都已经整合进了四种开发语言,并可实现相互的调用。

最新文章

  1. 活用UML-软件设计高手(深圳 2014年4月26-27日)
  2. CSS3实现加载中效果
  3. oracle在impdp时报ORA-31655和ORA-39154
  4. webservice 服务端例子+客户端例子+CXF整合spring服务端测试+生成wsdl文件 +cxf客户端代码自动生成
  5. iOS-修改Status Bar
  6. Java--常用类summary(二)
  7. MSSQL Server Transaction 数据库事务回滚的用法
  8. ActionBarSherlock的学习笔记(二) ------------ 创建ActionBarSherlock
  9. JavaScript学习笔记之下拉选择框的操作
  10. 【转】被误解的MVC和被神化的MVVM
  11. 必看谷歌HTML/CSS规范
  12. _视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear等的区别及用途
  13. QT 强止杀进程
  14. iOS - Block底层解析
  15. jboss初体验
  16. Sql Server Configuration Manager 网络配置为空,没有实例
  17. Windows Server 2016-图形化备份域控制器
  18. 潭州课堂25班:Ph201805201 django 项目 第二十六课 docker简介 (课堂笔记)
  19. RNN实例
  20. Oracle初级索引学习总结

热门文章

  1. Windows中的工作组和域
  2. POJ3070矩阵快速幂简单题
  3. Linux-鸟菜-4-关机的正确姿势
  4. 【python】Leetcode每日一题-最大数
  5. 【apache】使用HttpClient,进行简单网页抓取
  6. JS阻止冒泡事件
  7. 敏捷史话(十七):维基(Wiki)背后的灵感来源—— Ward Cunningham
  8. docker学习之使用 DockerFile 构建镜像并搭建 swarm+compose 集群
  9. [Linux] 完全卸载mysql
  10. [bug] Window远程连接hdfs错误:java.lang.UnsatisfiedLinkError: org.apache.hadoop.util.NativeCrc32.nativeComput