写点什么

Ceylon 1.0 Beta 版发布,正式版呼之欲出

  • 2013-11-10
  • 本文字数:2428 字

    阅读完需:约 8 分钟

在经历了 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 拥有强大的静态类型系统,可以防止很多 Bug 的产生,你可以通过 Ceylon 轻松进行表达:并集类型、交集类型、高阶函数、掺元继承以及枚举类型等等。
  • 可读性:我们在阅读别人代码上所花费的时间要超过自己编写代码的时间。因此,Ceylon 非常强调可读性,通过高度有规则的语法、支持树形结构以及优雅的语法糖来做到这一点。
  • 可预测性:Ceylon 通过清晰度来控制复杂性。语言极力避免会引起混乱的那些隐式特性。编译器遵循着简单、直观的准则同时会生成有意义的错误提示信息。
  • 平台:Ceylon 是个完整的平台,拥有一个现代化的 SDK。它能运行在 Java 与 JavaScript 虚拟机之上,填平了客户端与服务器之间的沟壑。Ceylon 完全能够与 Java 及 Java SDK 进行交互。
  • 模块化:模块化是语言、SDK 与工具非常核心的一个组成部分。编译器会生成模块归档,然后通过下一代的仓库架构 Ceylon Herd 进行分发。
  • 工具:静态类型是促成杀手级工具产生的一个强有力的技术。Ceylon 带有一个功能完善的命令行工具集、一个完整的基于 Eclipse 的 IDE,提供了搜索、重构、快速修复、辅助功能、自动完成、调试等诸多功能。

此次发布主要包含如下特性:

  • 完整的语言规范,定义了可供专业开发者所用的 Ceylon 语言的语法和语义。
  • 一个命令行工具集,包含了针对 Java 与 JavaScript 的编译器、一个文档编译器,并
  • 且支持在 JVM 与 Node.js 上执行模块化程序。
    一个强大的模块架构,用于代码组织、依赖管理以及运行期的模块隔离。 - 一个语言模块,这是最小的 Ceylon SDK 的跨平台基础。

与此同时,Ceylon 团队还发布了 Ceylon IDE 1.0 Beta 版,这是功能完善的基于 Eclipse 的集成开发环境的最新版。

语言的新特性

此次发布引入了如下新的语言特性,同时还修复了不少 Bug:

  • 注解与注解约束
  • 一个类型安全的元模型
  • “静态”方法与属性引用
  • 可以操纵资源的 try 语句
  • switch 语句中可以支持字符串、整型以及字符
  • 字符串与字符字面值中可以支持具名的 Unicode 字符
  • ** 乘法运算符
  • 非空的 variadic 参数
  • 用于调用继承接口成员的新的改进语法

感兴趣的读者还可以在这里了解到语言的全部新特性。

IDE 的新特性

此次发布的 IDE 增强了性能,同时也修复了不少 Bug:

  • 支持在模块运行期装载 Ceylon 程序
  • 粘贴时的自动导入以及自动缩进
  • 集成 Eclipse 内建的文件与包重构功能
  • 内联的“链接模式”重命名,并且支持对文档中所引入的字符串的重命名
  • 改进了自动完成功能,包括“链接模式”的参数完成
  • 与 Eclipse 合并视图更好的集成
  • 与命令行工具集配置文件格式的集成
  • 增加了几处新的辅助功能,包括快速增加与修改导入
  • 一个新的编辑器首选项页面

社区

Ceylon 社区站点提供了文档以及关于快速上手的信息,地址是 http://ceylon-lang.org。

SDK

针对 1.0 Beta 版重新编译的平台模块位于共享的社区仓库中,地址是 http://modules.ceylon-lang.org。

源代码

Ceylon 的源代码、规范等内容位于 GitHub 上,地址是 https://github.com/ceylon。

问题

Bug 与建议等信息都位于 GitHub 的问题追踪器上,地址是 http://ceylon-lang.org/code/issues。

2013-11-10 23:15913
用户头像

发布了 88 篇内容, 共 263.2 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

APISIX的安装和简单使用

飞翔

8年经验面试官详解 Java 面试秘诀

钟奕礼

Java 面试 java;

狂刷《Java权威面试指南(阿里版)》,冲击“金九银十”有望了

程序知音

Java 阿里 后端技术 Java面试题 Java面试八股文

【Java面试宝典】带你拿offer

钟奕礼

Java 面试 java;

JDK RMI探索与使用--序列化

霍格沃兹测试开发学社

GOPS现场 | 芯片行业需要怎样的版本管理工具——对话龙智大规模安全研发技术专家

龙智—DevSecOps解决方案

版本控制 版本管理工具 版本管理 版本控制工具

ITSM | Atlassian ITSM终极指南,重构IT、运营和支持的工作方式

龙智—DevSecOps解决方案

ITSM ITSM解决方案

Baklib知识分享|知识库对企业来说有哪些意义?

Baklib

图像匹配几种常见算法与实践

霍格沃兹测试开发学社

Jenkins实践——创建Pipeline的两种方式

霍格沃兹测试开发学社

图像匹配几种常见算法与实践

霍格沃兹测试开发学社

600+ 道 Java面试题及答案整理(建议收藏)

钟奕礼

Java 面试 java; Java 面试题

通过Inotify-tools 监听文件夹并同步文件至FTP服务器

皮特王

行业方案|“医疗”行业智能运维解决方案介绍

云智慧AIOps社区

监控 智能运维 智能优化算法 自动化运维 IT解决方案

知识管理在企业业务中如何体现其价值

Baklib

前端代码优化小技巧

霍格沃兹测试开发学社

技术分享 | web自动化测试-文件上传与弹框处理

霍格沃兹测试开发学社

Baklib每日分享|在线产品手册的制作技巧

Baklib

重铸资源合集之荣光,吾辈义不容辞!!

掘金安东尼

前端 9月月更

​小长假要到了,来偶遇吗?

腾讯云数据库

数据库 腾讯云 tdsql 腾讯云数据库

彻底搞懂nodejs事件循环

coder2028

node.js

利用 zabbix 监控服务端口

霍格沃兹测试开发学社

GitHub无抗手!MySQL DBA攻坚指南一出,阿里数据库专家都解脱了

Geek_0c76c3

Java 数据库 开源 程序员 架构

50道Java集合高频面试题,看完面试成功率99%

钟奕礼

Java 面试 java;

栓Q了,大厂被强制毕业,空窗一个月死背八股文,还好拿到了Offer

Geek_0c76c3

Java 数据库 开源 架构 开发

GOPS现场 | 大规模团队如何实现Jenkins的集中管理——对话龙智技术顾问

龙智—DevSecOps解决方案

jenkins 管理Jenkins

Mongodb的分页优化及索引使用

霍格沃兹测试开发学社

Android R给自家UA工具挖坑

霍格沃兹测试开发学社

BUG 修复预估模型

霍格沃兹测试开发学社

天了噜,原来有效的复盘要这样做,微妙!

博文视点Broadview

Java程序员不得不会的124道面试题(含答案)

钟奕礼

Java 面试 java;

Ceylon 1.0 Beta版发布,正式版呼之欲出_Java_张龙_InfoQ精选文章