【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

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

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

关注

评论

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

我是如何使用Spring Retry减少1000 行代码

小小怪下士

Java spring 程序员

直播app源码,会话描述协议SDP:高质量平台服务

山东布谷科技

软件开发 数据传输 直播APP源码 sdp 会话描述协议

创建web应用程序,React和Vue怎么选?

没有用户名丶

生成式AI将重塑中国云产业

百度开发者中心

智能云 ChatGPT 生成式AI 文心一言

对话无服务器专家 Luca Mezzalira:你真的为 Serverless × AI 做好准备了吗?

亚马逊云科技 (Amazon Web Services)

Java 人工智能

C++函数重载

智趣匠

快速构建商业模式,企业在云服务器选购上有什么需要注意的?

轶天下事

R语言之数据导出

timerring

R 语言

ARTS 打卡第 2 周: 对比法在编程上的具体应用

前行

Java函数式编程 :为什么要关心Java8

java易二三

Java 编程 程序员 计算机 科技

生成式AI:引领未来文案创作新潮流

百度开发者中心

#人工智能 生成式AI 文心一言

安卓设备文件传输 MacDroid pro for mac激活中文

胖墩儿不胖y

文件传输 Mac 软件 传输文件

采购云服务器安全与成本不可兼得?云耀云服务器L或许可以了解一下

轶天下事

AI+SaaS,会是微盟们的新法器吗?

自象限

蚂蚁 SOFAServerless 微服务新架构的探索与实践

SOFAStack

Serverless 微服务 开发 应用架构

生成式AI:改变未来的创新力量

百度开发者中心

#人工智能 ChatGPT 生成式AI 文心一言

代码随想录Day50 - 动态规划(十一)

jjn0703

鹏云网络入选中国信通院《高质量数字化转型产品及服务全景图(2023)》

鹏云网络

数字化转型 云服务 分布式存储 信通院 分布式块存储

极狐GitLab 价值流管理之「总时间图」使用指南

极狐GitLab

DevOps gitlab 软件研发 价值流 时间图表

生成式AI革新传媒互联网行业

百度开发者中心

媒体 传媒 #人工智能 ChatGPT 文心一言

如何给application.yml文件的敏感信息加密?

java易二三

Java 编程 程序员 计算机 科技

Java仿抽奖系统

java易二三

Java 编程 程序员 计算机

DaVinci Resolve Studio 18 for Mac 18.5.1中文激活版

mac大玩家j

达芬奇18破解版 达芬奇18 视频调色软件

超越边界:FaaS 的应用实践和未来展望

SOFAStack

Serverless 架构 开发 Faas 函数

龙蜥社区标准化SIG举行线下社区标准研讨会,助力开源社区规范发展

OpenAnolis小助手

操作系统 龙蜥社区 硬件兼容性 质量测试 标准化 SIG

HarmonyOS元服务开发实践:桌面卡片字典

HarmonyOS开发者

HarmonyOS

流程图&时序图绘制小tips

得物技术

流程图 UML 画图 企业号 8 月 PK 榜

领域驱动设计(DDD): 三层架构到DDD架构演化

付威

领域驱动设计

电商秒杀系统架构设计

艾瑾行

架构训练营

适用于各阶段Java程序员的面试备战/避坑指南

程序员小毕

Java 程序员 架构师 java面试 八股文

生成式AI技术的应用与发展

百度开发者中心

自然语言处理 #人工智能 ChatGPT 文心一言

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