本文来源于我在InfoQ中文站原创的文章,原文地址是:http://www.infoq.com/cn/news/2013/11/ceylon1.0-beta-release
在经历了3年多的开发历程之后,Ceylon现已呼之欲出。Ceylon 1.0 Beta版实现了完整的语言规范,提供了在Java与JavaScript虚拟机上执行Ceylon程序的能力,并且可以与针对这些平台所编写的原生代码进行交互。
Ceylon是个开放源代码、社区参与构建的语言、平台与SDK,面向业务计算,它主要是由来自于Red Hat的Gavin King(Hibernate框架创始人、Seam框架负责人)进行设计的。从2011年开始进行开发,它可以运行在Java与JavaScript虚拟机之上,并且几乎消除了客户端与服务器之间的语言差异。
Ceylon的灵活性让业界分析师们认为它将成为“Java杀手”,Gavin King也曾对这个论点做出过如下的回复:
首先,我从来也没有将Ceylon看作是Java杀手或是下一代的Java语言。我的意思是说Ceylon并不是Java,它是一门深受Java影响的全新编程语言,由那些喜欢Java的人开发并设计出来的。Java并不会在短时间内消亡,因此没人能够干掉它。
为什么要开发一门新的语言呢?Ceylon的创建源自多种因素,不过Gavin King在其博客上写到,最重要的原因在于人们发现使用Java的继承语法来定义用户界面以及结构化数据实在是太困难了。Ceylon开发社区也在利用这个机会编写一个全新的SDK,试图解决Java SDK中过时的类库所带来的诸多问题。
Gavin King继续说到:
我们在过去的十年中一直在为Java设计和构建框架与库,因此深知它的限制所在,对此也感到非常沮丧。我认为Java中很难解决的头号技术问题(或许也是其他现有的JVM语言存在的问题)就是使用类型安全与继承语法来定义用户界面和结构化数据的问题。如果这个问题没有解决方案,那么Java只能继续深陷在XML的泥潭之中。
不过我们很多的沮丧并不仅仅在于Java语言本身。Java SE SDK中那些过时的类库存在太多的问题,开发一个优秀的SDK是Ceylon项目首先要实现的需求。
虽然Ceylon与Java存在很多相似之处与不同之处,不过最重要的差别在于类型系统。在你学习编程时,类型是首先要学习的东西。让人惊讶的是,这门语言并没有我们大多数人都习以为常的原生类型和数组。Ceylon使用了集合的并集与交集的概念进行表达,让编译器自动确定类型。这样,语法本身就非常具有可读性了,特别是对于大型团队来说更是如此。如果想要了解新特性的完整列表,请参阅http://ceylon-lang.org/documentation/。
有人可能会说从头开始创建一门全新的语言和SDK实在是一项太过于庞大的任务了。实际上,我们并不是完全从头开始的:我们可以重用Java生态圈中基于开源许可的大量代码。想想看,有Open JDK的,JBoss的,当然还有Eclipse的。Ceylon的目标并不是要实现整个SDK、编译器以及IDE。这对于像Red Hat这样规模的公司来说并不是一个无法完成的任务。当然了,我们也并不是完全由自己来做这件事的,如果没有社区的帮助和参与,这样的项目就没那么有趣了。
Ceylon的官方站点列出Ceylon具有如下特性:
此次发布主要包含如下特性:
与此同时,Ceylon团队还发布了Ceylon IDE 1.0 Beta版,这是功能完善的基于Eclipse的集成开发环境的最新版。
此次发布引入了如下新的语言特性,同时还修复了不少Bug:
感兴趣的读者还可以在这里了解到语言的全部新特性。
此次发布的IDE增强了性能,同时也修复了不少Bug:
Ceylon社区站点提供了文档以及关于快速上手的信息,地址是http://ceylon-lang.org。
针对1.0 Beta版重新编译的平台模块位于共享的社区仓库中,地址是http://modules.ceylon-lang.org。
Ceylon的源代码、规范等内容位于GitHub上,地址是https://github.com/ceylon。
Bug与建议等信息都位于GitHub的问题追踪器上,地址是http://ceylon-lang.org/code/issues。