阅读更多
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代码:
void hello() {
  writeLine( "Hello World." );
}


一个简单的函数:
function distance(Point from, Point to) {
    return ((from.x-to.x)^2 + (from.y-to.y)^2)^0.5;
}


一个简单的类:
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
  • 大小: 276.9 KB
4
0
评论 共 18 条 请登录后发表评论
18 楼 纪流年 2013-11-25 09:16
哪一出。
17 楼 jzzwy 2013-11-24 17:22
轮子太多 ,讨厌死了
16 楼 flownclouds 2013-11-22 13:34
JAVA 不是那么容易就能够被替代的。
15 楼 rox 2013-11-21 10:48
这哥们不整Seam了?!
14 楼 iminto 2013-11-21 10:06
vb2005xu 写道
能不创建这么多语言么 累么 我看的都累了

这是好事啊,扩大Java生态圈。再说了,又不是什么都要学,只是某些场景下的一种工具而已。比如我就不碰coljure,但我玩groovy
13 楼 mz0827 2013-11-20 18:25
这个名字有啥意义么?
12 楼 jf0820 2013-11-20 17:30
即便语言是好用的 但是现在大家用java都习惯了 不是到了非换不可的地步 一般的人是不会换的。  再者是否更换开发语言是公司领导决定的,但是公司领导一般没时间去学新的语言,所以没有压力推动,其他可以替代java的语言即便是比较不错也是很难再推行开来的!@
11 楼 witcheryne 2013-11-20 13:37
海盗大哥 写道
ray_linn 写道
xpf7622 写道
ray_linn 写道
哥,你好好玩ORM吧,语言设计不是你的专长。

一看就是中国人的眼光。Lucene的作者还实现了Hadoop。
中国看不起技术人员,官本位思想严重。看看国外的大牛,好好学习吧。



你知道啥叫官本位吗???

屁股决定脑袋呗

哈哈! 屁股的确比脑袋好使!
10 楼 海盗大哥 2013-11-19 17:45
ray_linn 写道
xpf7622 写道
ray_linn 写道
哥,你好好玩ORM吧,语言设计不是你的专长。

一看就是中国人的眼光。Lucene的作者还实现了Hadoop。
中国看不起技术人员,官本位思想严重。看看国外的大牛,好好学习吧。



你知道啥叫官本位吗???

屁股决定脑袋呗
9 楼 songbgi 2013-11-19 17:21
vb2005xu 写道
能不创建这么多语言么 累么 我看的都累了


+1
8 楼 faye.feelcool 2013-11-19 13:24
我能理解他发明语言冲动。其在实现hibernate过程中就用到了编译器技术,来实现hql,或多或少都会有些影响的。包括我自己,在研究hibernate中的hql实现过程中接触了antlr,时不时都有自己做一个语言的冲动,尤其是在研究abap实现和看有那么新语言诞生就更强烈。所以,让一门新语言诞生吧,那表示在IT领域又多了一个工具。
7 楼 vb2005xu 2013-11-19 12:05
能不创建这么多语言么 累么 我看的都累了
6 楼 ray_linn 2013-11-19 09:59
xpf7622 写道
ray_linn 写道
哥,你好好玩ORM吧,语言设计不是你的专长。

一看就是中国人的眼光。Lucene的作者还实现了Hadoop。
中国看不起技术人员,官本位思想严重。看看国外的大牛,好好学习吧。



你知道啥叫官本位吗???
5 楼 webeasymail 2013-11-19 09:33
很多时候都采用Groovy了,在语法层面上可以简化很多
4 楼 xpf7622 2013-11-19 08:33
ray_linn 写道
哥,你好好玩ORM吧,语言设计不是你的专长。

一看就是中国人的眼光。Lucene的作者还实现了Hadoop。
中国看不起技术人员,官本位思想严重。看看国外的大牛,好好学习吧。
3 楼 liukai 2013-11-18 17:33
ray_linn 写道
哥,你好好玩ORM吧,语言设计不是你的专长。

人艰不拆啊
2 楼 ray_linn 2013-11-18 17:32

Table table = Table {


    title = "Squares";


    rows = 5;


    Border {


        padding = 2;


        weight = 1;


    };


    Column {


        heading = "x";


        width = 10;


        String content(Integer row) {


            return row.string;


        }


    },


    Column {


        heading = "x^2";


        width=10;


        String content(Integer row) {


            return (row^2).string;


        }


    }


};


这种语法

和ruby比: 接近slim还多出一堆花括号(放一个HTML文件里,那是很可观的)
和ASP.NET比:设计页面和设计程序到底不是一帮子人吧。。。
1 楼 ray_linn 2013-11-18 17:21
哥,你好好玩ORM吧,语言设计不是你的专长。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Oracle 数据库 简单操作命令(新手看 可以收藏哟)

    目录Oracle 数据库 操作命令总集(新手看 可以收藏哟)一、认识 Oracle1、简介2、需要了解的知识点二、SQL 查询1、了解表及表的结构2、SQL语句特点3、简单的查询(????参考上面的表结构) Oracle 数据库 操作命令...

  • 新手oracle数据库优化,这是我总结的新学的oracle数据库,适合学过的新手复习

    PL/SQL中的静态SQL oracle 在解析sql时会把plsql中定义的变量转为绑定变量,减少了硬分 析次数 server process将执行完的SQL cache起来,cursor不关闭,当再次执行 SQL时,不需要软分析 过程中的参数会自动转化为...

  • 数据库语句大全

    新手用作自查自检 用户管理:  1、新建用户:  >CREATE USER name IDENTIFIED BY ‘ssapdrow’;  2、更改密码:  >SET PASSWORD FOR name=PASSWORD(‘fdddfd’);  3、权限管理  >SHOW GRANTS ...

  • 在Android应用程序中保存到SQLite数据库

    这是我系列中有关在Android应用程序中保存数据的第四篇文章。 这是其他帖子: 简介:如何在Android应用程序中保存数据 将数据保存到Android应用程序中的文件 在您的Android应用程序中保存首选项 先前的帖子介绍...

  • sqlite3基本操作_在Android应用程序中保存到SQLite数据库

    sqlite3基本操作 这是我系列中有关在Android应用程序中保存数据的第四篇文章。 这是其他帖子: 简介:如何在Android应用程序中保存数据将数据保存到Android应用程序中的文件在您的Android应用程序中保存首选项 先前...

  • 新手入门MySQL数据库【基础知识】

    数据库操作 脑图 查看当前使用数据库 查看所有数据库 使用数据库 查看当前时间 查看当前用户 查看数据库版本 查看创建数据库信息 创建数据库 基本写法 创建数据库指定utf8编码 不存在再创建数据库 删除数据库 直接...

  • MySQL新手入门之创建数据库和表

    文章目录SQL什么是SQLSQL分类创建删除数据库创建表和删除表创建表和删除表数据类型整型浮点定点数日期和时间类型字符枚举表结构操作查询表修改表删除表数据完整性建表以后表的管理约束主键约束非空约束唯一约束外键...

  • Oracle数据库新手必须知道的内容

    其实Oracle数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库。可以看作是Oracle就只有一个大数据库。 #####实例 一个Oracle实例(OracleInstance)有一系列的后台进程(Backguound Processes)...

  • 时序数据库InfluxDb基础学习(新手学习)

    使用Mysql在存储的过程中,不是对这种基于时间的数据进行优化的,所以,在查询、插入上有一些瓶颈。 InfluxDB的特点 InfluxDB有很多特点,如下: 内置HTTP接口,使用方便 数据可以打标记,这样查询

  • 【入门必看,MySQL从0到1系列- 数据库保姆级图解教程:轻松掌握数据库管理技能】

    除了具有强大的功能外,它还比 Microsoft SQL Server 和 Oracle 数据库快速、可扩展且更易于使用。因此,PHP 脚本通常用于创建功能强大且动态的服务器端/基于 Web 的应用程序。数据库是数据的结构化集合SQL是...

  • Oracle数据库学习:PL/SQL(详解)

    Oracle数据库学习:PL/SQL

  • mysql从服务器能否修改数据,mysql数据库操作新手入门,手把手的教会你 _数据库教程...

    尽管PHPMyadmin管理数据库对新手来说也不妨为一种很好的方式。但更多的实际使用还要靠大家对Myql语句格式的精通和熟练的操作。为了方便新手尽快入门,掌握Mysql的奥妙。在下费了一个礼拜时间的调试和整理,终于完稿...

  • Navicat操作数据库

    新手操作数据库之必备

  • Java_14_MySQL数据库第1天:数据库安装与使用、SQL语句(DDL、DML、DCL、DQL)、数据库约束

    摘要 一、数据库 1、数据的存储方式 1、数据保存在内存(程序运行时临时保存) int[] arr = new int[]{1, 2, 3, 4};...new出来的对象存储在堆中堆是内存中的一小块空间 优点:内存速度快 缺点:断电/程序退出,数据...

  • MYSQL语法相关笔记,不适合新手。

    对Mysql的基础和进阶的相关学习,但是没有视图,内容删除冗余解释,不适合新手。

  • 数据库学习笔记(MySQL)

    一、数据库的基本概念 1、数据库的作用 数据库可以将数据本地化,实现长期保存 数据库使用完整的管理系统,便于查询 2、

  • mysql数据库基础入门

    介绍mysql数据库的基础

  • 【2.5w字吐血总结 | 新手必看】全网最详细MySQL笔记

    在数据库中,数据按照一定的规则和结构进行组织和存储,以便于对数据进行检索、处理和管理。数据库通常由多个表格(或称为关系)组成,每个表格包含了一组...本文内容均为重点知识点,是学习MySQL的不二选择。学习...

  • .NET5仓储管理系统:集成EFCore、Redis缓存、RabbitMQ等技术实现企业级应用

    内容概要:本文详细介绍了基于.NET5开发的一个仓储管理系统,涵盖了多个关键技术的应用。首先,在数据访问方面,使用了EF Core进行ORM操作,并引入了全局逻辑删除和多租户过滤等功能。其次,权限管理部分采用Policy机制实现动态按钮权限控制,权限数据存储于Redis中,确保高效响应。再次,消息队列方面,通过RabbitMQ实现库存变动后的异步通知,保障库存数据的一致性和可靠性。此外,系统还支持多租户模式,能够根据不同租户的需求灵活切换数据库连接。前端则选择了LayUI作为主要框架,配合WebSocket实现库存变化的实时推送。部署环节涉及Ocelot网关、Consul服务注册以及Docker容器化部署,确保系统的高可用性和扩展性。 适合人群:具有一定.NET开发经验的研发人员和技术爱好者。 使用场景及目标:适用于希望深入了解.NET5企业级应用开发的技术人员,尤其是对仓储管理系统感兴趣的人群。通过学习本文,读者可以掌握如何将多种现代技术集成到一个完整的解决方案中,从而提高开发效率和系统性能。 其他说明:文中提供了大量实际代码片段,帮助读者更好地理解和实践相关技术。同时,作者分享了许

  • 中国联通自智网络技术白皮书-云光和云网专线场景的技术特征与应用

    内容概要:本文档是中国联通发布的关于自智网络技术白皮书,详细介绍了云光和云网专线场景下的自智网络技术。主要内容涵盖行业洞察、中国联通专线自智网络概述、云光和云网专线自智网络的技术特征、分级标准及其关键技术,以及专线自智网络的分级测评和认证体系。文中强调了自智网络在提升网络智能化、自动化方面的关键作用,特别是在云光和云网专线场景的应用,旨在为行业客户提供高品质的专线服务,促进网络向融合化、智能化、绿色化发展。 适合人群:适用于通信行业的技术人员、研究人员、管理人员,尤其是关注自智网络技术及其应用的专业人士。 使用场景及目标:①帮助行业客户理解自智网络技术在云光和云网专线场景中的应用;②为运营商提供技术参考,提升网络智能化水平;③促进产业链上下游协同发展,推动自智网络的商业化应用。 其他说明:本文档不仅提供了详细的理论和技术解析,还结合了中国联通的实际案例,展示了自智网络在实际应用中的成效和发展前景。

Global site tag (gtag.js) - Google Analytics