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.
相关文章
|
7月前
|
Arthas 存储 算法
深入理解JVM,包含字节码文件,内存结构,垃圾回收,类的声明周期,类加载器
JVM全称是Java Virtual Machine-Java虚拟机JVM作用:本质上是一个运行在计算机上的程序,职责是运行Java字节码文件,编译为机器码交由计算机运行类的生命周期概述:类的生命周期描述了一个类加载,使用,卸载的整个过类的生命周期阶段:类的声明周期主要分为五个阶段:加载->连接->初始化->使用->卸载,其中连接中分为三个小阶段验证->准备->解析类加载器的定义:JVM提供类加载器给Java程序去获取类和接口字节码数据类加载器的作用:类加载器接受字节码文件。
706 55
|
2月前
|
存储 缓存 Java
我们来说一说 JVM 的内存模型
我是小假 期待与你的下一次相遇 ~
261 5
|
2月前
|
存储 缓存 算法
深入理解JVM《JVM内存区域详解 - 世界的基石》
Java代码从编译到执行需经javac编译为.class字节码,再由JVM加载运行。JVM内存分为线程私有(程序计数器、虚拟机栈、本地方法栈)和线程共享(堆、方法区)区域,其中堆是GC主战场,方法区在JDK 8+演变为使用本地内存的元空间,直接内存则用于提升NIO性能,但可能引发OOM。
|
8月前
|
Arthas 监控 Java
Arthas memory(查看 JVM 内存信息)
Arthas memory(查看 JVM 内存信息)
694 6
|
缓存 Prometheus 监控
Elasticsearch集群JVM调优设置合适的堆内存大小
Elasticsearch集群JVM调优设置合适的堆内存大小
2116 1
|
11月前
|
存储 设计模式 监控
快速定位并优化CPU 与 JVM 内存性能瓶颈
本文介绍了 Java 应用常见的 CPU & JVM 内存热点原因及优化思路。
1065 166
|
9月前
|
存储 缓存 算法
JVM简介—1.Java内存区域
本文详细介绍了Java虚拟机运行时数据区的各个方面,包括其定义、类型(如程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区和直接内存)及其作用。文中还探讨了各版本内存区域的变化、直接内存的使用、从线程角度分析Java内存区域、堆与栈的区别、对象创建步骤、对象内存布局及访问定位,并通过实例说明了常见内存溢出问题的原因和表现形式。这些内容帮助开发者深入理解Java内存管理机制,优化应用程序性能并解决潜在的内存问题。
421 29
JVM简介—1.Java内存区域
|
9月前
|
缓存 监控 算法
JVM简介—2.垃圾回收器和内存分配策略
本文介绍了Java垃圾回收机制的多个方面,包括垃圾回收概述、对象存活判断、引用类型介绍、垃圾收集算法、垃圾收集器设计、具体垃圾回收器详情、Stop The World现象、内存分配与回收策略、新生代配置演示、内存泄漏和溢出问题以及JDK提供的相关工具。
JVM简介—2.垃圾回收器和内存分配策略
|
9月前
|
存储 设计模式 监控
如何快速定位并优化CPU 与 JVM 内存性能瓶颈?
如何快速定位并优化CPU 与 JVM 内存性能瓶颈?
272 0
如何快速定位并优化CPU 与 JVM 内存性能瓶颈?