Ceylon IDE 在上周二发布了第一个里程碑,为去年十二月底发布了 M1 的 Ceylon 语言提供了 IDE。
Ceylon 是一种基于 JVM 的新语言,主要由 Red Hat 赞助、Gavin King 牵头,Gavin King 是著名 Java 持久层框架 Hibernate 的创始人。Ceylon 在去年四月召开的 QCon Beijing 上发布,要想进一步了解当时公布的 Ceylon 语言特性细节,请观看 InfoQ 对 Gavin 的采访。
Ceylon M1 附带发布了编译器,Ceylon 语言现在有官方规范。Ceylon 代码可以编译成字节码、在JVM 上执行。Ceylon 的路线图全面概述了Ceylon 第一个版本要支持的内容,其中M2 的目标是支持Java 互操作性。
和许多其他基于JVM 的语言不同,Ceylon 的目标是在缺省情况下保持不变性。如果需要进行变量赋值,那就需要用variable 关键字来表明值可能会变;另外,为变量赋值要使用:=,以便和值赋值使用的= 区别开来。这样做的目的是更加清晰地突出可变变量和不变变量之间的区别。关键字都是词语,而不是符号,以免混淆语言的这些新内容。不过Ceylon 用satisfies 替代了implements。
和Scala 一样,Ceylon 提供了一种Option 类型(也叫做Maybe 类型),允许可以为空的类型值。这种类型可以用简写T? 表示;T 类型则表示包含的值不会为空。(这有助于用类型检查器去保证值不为空;Java 里空引用的问题已经用@NotNullable 和@Nullable 注解去解决了。对于Null 的引入,Tony Hoare 曾把它描述为价值十亿美元的错误)。
如今,任何新语言都有相应的IDE 去完成开发。就像最近发布的 Scala IDE ,Ceylon 现在也有了 Eclipse 插件形式的 Ceylon IDE 。它有一个内置的编译器,尽管用 Eclipse 编译的代码也能在独立的 Ceylon 编译器 / 运行时环境里运行(反之亦然)。
完整的功能列表可以去 IDE 的文档页面查看,里面有一个贴了很多截图的独立页面。IDE 既可以运行Ceylon 代码,也可以调试,而不用安装其他工具链。IDE 支持很多标准特性(比如TODO 和大纲视图),也支持Ceylon 特有的功能(比如Ceylon 特定的重构和快速修复)。
由于Ceylon IDE 是基于Eclipse 的插件,所以现有的开发者工具链都能使用EGit 和Subclipse/Subversive 等已有工具的Hook。尽管可以用Ceylon 工具集编译代码,但Ant、Maven 等现有构建系统的插件目前还不可用。
最后, GitHub 里 Ceylon 项目的代码已经可用了,你也可以从下载页面直接下载。
Ceylon 和 Ceylon IDE 现在都发布了,你怎么看待这种语言和它的工具呢?
评论