写点什么

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:15889
用户头像

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

关注

评论

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

甲方日常 79

句子

工作 随笔杂谈 日常

有没有听说过通达快递?

escray

极客时间 极客大学 课程作业 大作业 架构师训练营第 1 期

Python的GIL

yunson

Python GIL

区块链商城系统开发技术详解

我参与阿里巴巴 ASoC-Seata 的一些感悟

阿里巴巴云原生

阿里云 开发者 云原生 感悟 seata

LINUX SHELL脚本攻略

田维常

对冲基金的子基金模式vs集中管理

9527

《数据挖掘:实用的机器学习工具和技术,第4版》PDF版免费下载

计算机与AI

数据挖掘 机器学习 数据科学

mysql binlog轻量同步工具binlog portal

dothetrick

Java MySQL springboot Binlog spring Boot Starter

区块链钱包开发的功能与特点

千里公路建设尽收眼底,3D可视化监测管养运,领导都惊呆了

一只数据鲸鱼

物联网 数据可视化 3D可视化 公路建设 智慧交通

漫画 | 带你领略前端发展史的江湖恩怨情仇

苏南

程序员 大前端 漫画 时代发展

数仓缓慢变化维深层讲解

大数据老哥

大数据 数据仓库 数仓

7 天开发后台系统技术小结

老魚

程序员 全栈 建站

纵观 ActiveX 平台的兴衰史,看开发控件的技术演变

葡萄城技术团队

SpreadJS activex

智慧公安防控管理平台搭建,重点人员管控系统解决方案

t13823115967

智慧公安

大作业1

蓝黑

区块链挖矿系统开发功能方案

国外低代码平台趟过那些坑,对国内低代码企业有哪些启示?

DT极客

数字货币交易所开发的功能与特点

智慧社区管理平台建设,智慧平安小区整体解决方案

t13823115967

智慧社区安防系统平台开发

Ubuntu 使用 Iptables 做网络转发

wong

iptables Ubuntu20.04

币币交易所系统开发详情说明

区块链app开发要多少钱?如何根据项目需求了解价格?

2020年11期券商App行情刷新及交易体验评测报告

博睿数据

APM 数据 AIOPS 证券

Flink SQL 实战:双流 join 场景应用

Apache Flink

flink 流计算

程序员修炼之路:你该知道的 7 个必经阶段

阿里巴巴云原生

阿里云 程序员 云原生 自我思考 成长笔记

这道面试题,出错率90%

田维常

面试

RocketMQ消息模型

废材姑娘

Java RocketMQ

区块链钱包开发的核心优势

区块链数字货币交易所开发的简介

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