4

私は現在、Perl、Python、C#、C、C++、Java、およびその他のいくつかの言語でプログラミングを行っており、個人的なプロジェクトを行う際に主要な言語として使用する新しい言語を探しています。

私の現在の基準は次のとおりです。

  • インタープリター言語として実行できます (つまり、コンパイルを待たずに実行できます)。
  • ネイティブ コードにコンパイルできます。
  • 強く型付けされている (オプションであっても);
  • マクロ/テンプレート/コードモーフィング/呼び出したいwtfをサポートします。
  • そのための適切な数のライブラリがあるか、簡単にアクセスできます。

アイデア?提案?

4

3 に答える 3

5

Haskellがあなたの基準に合っていることをお勧めします。

  • 通訳言語として実行できますか?はい、GHCI経由です。
  • ネイティブコードにコンパイルできますか?はい。
  • 強くタイプされていますか?まさにその通り。Agdaのようないくつかの定理証明者を除いて、おそらく今日最も強く型付けされた言語ですら。
  • マクロ/テンプレート/モーフィングをサポートしますか?テンプレートhaskellを使用する場合。ただし、これは言語のオプションの拡張であるため、ほとんどのライブラリはマクロを使用しません。私は自分でテンプレートhaskellを使ったことがないので、それが良いかどうかについてコメントすることはできません。
  • まともなライブラリサポートはありますか?標準ライブラリは悪くありません。HaskellライブラリのオープンリポジトリであるHackageもCPANのスタイルで少しあります。

さらに、あなたはすでに多くの命令型/オブジェクト指向言語を知っているようです。あなたがそれらの言語の別のものを学ぶならば、私見。それはおそらく、あなたがすでにどこかで見た機能のわずかに異なる順列になるでしょう。関数型プログラミングのような別のプログラミングパラダイムをツールボックスに追加すると、おそらくより良い学習体験になるでしょう。それが利点かどうかは、新しいことを学びたいのか、すぐに生産的になりたいのかによって異なります。

于 2010-12-20T18:35:02.320 に答える
3

Common Lisp の適合性: オプションのタイピングがあり、効率的なネイティブ コンパイルが利用可能であり、強力な REPL によりスクリプト作成に最適であり、強力なマクロ メタプログラミングがあります。

OCaml も適合し、CamlP4 はメタプログラミング用です。

于 2010-12-20T17:29:59.550 に答える
-1

スカラ?スクリプトは最初に (透過的に) コンパイルされますが、実行されます。コードのモーフィングなどの意味はわかりませんが、DSL にはかなり適しています。それは他のすべての要件を満たします - Java と同じくらいコンパイルされ、強く型付けされ、妥当な数の独自のライブラリとすべての Java があります。私はまだ初心者ですが、今のところ気に入っています。

于 2010-12-20T17:28:32.340 に答える