Interactive Data Language (IDL) と呼ばれる言語を使用している人はいますか? 科学者に人気があります。プロプライエタリであり (それを実行するすべての端末で高価なライセンスを購入する必要があります)、サポートが最小限であるため (スタック上で言語である IDL を検索してみてください)、これは貧弱な言語だと思います。私は同僚に、それを使用するのをやめて C/C++/Python/Fortran/Java/Ruby を学ぶよう説得しようとしています。IDL について意見を述べるほど、IDL について知っている、または気にかけている人はいますか? どう思いますか?今すぐ時間を無駄にするのをやめるように同僚に伝えるべきですか? どうすれば彼らを説得できますか?
編集: 私が IDL を知らない、または使用していないという印象を人々は受けています。また、IDL のサポートは最小限であると言いましたが、これはある意味では正しいので、科学ライブラリが実際に大きいことを明確にする必要があります。私はいつも IDL を使用していますが、これがまさに問題です。同僚が IDL を使用しているため、私は IDL のみを使用しています。IDL が使用するファイル形式 .sav があり、IDL でのみ開くことができます。そのため、IDL を使用してこのデータを処理し、データを同僚に転送する必要がありますが、別の言語を使用した方が効率的であることはわかっています。これは、電子メールの添付ファイルで Microsoft Word ファイルを送信するようなものです。それがどれほど間違っているかを理解していない場合は、コードが不十分な単語を書きすぎて、Microsoft Word を購入したことになります。
編集: IDL Python の代替として人気があります。以下は、AstroBetterによる IDL の長所(および短所) のリストです。
IDL の長所
- 成熟した多くの数値および天文ライブラリが利用可能
- 幅広い天文ユーザーベース
- 言語自体とよく統合された数値的側面
- 経験豊富なローカルユーザーが多い
- 小さな配列の方が高速
- より簡単なインストール
- 優れた統一されたドキュメント
- 標準 GUI 実行/デバッグ ツール (IDLDE)
- 単一のウィジェット システム (どれを選択または学習するかについて心配する必要はありません)
- 保存/復元機能
- より便利なフラグとしてのキーワード引数の使用
IDL の短所
- 適用範囲が狭く、一般的なプログラミングにはあまり適していません
- 大規模な配列では遅い
- 配列機能はそれほど強力ではありません
- テーブルサポート不良
- C または Fortran を使用して拡張する機能が制限されているため、そのような拡張機能の配布とサポートが困難
- 費用がかかり、ライセンスを持っていない、またはライセンスを購入する余裕がない他のユーザーとの共同作業に問題が生じることがあります。
- クローズド ソース (RSI のみがバグを修正できます)
- IRAFタスクと統合するのは非常に厄介です
- メモリ管理が厄介
- 単一のウィジェット システム (別のフレームワーク内で作業している場合は役に立たない)
- プロット:
- 記号と数学テキストの厄介なサポート
- 多くのフォント システム、移植性の問題 (v5.1 では多少軽減されます)
- 柔軟性や拡張性がない
- 本質的にインタラクティブではないプロット ウィンドウ (例: パンとズーム)
Python の長所
- 非常に汎用的で強力なプログラミング言語でありながら、習得が容易です。強力だがオプションのオブジェクト指向プログラミングのサポート
- 非常に大規模なユーザーと開発者のコミュニティ、非常に広範で幅広いライブラリ ベース
- C、C++、または Fortran で非常に拡張可能で、移植可能な配布メカニズムが利用可能
- 無料; 非制限的なライセンス; オープンソース
- 天文学の標準スクリプト言語になる
- IRAFタスクで使いやすい
- STScI 適用の取り組みの基礎
- より一般的なアレイ機能
- 大規模な配列の高速化、メモリ マッピングのサポートの向上
- 多くの書籍やオンライン ドキュメント リソースが利用可能 (言語とそのライブラリ用)
- テーブル構造のサポートの向上
- プロット
- フレームワーク (matplotlib) より拡張可能で一般的
- フォントのサポートと移植性の向上 (それを行う方法も 1 つだけ)
- 多くのウィンドウ フレームワーク (GTK、Tk、WX、Qt など) で使用可能
- 使用するフレームワークに依存しない標準のプロット機能
- プロットは他の GUI に埋め込むことができます
- より強力な画像処理 (複数の同時 LUT、オプションのリサンプリング/再スケーリング、アルファ ブレンディングなど)
- 多くのウィジェット システムのサポート
- Python 向けに開発されている機能に対する地域の強い影響力
Pythonの短所
- 個別にインストールするその他のアイテム
- 天文学界ではあまり受け入れられていません (ただし、サポートは明らかに成長しています)
- 成熟していない科学ライブラリ:
- ドキュメントが完全ではなく、統一されていない
- 天文学的なライブラリやユーティリティについてはそれほど深くはありません
- すべての IDL 数値ライブラリ関数が Python に対応する機能を持っているわけではありません
- いくつかの数値構造は言語とあまり一致していません (または IDL よりも少し便利ではありません)。
- 配列のインデックス付け規則「後方」</li>
- 小さいアレイのパフォーマンスが遅い
- 標準の GUI 実行 / デバッグ ツールなし
- 多くのウィジェット システムのサポート (どれを選択するかについての不安)
- IDL の SAVE/RESTORE に相当する機能が現在欠けている
- matplotlib には、すべての IDL 2-D プロット機能 (表面プロットなど) に相当するものはまだありません。
- 便利ではないフラグとして使用されるキーワード引数の使用
- プロット:
- 比較的未熟で、まだ多くの開発が進行中
- 一部のプロット タイプがありません (例: surface)
- 3-d 機能には VTK が必要です (ただし、matplotlib にはいくつかの基本的な 3-d 機能があります)