写点什么

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

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

关注

评论

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

让GitHub低头认错的这份阿里内部绝密Java面试八股文手册有多强?

Java你猿哥

Java 面试 ssm 面经 八股文

使用 IDEA 远程 Debug 调试(一篇懂所有)

Java你猿哥

Java Spring Boot ssm IDEA

华为ISDP数字化现场作业亮相第十七届工程建设行业信息化发展大会

平平无奇爱好科技

震撼!阿里架构师全新产出Java面试突击宝典。我觉得泰库辣!

Java你猿哥

Java redis spring Spring Boot JVM

ShareSDK 微信平台注册指南

MobTech袤博科技

Ts中string、number和any等类型 不能当做索引用,怎么处理?

肥晨

三周年连更

用C语言实现,终端输入1.2.3.4/32,解析输出unsignedint类型的1.2.3.4和32

linux大本营

C语言

今天一定要搞清楚Spring事务

Java spring Spring事务

校园共享电单车是否值得投放

共享电单车厂家

共享电动车厂家 共享电单车投放 校园共享电动车 本铯共享电动车

华为ISDP亮相长沙电力行业信息化年会,分享数字化转型实践与技术创新

平平无奇爱好科技

用纯python写web app:Streamlit

AIWeker

Python python小知识 三周年连更

多位P8大牛联袂推出:国内最牛的Java面试八股,不接受反驳

Java你猿哥

Java 面试 ssm 面经 八股文

卧薪尝胆30天!啃透京东大牛的高并发设计进阶手册,终获P7意向书

Java 系统设计 高并发

强强联合,ByteHouse携手亚马逊云科技,新一代云数仓服务重磅升级

字节跳动数据平台

数据仓库 云原生 Clickhouse 企业号 4 月 PK 榜

SaaS 软件的 SLA 和 Escalation

汪子熙

SaaS Cloud 三周年连更

超越YOLOv8,飞桨推出精度最高的实时检测器RT-DETR!

飞桨PaddlePaddle

人工智能 计算机视觉 目标检测 百度飞桨

canvas-绘制一个柱状图

格斗家不爱在外太空沉思

CSS canvas 三周年连更

软件测试/测试开发丨Pytest 自动化测试框架(五)

测试人

软件测试 自动化测试 测试开发 pytest alure

Docker不香了?只能说阿里这套K8S手册更香

Java Kubernetes k8s

带你了解关于FastAPI快速开发Web API项目中的模板和Jinja

华为云开发者联盟

微服务 前端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

百度APP iOS端包体积50M优化实践(二) 图片优化

百度Geek说

ios 开发语言 企业号 4 月 PK 榜

融云 CTO 岑裕:出海技术前沿探索和排「坑」实践

融云 RongCloud

运维 网络 融云 泛娱乐 出海

如果不知道这4种缓存模式,敢说懂缓存吗?

Java你猿哥

缓存 架构 ssm 架构设计 cache

PostgreSQL插件那么多,怎样管理最高效?

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

数仓实践丨主动预防-DWS关键工具安装确认

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

Java 应用程序在 Kubernetes 上棘手的内存管理

Java Kubernetes JVM 内存管理

深入探索数据库MySQL,性能优化与复杂查询相关操作

Java MySQL 数据库 性能优化

目前江西省等级测评公司有几家?都在南昌吗?

行云管家

江西 等保 等级保护 等保2.0

泰库辣!京东首席架构师:亿级流量网站架构核心技术,肝完薪资飙升

Java你猿哥

架构 高可用 ssm 高并发 架构设计

华为亮相KubeCon EU 2023 新云原生开源项目Kuasar推动“云上演进”

华为云开发者联盟

开源 后端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

【Python实战】Python采集皮肤图片数据

BROKEN

三周年连更

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