2012-06-18 4 views
5

私は、より強力な型のシステムと構文を提供しようとするScalaに代わるものがあるかどうか疑問に思いました。私はHaskellのような機能的な代替案を知っていますが、実際には、Scalaが仮想クラス、完全な多重継承、より柔軟なコンストラクタ構文、静的なものなど欠けているような場所では、より強力なパス依存、MyTypes、友人修飾子、ファーストクラスのインポート、またはおそらくいくつかの難解なタイピングツール、私は考えていない/聞いたことがあります。Scalaの強力なスタティックオブジェクト指向のマルチパラダイム

おおよそ、スタティックは近年ファッショナブルではないようです。しかし、それは、現代のコンピュータの力が、過去数十年間にコンパイラ作家の夢を超えて静的コンパイラの作成を可能にすることを私に訴えている。

私は何も出くわしていないと推測していますが、すぐにいつでも生産コードをノックアウトしたいという選択肢はありません。しかし、彼らがまだ非常に学術的な言語であるとしても、私はまだそれらに目を留め、それらと一緒に遊んでみたいと思います。私は特にScalaの左フィールドの代替と呼ばれるものを探しています。セイロンやコトリンは、権力よりも単純さを重視しているわけではありません。エッフェル塔は今のところどこにも出ていないようだ。私はgBetaとCeasarに出くわしましたが、Scalaに負けてしまう部分があれば、うまくいきませんでした。他の可能性はありますか?

+0

私は誰にも負けないScalaの型システムをと思うが、しようとする代替案の利益のために、[Ioke]を見てください)(のhttp:/ /ioke.org/)。 – opyate

+0

@opateああ、そのダイナミックです。 –

+2

おっと、私は「マルチパラダイム」を読んで、あなたにIoke :) – opyate

答えて

4

一言で言えば、 Scalaの型システムに近いところには、普及しているOOの代替手段はありません。あなたが望む機能があれば、私はあなたがC++、D、およびGoを見てみることをお勧めします。

あなたが冒険的な気持ちで、OOのアイデアに完全にはまっていない場合は、Typed Racketを見てください。 Coq、Idris、Agdaは、かなり興味をそそる種類のおいしさを提供しています。あるいは、Haskell、F#、OCamlなどの人気の高いFP言語に目を向けるだけです。

OO言語を使用する特別な理由はありますか? Scalaは、クールタイプのシステムが必要な場合には、今のところScalaはおそらくそれと同じくらい良いでしょう。

+0

すべての私の時間は、私は、多重継承と夢見パス依存型を望んでいました。自己タイプの私のアプリケーションをパージし、クラシックMIのダイヤモンドを使用し始めたことはかなり良いようです。私が一番好きなのだ物事はあなたがタイプコンストラクタと簡単なランタイムのコンパイルを閉じずに、一般的なクラスを拡張する形で、パスの外にパス依存型を拡張するクラスを作成することができることです。 –

+0

私は現在Scalaに焦点を当てています。オブジェクト指向プログラミングパラダイムから来て、機能プログラミングパラダイムを掴みようとしています。私の質問は、http://stackoverflow.com/questions/11162743/haskell-scala-interoperabilityにお答えいただき、ありがとうございます。私はOOの知識を残す準備ができています。大規模なマルチロケーション分散アプリケーションのように、ScalaをERP(Enterprise Resource Planning)のHaskellに完全に置き換えることはできますか? – Optimight

+0

@オプティマイト確実。 [Industrial Haskell Group](http://industry.haskell.org/)、[Haskell in industry](http://www.haskell.org/haskellwiki/Haskell_in_industry)の例を参照してください。詳細については、[#haskell irc channel](http://www.haskell.org/haskellwiki/IRC_channel)の人々に話してください。 –

1

D(具体的には、Dバージョン2、別名D2)は、あなたが探している言語とほぼ同じです。

Visual D(Visual C++のプラグイン)、Mono-D(MonoDevelopのプラグイン)、DDT(Eclipseのプラグイン)のようなIDE /プラグインを紹介するビデオがあります。

dlang.orgのメインのサイトには、GUIの場合など、完全なライブラリリファレンス、言語の構文、チュートリアル、初心者/先進的な議論のためのフォーラム、

があり、GtkDを見てください。私はあなたがこれのためにDMDコンパイラを使う必要があると信じています。

dsource.orgとgithubには他にも多くのサードパーティライブラリ/コードがありますが、コアライブラリにはjsonパーサ、XMLパーサーなどのすべての基本が含まれており、コア言語には多くのことがありますハッシュマップ、動的配列、契約による設計、静的に評価されたテンプレート/式などのビルトインが必要です。

D2では、CおよびC++に直接リンクしてPython/LUAコードなどにバインドすることができます。それはシステム言語(あなたが望むなら、それを使ってOSを書くことができる)として機能するだけでなく、並行して安全なコードのようなものをサポートして、モダンで高級でエレガントで高速なアプリケーション言語としても機能します。

すべての点で、非常に印象的です。悲しいそれはScalaは比較することによって、低速メモリ豚があることを考えると、より人気がないということ。

関連する問題