ネット上の最近の強力なプログラミング言語を探して、Ceylonに出会いました。ceylon-lang.orgに立ち寄ったところ、次のように書かれています。
CeylonはJavaに深く影響を受けています。ご覧のとおり、私たちはJavaのファンですが、その限界を裏返しに知っています。CeylonはJavaの最高の部分を保持しますが、私たちの経験では面倒で退屈でイライラする、理解するのが難しい、またはバグを起こしやすいものを改善します。
Javaに対するCeylonの利点は何ですか?
ネット上の最近の強力なプログラミング言語を探して、Ceylonに出会いました。ceylon-lang.orgに立ち寄ったところ、次のように書かれています。
CeylonはJavaに深く影響を受けています。ご覧のとおり、私たちはJavaのファンですが、その限界を裏返しに知っています。CeylonはJavaの最高の部分を保持しますが、私たちの経験では面倒で退屈でイライラする、理解するのが難しい、またはバグを起こしやすいものを改善します。
Javaに対するCeylonの利点は何ですか?
回答:
Ceylonは楽しい言語のように思えますが、Javaに比べて「利点」が比較的少ないと主張します。
私はそれがより良い構文といくつかの「近代的な」言語機能を持っていると思います-これは主観的であり、プログラミング言語を選択する際の比較的小さな要因であるべきだと主張します。
深刻なプロジェクトのために言語/プラットフォームを選択する際のさらに重要な要素:
全体として、私は人々にCeylonを実験し、学習の観点からCeylonを楽しんでもらうことを確かに奨励します。
しかし、私は現在、多くの人々がそれに切り替えたい(またはClojure、Scala、JRuby、Groovyのような他のJVM言語よりも先に選択したい)魅力的な利点を見ていません。
javaにはない素晴らしい機能がいくつかあります:
私が気づいた限りでは、Ceylonと他の「趣味で作成された」JVM言語の最大の違いの1つは、Red Hat / JBossによってサポートされることです。したがって、JBoss Tools / Developer Studioに統合された非常に優れたツールセット、JBoss AS / Gatein Portal、およびすべてのMidleware / JEE 6 / BRMSとの良好な相互作用が得られます。したがって、いくつかのpoingで、JSFで本格的なCeylonアプリケーションを開発し、PHPの「変更および更新サイクル」を含む非常に生産的なポートレットを開発するかもしれません。
ほとんどのJVMベースの言語として、巨大なコードベースを必要とするプロジェクトのJavaの代替としては見ていませんが、特に中規模のプロジェクト、特に非常にモジュール化されたプロジェクト(CRUD集中型、ポートレットなど) )。特にJBossファンからは、ウェブの世界で非常に好評になると思います。
セイロンは多くの点で興味深いと思います。また、Javaの問題を背後に残したい場合に、何らかの方法でJavaから離れる必要があるという点で正しいかもしれません。Ceylonにはかなりの数の言語機能があるようで、これによりScalaのようにコンパイラが遅くなるか、さらに悪いことにコードサイズに応じてビルド時間が短縮されないことを願っています(Scalaの2年間の経験フィードバックを参照)。Ceylon開発チームのペースは非常に印象的です。
Kotlinはまだ0.6であり、昨年の開発速度から判断すると、1.0から約1年離れています。Ceylonのような多くの言語機能はありませんが(これらの重要な機能は、特性や拡張メソッドのようにJavaが欠落しています)、問題のないある種のScalaのようです。スケーラブルなビルド時間は問題にならないでしょう。しかし、KotlinはGroovyのような優れたJavaにしかなれません。XML依存性、定型コード、バイトコード操作などを使用して、Javaコモディティプログラミングから抜け出す方法を提供することはできません。JavaやScalaのようなものです。KotlinまたはCeylonが違いを生むことができるかどうかは、まだわかりません。どちらの試みも努力する価値があると思います。
Ceylonは、すべての大きなJVM言語(つまり、Groovyを除く上記のすべての言語)と同様に、開発中に仕様を作成しています...
セイロン(http://ceylon-lang.org/documentation/1.0/spec)
Clojure(http://clojure.org/Reference)
Scala(www.scala-lang.org/docu/files/ScalaReference.pdf)
Java(http://docs.oracle.com/javase/specs/jls/se7/html/index.html)
JRubyは、支払いが必要なRubyの仕様に従います(http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=59579)。