ウォッチJavaかC#(.net)のどちらかで、インタプリタを作ろうと思っています。インタプリタ上では、テトリス等のゲームや、見積もりなど簡単なアプリを作れるようにしたいです。どちらで作るのが簡単で、それぞれの言語で作るとどんなメリットがあるでしょうか?(ライブラリなど言語を取り巻く環境、将来性なども考慮してください。有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。20:30:51いろいろ考えてみましたが...大抵の言語より豊富です。Javaの方が上だと思います。Javaの方が枯れている分ポータブルで良さそうです。GUIライブラリでは完全にJavaの勝ちです。C#でもMonoで実装が進んでいますが、JavaはSunがLinuxをサポートしているのも大きいでしょう。独自中間コードを吐くようにして、これを実行する仕様を考えていますが、将来的には、これを、Javaか.netのネイティブなコードに変換して速度を出すことも考えています。VMかECMA-335のバイトコードを吐くコンパイラですが、まあ頑張ってください。23:43:41詳しい解説をありがとうございます!その反論が聞きたくてちょっと意地悪な書き方をしてしまいました。多い、Javaの方が勝っていると思います。素早いフォローも嬉しかったです。ありがとうございました。私はアンチマイクロソフトでも親マイクロソフトでもないので、「.netでなく、javaを選ぶ理由が、非マイクロソフトという理由」ではないのですけど・・・。そこに重きを置かれるとは思いませんでしたが。Javaを選ぶ理由はコンパイラコンパイラの選択肢の広さと情報の流通量です。「なくはない」より「あれでもいいこれでもいい」というのは理由になりませんか?調べたいものが調べやすいというのも開発する上で重要なことです。少なくとも私なら選択肢の多い方を選びます。いろんなライブラリやランタイム環境の種類が豊富で、バージョンが進んでいる、という意味での技術の成熟度はJavaに軍配があがります。選択肢が豊富で、やりやすいやりかたを選択できる、というのは大きなアドバンテージです。C#とJavaがどの程度の寿命を考えたとき、どちらもプログラミングスタイルに違いのない言語ですから、次にドラスティックな変化を起こすような言語が現れるまでは、どちらも生き残るでしょう。すれば、寿命が尽きるタイミングはほぼ同じです。したら、現時点で、成熟度が高いJavaを選択したほうが良いと思います。22:29:21コンパイラコンパイラの存在は大きいですよね確かに、JavaCCなど多くのコンパイラコンパイラの存在は大きいと思います。C#にも、JayのC#版が存在するので、なくはないのですが...。私も、まさかJavaが消えることはないと思います。.netでなく、javaを選ぶ理由が、非マイクロソフトという理由では決定打としては弱い気がしてます。20:30:02Javaです。Javaには、JavaCCなどコンパイラコンパイラと呼ばれる環境があります。昔からあるものなので、それなりにインターネットに情報も存在します。JavaCCのほかにもANTLRやCUPなど他にもいくつか選択肢があります。将来性においても、Javaは非マイクロソフトの代表であることに変わりはないので、十分に寿命はあると思います。ここまで広まればそう簡単に消えてなくなったりはしないと思います。19:41:55実行速度より、利便性を重視したいのですインタプリタ上のインタプリタということで、遅くなるのは仕方ないと思っています。独自中間コードを吐くようにして、これを実行する仕様を考えていますが、将来的には、これを、Javaか.netのネイティブなコードに変換して速度を出すことも考えています。どちらの標準ライブラリも豊富とのことですが、どちらの標準ライブラリも似たり寄ったりなのでしょうか?後発の.netが有利ということでしょうか。19:37:13後発の.netが有利ということでしょうか。解説ありがとうございます。私も、後発の.netが有利かもとは考えていました。仰るとおり、コンパイラコンパイラの処理系も、Java製のものが多く、C#製のものは、あまり見当たらなかったので、さくっと作るなら、Javaが有利かなぁと思っているところです。無い便利な機能があります。バイトコードを動的生成できるのも、処理系実装に有利であると思います。選ぶのも良いかと思います。00:31:26インタプリタ上のインタプリタにならないか?JavaもC♯.NETもインタプリタ上で実行されるものなので実行速度が遅くなると思う。インタプリタと一口に言っても中間コードを実行するものやソースを構文木に変換(インタプリトというよりコンパイルですが)してそれを実行するものがあり簡単にはいえない。どちらの言語もライブラリ、仕様ともにいいものですが通常の手段でネイティブコードを吐けないのが痛いと思います。(Javaはgcjを使えば何とかなるけど)また簡単なアプリを作るとなると言語に高機能なライブラリが必要なのでどちらの標準ライブラリも豊富なのでそれを使えるかもしれません。