Ceylon 1.1 进度报告,基于 JVM 的编程语言

Ceylon 1.1 已经开发6个月了,是时候给大家交待一下开发的进度了。这在 6 个月内我们处理并关闭了超过 650 个 issue,关于编译器和语言模块方面,其中 IDE 方面的问题有 300 个。

目前 Ceylon 1.1 优先级最高的是:

  • 语言模块 API 的最终确认
  • 清理和最小化使用 Java 和 JavaScript 代码
  • 处理影响 Java 互操作的遗留问题
  • 性能提升
  • IDE 构建的性能

当然,也包括很多 bug 修复。

语言方面的变化

语言方面的变化比较少,基本上 1.0 后我们认为比较稳定,而 1.1 主要新特性有::

支持 use-site variance.

因为 Byte 类专门为 JVM 的编译器中的 byte 优化

其他值得关注的变化:

  • Allow comprehensions to begin with anifclause.
  • Newsealedannotation to prevent extension or instantiation of a type outside the module in which it is defined.
  • Introduction ofdynamicinterfaces, designed for wrapping native JavaScript APIs.
  • Redefined-operator to work for anyInvertible.
  • Allow metamodel references toobjects and members ofobjects.
  • try (x)was changed to distinguish between the lifecycles ofObtainableandDestroyableresources.
  • The type of the expression{}is now{Nothing*}instead of[].
  • Allow refinement of multiple overloaded versions of a Java supertype method.
  • Added ability tocatchinstances ofThrowable.

最后两项变化比较大,但多数程序不受影响。

语言模块的变化

在 1.1 中我们引入很多思想和开发的效果在语言模块上,并非常小心的评审这些设计和范围,降低原生代码的使用、优化性能等等。

因此语言模块包含很多不兼容以前的变化,这些都会影响到现有的程序。但 1.1 之后就会稳定下来,不会再有大变化。

  • Addition of a raft of new methods and functions for working with streams.
  • Optimization of the performance ofArray, along with some minor improvements to interop with Java native arrays.
  • Removal of theCloneableinterface, and addition of aclone()method toCollection.
  • Addition ofThrowable.
  • Replacement ofCloseablewithObtainableandDestroyable.
  • Minor changes to the operations ofIterable,List, andMap.
  • ArraySequenceis nowsealedand may be instantiated via thesequence()function.
  • Substantial redesign ofEnumerableandRange.
  • Several changes to the type hierarchy for numeric types.
  • Removal ofSequenceBuilderand move ofStringBuildertoceylon.collection.
  • Removal ofLazyList,LazySetandLazyMap`.

Modularity

主要是提升易用性

  • Ceylon.cararchives now include automatically generated OSGi and Maven metadata, and can execute in an OSGi container.
  • New API for cross-platform resource loading.
  • Support for deploying Ceylon modules to Vert.x.

SDK

主要包括:

  • Introduction ofceylon.locale,ceylon.logging, andceylon.promise.
  • Many enhancements toceylon.collection, including addition ofArrayList,TreeSet,TreeMap, andPriorityQueueclasses, along withStackandQueueinterfaces.
  • Various improvements toceylon.dbc.
  • Many improvements toceylon.test.
  • 目前 collections 模块已经稳定。

IDE

IDE 的开发非常活跃,包含很多新特性和性能的提升:

  • Complete rework of build process, for much improved performance.
  • New refactorings: Move Out, Make Receiver, Move to Unit, Extract Parameter, Collect Parameters, Invert Boolean, Safe Delete.
  • Major enhancements to the Change Parameters refactoring.
  • Inline refactoring now works for shared class/interface members.
  • Brand new high quality code formatter.
  • Rewritten Ceylon Explorer with much better presentation of modules and modular dependencies.
  • New navigation actions: Open in Type Hierarchy View, Go to Refined Declaration.
  • Popup Quick Find References and Recently Edited Files.
  • Graphical Visualize Modular Dependencies.
  • Further integration of "linked mode" with refactorings and quick assists.
  • Useful Format Block source action.
  • Auto-escape special characters when pasting into string literals.
  • Synchronization of all keyboard accelerators with JDT equivalents (by popular request).
  • Save actions in Ceylon Editor preferences.
  • IntelliJ-style "chain completion" (hit ctrl-space twice).
  • Propose toplevel functions applying to a type alongside members of the type.
  • Several new options for customizing autocompletion and appearance in Ceylon Editor preferences.
  • New quick fixes/assists: convert between string interpolation and concatenation, convert to/from verbatim string, add satisfied interfaces, add type parameter, change named argument list to positional, fill in argument names, export module, convert to verbose form refinement, print expression, fix refining method signature, change toif (exists), change module version, assign tofor/try/if (exists)/if (nonempty)/if (is).
  • Run As Ceylon Test on node.js.
  • New default color scheme for syntax highlighting and many other aesthetic improvements.
时间: 2024-09-24 18:13:52

Ceylon 1.1 进度报告,基于 JVM 的编程语言的相关文章

微软发布企业安全进度报告 云应用安全服务即将面世

微软的官员们宣布了一项计划,强化微软对企业安全性的使命.今天,2月25日在RSA大会召开前一周,微软的首席信息安全官Bret Arsenault提供了一份进度报告,说明了和这一计划相关的一些产品和行动的进展情况. 微软将很快推出的新功能 微软云应用安全服务(Microsoft Cloud App Security):是一款新的微软云服务,其是基于微软通过收购Adallom获得的技术,该服务将于2016年4月全面上市.Adallom的技术旨在保护客户存放在第三方软件即服务应用程序中的数据--例如B

基于JVM的语言正在开始流行

这是Reuven Lerner在去年写的一篇博文,文章主要介绍了一些新兴的基于JVM的脚本语言.结合本文 可以对Bruce的博文<C++和JAVA传统中积极的一面>有一个很好的理解.译者认为,语言始终都是一门工 具,软件设计最重要的东西是来自于设计者的创造性,但是随着Java语言的出现,他的半动态的特性, ClassLoader,反射,动态代理,都是提高开发者创造性的前提,正是因为这些特性,才会出现新的的编 程模式和范式--反转控制和依赖注入,面向方面的编程(AOP).试想如果Java不提供C

扩展Axis2框架,支持基于JVM的脚本语言

本文介绍了如何扩展Axis2框架,以支持Jython.JRuby等基于Java虚拟机(JVM)的脚本语言.文章对这一主题进行了高层次概述,包括 Apache Axis2的一些关键概念,以及如何利用Axis2为基于JVM的脚本语言提供扩展.读完此文,开发人员可以扩展Axis2框架,来支持基于JVM的脚本语言.Axis2框架扩展之后,可以轻松做到如下两点: 将脚本开发为Web服务. 用所选的脚本语言编写服务客户端. Apache Axis2是开源的Web服务引擎.它对应用广泛的Apache Axis

groovy 简介(基于JVM的脚本语言)

groovy ,[ˈgru:vi ] ,adj. 绝妙的 流行的;  groovy是一个基于JVM的脚本语言,可以与java很好地结合.混用. 很好的介绍性文章:http://www.ibm.com/developerworks/cn/education/java/j-groovy/j-groovy.html 1.JVM脚本语言三巨头 可参照:http://www.ibm.com/developerworks/cn/java/j-jn1/index.html 它们都是基于JVM的脚本语言.此外还

progress.report-c# 如何等待一个返回值为void的进度报告事件结束?

问题描述 c# 如何等待一个返回值为void的进度报告事件结束? 需求:progress.Report执行进度报告完成后,再执行其余的代码:问题:progress.Report的返回值是void,没法用await,怎么等待其结束? 解决方案 答案出来了: var task = Task<int>.Run(() => { int i = UpdateResult(dictionaryStockReal[stockCode]); return i; }); //报告一次进度后退出if(tas

PHP文件上传进度条基于Session与Javascript实现

下面我们就详细介绍一下 PHP 5.4 的这个 session.upload_progress 新特性. 原理介绍 当浏览器向服务器端上传一个文件时,PHP将会把此次文件上传的详细信息(如上传时间.上传进度等)存储在session当中.然后,随着上传的进行,周期性的更新session中的信息.这样,浏览器端就可以使用Ajax周期性的请求一个服务器端脚本,由该脚本返回session中的进度信息:浏览器端的Javascript即可根据这些信息显示/更新进度条了. 那么,文件上传信息具体是如何存储的?

基于JVM 调优的技巧总结分析_java

这篇是技巧性的文章,如果要找关于GC或者调整内纯的文章,看我其他几篇文章.因为是JVM 调优总结,所以废话少说.从各方面一共收集到以下几个方法:1.升级 JVM 版本.如果能使用64-bit,使用64-bit JVM.    基本上没什么好解释的,很简单将JVM升级到最新的版本.如果你还是使用JDK1.4甚至是更早的JVM,那你首先要做的就是升级.因为JVM从1.4- >1.5->1.6可不是仅仅的版本号升级,或者仅仅往里面加了一堆新的语言特性,这么简单.而是真正在JVM做了重大的改进,每次版

iOS6.0.1完美越狱最新消息 evad3rs进度报告

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   苹果终于发布了 iOS6.1, 那么接下来,期盼已久的iOS6完美越狱也该来了.越狱团队evad3rs的越狱进度究竟如何呢?下面就一起去了解一下.     先 来看下我们的华裔小子Planetbeing是如何说的吧,Planetbeing表示iOS6完美越狱工具将会支持iOS6.0. iOS6.0.1和iOS6.0.2多个版本,同时还支持 刚刚发布iOS6.1.

基于JVM的动态语言Groovy 基础知识汇总

在使用Java的过程中,和C#的语法相比有些还是比较麻烦,比如异常.get set等问题,毕竟Java的发展时间比C#长了很多,很多问题当初设计时没有考虑到,为了向前兼容,不得不保留一定的历史负担(如泛型的处理,java的擦除法实现就是后续的兼容考虑).不过最近在一个项目中使用groovy grails感觉很是方便,特别groovy和java的集成十分的方便. 下面把groovy涉及的一些基础知识整理一下,供使用参考,groovy本身的文档也很全面,但篇幅太长,如下作为一个简明的参考. 官网 h