`
xinklabi
  • 浏览: 1586490 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
文章分类
社区版块
存档分类
最新评论

Ceylon 1.0发布:又一个“Java语言替代品”?

 
阅读更多

Ceylon是Gavin King(Hibernate和Seam创始人)的作品,这是一个可运行于Java和JavaScript虚拟机的、高可读的、模块化的、面向对象的静态类型编程语言,其融合了Java、C、Smalltalk以及函数式语言的特性,试图解决Java语言中的一些问题。

Gavin King近日发布了Ceylon 1.0正式版本,这意味着其语言规范、编译器和IDE都到达了生产标准。



Ceylon的语言特性

Ceylon语言的主要特点如下:

  • 高度可读性,极力避免和消除潜在的有害架构
  • 一个强大的类型系统,结合了子类型、参数化多态性和声明位置变量,包括集和交集类型,并使用主要类型用于局部类型推断和依赖流(flow)的类型归类。
  • 独特的函数和元组类型,可以实现强大的抽象
  • 针对模块定义和模块间依赖定义的先进的架构
  • 一个非常灵活的语法,支持类似于树形的结构表达方式
  • 完全具体化的泛型类型,支持JVM和JavaScript虚拟机,还包括一个独特的类型安全的元模型。

详细语言特性:http://ceylon-lang.org/features

Ceylon语言包及工具

此次发布的1.0版本中包括:

  • 一个完整的语言规范,定义了Ceylon的语法和语义,便于开发者学习
  • 一个命令行工具集,包括针对Java和JavaScript的编译器、文档编译器、支持在JVM和Node.js上执行模块化程序
  • 一个功能强大的模块架构,可用于组织代码、管理依赖、在运行时隔离模块
  • 语言模块,这是Ceylon语言的重要组成部分,是Ceylon SDK跨平台的基础
  • 一个全功能的基于Eclipse的集成开发环境

发布日志:http://ceylon-lang.org/blog/2013/11/12/ceylon-1/

Ceylon的目标

像其他JVM语言一样,Ceylon也被誉为“Java的替代者”,对此,Gavin King表示:

引用
Ceylon不是Java,它是深受Java影响的一种新语言,它的设计者是Java的坚定支持者。Java不会很快消亡,没有哪种语言能够取代它。


Gavin King表示,开发Ceylon的初衷是为了扩展Java,而不是取代Java,Gavin认为Java中有许多问题,包括泛型等特性的复杂性、设计粗糙且晦涩难懂的JDK、粗劣的注解语法、不完善的块结构、对XML的依赖性等等,因此他希望开发一种新型语言来解决这些问题。

一些示例代码

Ceylon的Hello World代码:

Ceylon代码 复制代码
  1. void hello() {  
  2.   writeLine( "Hello World." );  
  3. }  
void hello() {
  writeLine( "Hello World." );
}



一个简单的函数:

Ceylon代码 复制代码
  1. function distance(Point from, Point to) {  
  2.     return ((from.x-to.x)^2 + (from.y-to.y)^2)^0.5;  
  3. }  
function distance(Point from, Point to) {
    return ((from.x-to.x)^2 + (from.y-to.y)^2)^0.5;
}



一个简单的类:

Ceylon代码 复制代码
  1. class Counter(Integer initialValue=0) {   
  2.     variable value count = initialValue;   
  3.     shared Integer currentValue {  
  4.         return count;  
  5.     }   
  6.     shared void increment() {  
  7.         count++;  
  8.     }   
  9. }  
class Counter(Integer initialValue=0) { 
    variable value count = initialValue; 
    shared Integer currentValue {
        return count;
    } 
    shared void increment() {
        count++;
    } 
}


官方网站:http://ceylon-lang.org/

Github地址:https://github.com/ceylon

分享到:
评论

相关推荐

    javaee登陆页面源码-ceylon-dddsample:dddsample项目的Java+JEE移植的Ceylon+JEE移植

    java ee登陆页面源码Ceylon 和 Java EE 的 DDDSample 这个项目是这个项目在锡兰的重写。 使用的 Java EE 技术包括 JPA、CDI、EJB、JAX-RS、JMS、WebSocket、JSF 和 Facelets。 要求 该项目需要和 . 编译和组装 在本...

    ceylon-1.3.3.zip

    Ceylon语言是一种现代化的、...对于那些寻求替代Java或希望在JVM平台上尝试新语言的企业,Ceylon是一个值得考虑的选择。通过学习和使用Ceylon,开发者可以利用其独特的特性和工具来构建高效、可靠的企业级应用程序。

    ceylon-webgl:Threejs示例http的锡兰端口

    我对 Ceylon 很感兴趣,我正在试验它的 JS 互操作功能,我正在寻找一个有趣的小项目来了解更多信息。 我听说了 Three.js 库,并对在线示例感到惊讶。 鉴于我是 3D 的绝对初学者,这也是学习更多的机会。 为什么是...

    聊聊Java平台上的非Java语言共3页.pdf.zip

    Jython是Python语言的一个实现,它运行在JVM上,允许开发者使用Python语法编写程序,同时利用Java的库和框架。Jython适合那些喜欢Python语法但需要与Java生态系统交互的开发者。 6. **JRuby** JRuby是Ruby语言的...

    Java和Ceylon对象的构造和验证

    在Java和Ceylon编程语言中,对象的构造和验证是创建安全、健壮代码的关键步骤。本文将深入探讨这两个语言中如何处理对象的初始化和验证,以及如何避免潜在的问题。 首先,让我们分析Java中的问题。在给出的Java代码...

    ceylon.build:基于锡兰任务的构建系统

    锡兰.build 基于锡兰任务的构建系统。... 在新流程中启动命令的任务锡兰任务: 编译,运行,测试,记录锡兰模块的任务文件任务: 复制/删除文件和目录的任务用法创建一个构建模块。 构建模块是标准的锡兰模

    Android代码-ceylon-compiler

    这个项目原本是为Android平台提供Ceylon编程语言的编译器支持。Ceylon是一种现代化的、静态类型的、面向对象的编程语言,设计目的是提高代码的可读性和可维护性。 在Android开发中,通常我们使用Java或Kotlin作为...

    cdi-ceylon-test:用 Ceylon 测试 CDIWeld 的应用程序

    用于测试 CDI/Weld 与 Ceylon 的应用程序跑步: cd helloworld && ant -Dceylon.home=/path/to/ceylon/dist && cd - && ant

    ceylon-mode:用于编辑锡兰代码的主要Emacs模式

    锡兰模式 用于编辑代码的主要模式。 当前状态 我认为该模式有效,足以用于一般用途。 当我有时间进行开发时,我... 代码格式化功能需要使用ceylon format插件,该插件通常与Ceylon发行版捆绑在一起。 用法 该软件包会

    ceylon.markdown:commonmark.js Markdown解析器和渲染器到Ceylon的端口

    该存储库包括主要的ceylon.markdown模块,其随附的测试套件以及两个生成部分代码的实用程序模块。 用法 与commonmark.js类似,解析和渲染是在单独的步骤中执行的: value root = Parser (). parse ( "## Hello ...

    GIAC 2016 - Java生态圈与微服务-丁雪丰-1.1.pdf

    Java自1995年诞生以来,经历了多次重大版本更新,从最初的1.0到2014年的Java 8,再到2017年的Java 9,其发展历程反映了编程语言的不断进化和适应市场需求的能力。TIOBE指数,作为衡量编程语言流行度的重要指标,显示...

    ceylon-natives-with-java-implementation

    使用 Java 实现的锡兰本地人这只是一个小项目,为了展示提交和 ,可以: 定义 Ceylon 本机顶级类或函数头, 直接用Java编写它的实现, 并将Java 实现视为与 Ceylon 本机标头声明相关联的jvm 后端本机声明。...

    ceylon-war-examples:锡兰 WAR 模块示例

    然后生成一个war文件: ceylon war servlet.example 或者 ceylon war jaxrs.example 运行ceylon help war以获取完整的选项列表。 生成的 WAR 文件在 WildFly 8.1.0.Final 和 9.0.0.Alpha1 中都可以使用,servlet...

    Ceylon News:僧伽罗语、英语和泰米尔语新闻阅读器-开源

    综上所述,Ceylon News 是一个结合了多语言支持、新闻聚合、本地化存储和用户友好界面的开源项目,背后涉及到了一系列的软件开发技术和最佳实践。通过参与开源社区,用户和开发者都能从中受益,共同推动这款新闻阅读...

    lahore:Ceylon 中的多站点和支持插件的 Web 框架

    拉合尔网络框架 多站点和支持插件的 Web 框架 受到 Play、Drupal、Shopify Liquid 等优秀开源项目的启发。...启动一个新的命令行窗口(或 shell)并输入ceylon --version 。 你应该看到一些输出 选择

    NetCeylonBeans:NetBeans IDE 中的 Ceylon 插件

    总的来说,NetCeylonBeans插件是NetBeans IDE的一个强大扩展,它使得Java开发者可以轻松地在熟悉的环境中使用Ceylon语言进行开发,享受高效和优雅的编程体验。对于想要涉足Ceylon或希望在NetBeans中增强对Ceylon支持...

    Android代码-ceylon

    Ceylon This is the 1.3.4-SNAPSHOT "You'll Thank Me Later" release of the Ceylon command line tools. This is a production version of the platform. Ceylon is a modern, modular, statically typed ...

    ConcurrenCey:ConcurrenCey是锡兰语言的并发框架

    #ConcurrenCey ConcurrenCey是一个Ceylon库,可以轻松编写并发的多线程代码。 目前正在积极开发中。 如果您想贡献一点,请与我联系! 并发提供了低级和高级的并发构造,因此您可以选择在代码中使用哪种样式。入门您...

    java6string源码-KotlinBasics:学习Kotlin语言的基础知识(JetBrains的HadiHariri课程)

    java6string源码Kotlin 基础知识 Kotlin 语言的学习基础 我在学习 JetBrains 的 Hadi ...是多语言环境:Scala、Ceylon、Clojure、Frege、Kotlin、Java,都编译成字节码 Kotlin 源代码 Customer.kt 中的

    ceylon-maven-plugin:用于与 Ceylon 存储库交互的 Maven 插件

    最低要求:Java 7 和 Maven 3.0.5 插件位于 Maven 中央存储库中。 在jar项目的pom.xml中使用带有以下代码段的插件 ... ... < groupId>com.dgwave.car</ groupId> < artifactId>ceylon-maven-plugin...

Global site tag (gtag.js) - Google Analytics