Coteline

基于 JVM 的编程语言
授权协议 未知
开发语言 Java
所属分类 程序开发、 脚本编程语言
软件类型 开源软件
地区 不详
投 递 者 韩楷
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Coteline 是一个全新的基于 JVM 的编程语言。Coteline 是 Ceylon 的超集,并保持对 Ceylon 的向后兼容。

比 Ceylon 改进的地方包括:

  • "public as a service", because shared is not a good keyword.

  • implements, because it is fancier than satisfies and it          closes the gap for existing J2EE 1.3 developers.

  • Call an object a singleton.

  • Use const in lieu of value.

  • Write def as a Hipster-compliant variant of function.

  • Ink Unit instead of void in your fine-crafted Coteline           definitions.

  • contract and trait carry more meaning than          interface (and who cares about the actual formal semantics of these?).

  • We think pray is a better replacement for assert, because          this is what you actually do when you write assertions.

  • dynamic blocks are better named as unsafe blocks, because they          escape the wonderland of static type checks.

  • Parametric types with in / out for contravariance and covariance are hard          to manipulate. This is also way too reminiscent of the C# world. Coteline          provides salvation with covar and contravar.

  • Last but not least, you can also write foreach loops in Coteline.

示例代码:

"The classic Hello World program"
public Unit hello(String name = "World") {
    const str = "Hello, `` name ``!";
    def work() => print(str);
    work();
    pray(1 == 1);
    plop.plop();
    foreach (i in {1, 2, 3}) {
        print(i);
    }
}

singleton plop {
    public Unit plop() {
        print("Oh Plop!");
    }
}

"Run the module `better.ceylon.is.coteline`."
public Unit run(){
    if (nonempty args=process.arguments) {
        foreach (arg in args) {
            hello(arg);
        }
    }
    else {
        hello();
    }
}
 相关资料
  • 上周我更新了Kotlin 1.5,昨天看到谷歌打算让Jetpack成为设计UI的首选选项后,我想做一些测试。 问题是将我的项目更新为静态编程语言1.5,当尝试构建项目时,我得到以下错误: 静态编程语言1.5与Jetpack Compose不兼容吗?在谷歌搜索问题后,我找到了版本,其中提到了Jetpack Compose,但不是以“不兼容”的方式。 你对此有任何答案吗?我应该使用吗?在这种情况下,我

  • 本文向大家介绍基于编译虚拟机jvm—openjdk的编译详解,包括了基于编译虚拟机jvm—openjdk的编译详解的使用技巧和注意事项,需要的朋友参考一下 java只所以被推广,实际上很大原因是因为本身是跨平台的,很大作用是因为虚拟机的关系。 一般情况下开发人员不需要关注虚拟机内部实现就可以日常开发了,但是有时候涉及到性能的时候就需要了解虚拟机的实现机制了。 那么今天写的内容更多的是关于编译一套自

  • 所有能编译出java .class文件的JVM脚本语言,都能在hi-nginx-java体系中工作。 例如groovy : package groovy import hi.request import hi.response import hi.route import java.util.regex.Matcher class test implements hi.route.run

  • C++11的伟大标志之一是将并发整合到语言和库中。熟悉其他线程API(比如pthreads或者Windows threads)的开发者有时可能会对C++提供的斯巴达式(译者注:应该是简陋和严谨的意思)功能集感到惊讶,这是因为C++对于并发的大量支持是在编译器的约束层面。由此产生的语言保证意味着在C++的历史中,开发者首次通过标准库可以写出跨平台的多线程程序。这位构建表达库奠定了坚实的基础,并发标准

  • Block 基础 Block 语法 Block 可以认为是一种匿名函数,使用如下语法声明一个 Block 类型: return_type (^block_name)(parameters) 例如: double (^multiplyTwoValues)(double, double); Block 字面值的写法如下: ^ (double firstValue, double secondValue

  • 我在Kubernetes集群上运行了一个openjdk:8映像。我添加了内存HPA(水平Pod自动缩放),它可以很好地扩展,但由于JVM不会将内存从堆释放回操作系统,所以Pod不会缩小。以下是hpa。亚马尔 解决这个问题的一种方法是使用正确的GC并使其释放内存,但由于JVM被设计为不经常从堆中释放内存,因此这样做不是一个好主意。库伯内特斯有没有办法解决这个问题?就像不检查操作系统的内存使用情况一样