2009-03-28 17 views
5

MonoやJava以外の妥当なパフォーマンスを備えた、優れたポータブルオープンソース高レベル静的型オブジェクト指向ガベージコレクション安全な言語/ランタイムはありますか? Monoは素晴らしいですが、それはMicrosoftの技術であり、私はそれを使用することを恐れています(この恐怖がいかに合理的であるかはわかりません)。 Javaの問題は、単純すぎる(符号なしのデータ型も構造体もない)ということです。オープンソース管理プログラミング言語

+0

"高レベル" ... "符号なしデータ型なし、構造体なし"。 ... –

+0

Javaに対する議論は、今はかなり弱く見える - 符号なしのデータ型、構造体? –

+0

構造体の使用は意味があります。メッシュ内の頂点を宣言するために、Javaのベクトルオブジェクトを使用することは大胆です。すべてのオブジェクトに数バイトのヘッダーがあることを考慮してください。構造体により、はるかにコンパクトなストレージが可能になります。 –

答えて

2

Valaは、C#の構文に基づいていますが、 Cコンパイラ(Eiffelに似ています)と、軽量で、自己ホスト型のランタイムです。しかし、ガーベスのコレクションが欠けています。

+0

私が見ることができるところから、それはVB6のようなものです - 参照カウントを使用します。これは実際には多くのアプリケーションでGCよりも悪くなります。ああ、人々に難しい方法を教えさせてください! :) –

+0

私にそれを見せてくれてありがとう。 GCはありませんが、GTK開発のための完璧なツールのようです。醜いGObjectのCコード! – Zifre

+1

参照カウントはVisual Basic 6よりもObjective-Cによく似ていますが、これは他の理由で遅かったです。 –

9

Monoはマイクロソフトの技術ではありません。 .NETはありますが、Monoはそうではありません - Monoは、ECMA-334およびECMA-335の国際標準のオープンソース実装です。はい、マイクロソフトからのものですが、Mono自体はではなく、マイクロソフトの技術です。

モノはもちろん言語ではありません - C#は言語です。しかし、の言語は、実際にはオープンソースではありません。

あなたはおそらくC#の不合理な恐怖を持っているように聞こえますし、同様にJavaもそうです。確かに私はJavaで見たいものがあります(そして私はC#を非常に好んでいます)が、非常に重要なアプリケーションを書くことはまだ完全に可能です。

+1

Monoの問題は、多くの人がMicrosoftを信頼していないことです(過去の行動に基づいて)、Monoを壊すようなことをしないようにします。 – TofuBeer

+0

多くのものが失われるため、モノが.netフレームワークのコピーになるとは思わないはずです。 Wineが100%Windowsをエミュレートするとは思っていないのと同じです。 – Roalt

+0

確かに。そして、.NETにはないモノもあります。 –

0

は、PythonとRuby

+0

"静的型付け"基準で失敗します。 –

+0

また、多くの問題で「合理的なパフォーマンス」に失敗します。 –

+1

C#とJavaはまた、多くの問題に対して「妥当なパフォーマンス」で失敗する可能性があります。どのようなパフォーマンスが合理的かは、まったくコンテキストに依存します。それにもかかわらず、タイピングに失敗するので-1です。 –

2

Eiffelすべての要件CLR上で

2

Booありを果たし、常にあります。

ブーは が静的​​のpython触発構文と言語およびコンパイラ 拡張性に 特別中心とした共通言語基盤 するためのプログラミング言語 型付け

Boo Manifestoがある指向新しいオブジェクトであります良い出発点。

2

Javaでは符号なしデータ型を持たないことはまれに問題とみなされます。

しかし、それはガベージコレクションを導入する言語であり、おそらく最も強力な言語でした。

パフォーマンスを確認するには、Peter Norvig(Googleのリサーチディレクター)がcomparisonです。 Lispが一部の地域ではC++、さらにはJavaでも驚くかもしれません。

alt text

しかしLispは、メインストリームの言語ではないようだ - 私はwonderingだ理由ですか? これは最小限の一種なので、現在の言語や将来の言語では、おそらく威圧を受けることはできません。

(私はC#やJavaはとても人気が作るものだけでなく、言語のライブラリをされていないと思います。)garbage collector

+0

誰も維持したくないスープのように読んでいるので? –

+0

Lispのパワーは、あらかじめ定義された構文と構造の欠如に由来しますが、その力を与えるものと同じものは、読みにくく、学習が難しいものです。 – Grumbel

2

C++を? Javaに問題はありますが、それほどショーストッパーではありませんが、なぜそれが必要なのかを詳細に説明できない限り、それらの引数は通常はあまりよくありませんが、時にはそうです。

0

まず、MonoはMicrosoftの技術ではありません。 2番目には、.Net/MonoとJavaの2つの重大な仮想マシン(VM)しかありません。しかし、静的型言語の要件を別にすれば、新しくParrot Virtual MachineWikipedia article about Parrot)に注目することができます。

そして、もちろん、ルビー、PythonのErlangのは、などもクロスプラットフォームされているVM

1

がどのようにJavaは単純すぎると言うことができる(単一動的言語のため)?

[OK]を、Javaの開発のための理由の一つは、仕様の900 +ページを持っているC++よりも、それはあまり複雑にすることです。しかし、それはC言語よりはるかに複雑です。

約10年前に私はLes Hattonでコースに参加し、Cプログラムを安全に使用するための研究を行いました。彼はほとんど誰も140ページのC標準を覚えることができないと主張したので、C++のようなものを理解することは非常に難しいでしょう。もちろん

、あなたの目標は、安全性を必要としないかもしれないが、あなたがしなければ、それは覚えておくべき何か。

0

Dプログラミング言語を調べることができます。

しかし、正直に言うと?私はモノ/ C#を離れることをお勧めします。どうして?実用的なpurosesは、JavaやC++を取るには多くの理由...また

、。

JavaはC#でも、それは少し違うと同じくらい良いです。もしもGCの問題の99%が参照カウントを使って解決されているので、C++も同様に優れています。

+0

-1モノ/ Cから離れない理由を述べていないため –

+0

FOSS、ベンダーロックなど多くの議論には参加したくありませんでした。おそらく最も重要なことは、機能のパフォーマンスや他の多くの点で、モノネットが常に.Netの背後にあるという事実です。 exmple:http://art-blog.no-ip.info/cppcms/blog/post/27 FOSSはそこに入るべきではない – Artyom

0

あなたが仕事に適しているためにこれを学ぶには、.NET(Microsoftプラットフォームを使いたい場合)またはJava(あなたがプラットフォームの独立性)、多くのコーディングを行います。どちらも非常に大きなプラットフォームです!他

ものは、ニッチな言語は非常に素晴らしいことが、どこでもあなたの仕事を上陸しそうにないことができる唯一のいくつかの場所ではなく、それらのいくつかの場所で使用されているだろう。

+0

私は本当に就職を心配していません、私はちょうど私の暇な時間に使用するための良い言語を探しています。 – Zifre

1

scalaは、Javaよりも少ない冗長で、Javaが実行場所を問わず、それがJavaのバイトコードにコンパイルすると、それは、実行されます。 twitterは、コアインフラストラクチャのいくつかをscalaで再実装しました。

関連する問題