14

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 機能があります)
4

13 に答える 13

11

ここにはIDLのファンボーイがたくさんいます!私は天文学者でもあり、IDL と Python を幅広く使用してきました。私が言えることは、IDL が今日まで生き残っているのは、新しく優れたプログラミング言語を学ぶことができない、または学びたくない仲間の天文学者の怠惰のおかげです。私の同僚のほとんどは、Fortran や IDL 以外は何も使用していません。彼らにとっては、全世界で IDL しかありません。ところで、若い天文学の学生の多くも IDL に夢中で、Fortran をチェックすることさえしたくありません。あるいは、神が Python や C/C++ を禁じています。これらはプログラマーや数学者向けの言語であり、天文学者向けではありません。

ライセンス料について。いくつの IDL バージョンがあり、あなたの大学はいくつ購入しましたか? 多分多いと思います...

はい、新しい IDL 8.x バージョンを購入してください。新しいプロット パッケージを使用すると、生成後にプロットの一部を変更できると聞きました。うわー!それはとてもクールです!

ps IDL には、Python でより優れたクリーンな方法で実行できないものはありません。その中の科学ツールのほとんどは広範で非常に安定しています。matplotlib であらゆる種類のプロットをプロットすることに問題はありませんでした。その GUI ツールは優れており、直感的であり、安っぽい IDL の「ウィジェット」と同じです。

これは私の古い大学での状況と非常によく似ています。かつての教授たちは、プログラミングで新しいことを学ぶことを拒否したため、時間に困惑していました。彼らは競争力を失い、重要な仕事をやめました。

于 2011-10-03T19:05:51.810 に答える
6

私はシンシナティの小児病院のfMRI研究者であり、ここでの放射線研究者は何年もの間IDLを使用して画像処理パッケージ(CCHIPSと呼ばれる)を開発してきました。それは非常によく開発されたパッケージであり、何年にもわたってその有用性を拡大しているかなりの数の人々がいました。私はかなりハードコアなMATLABユーザーであるため、fMRI画像処理用のSPMのようなパッケージに傾倒する傾向がありますが、それでもCCHIPSを使用し、いくつかのIDLスクリプトを頻繁に作成/編集することになります。私にとってはMATLABほど「快適」ではありませんが(結局のところ、お気に入りの「ブランキー」はありません!)、習得はかなり簡単です。

私のポイントはこれだと思います...プログラミングリソースがうまく機能し、十分に確立されており、多くの人によく使用されている場合、そして(最も重要なことですが)組織内にはリソースの維持/デバッグ/変更/拡張をいとわない人々がまだいます、そうすれば、何か新しいものに変更することはすぐに行われなければならないという警戒心を抱く必要はありません。あなたの機関にこれ以上リソースを維持する意思のある人がまったくいない場合、それは緊急の懸念の原因となる可能性があります。そうでなければ、私はあなたが嫌い​​なものにもう少し慣れてから、あなたが感じるものを紹介するために穏やかな圧力をかけ、変更の明確な理由でそれをバックアップすることをお勧めします。

于 2009-01-09T18:24:35.710 に答える
4

私は気候科学者で、毎日 IDL を使用しています。愛憎の関係です。しかし、私はここで IDL の弁護に行きます。なぜなら、あなたが一緒に働いている科学者が切り替えを行う正当な理由を明確に述べていないと思うからです。

そのリストで IDL に代わる唯一の実行可能な代替手段は、科学ライブラリの完全なセットと組み合わせた Python です。それでも、多くのことは、IDL よりも Python の方が難しく、または冗長です。C や Fortran などの言語は、データセットの分析や図の作成に関するツールを作成するにはレベルが低すぎます。また、インタラクティブなシェルもありません。

ほとんどの科学者は疑問に対する答えを得ることに関心があり、IDL、Matlab、NCL などのツールは、答えをより迅速に得るのに役立つように構築されています。

于 2009-11-09T04:57:16.310 に答える
3

敵を倒すには、習得する必要がありますが、習得する必要はありません。

あなたの好きな言語を取り上げて、それを IDL と比較対照します。IDLにはどのような利点がありますか? どんなデメリット?同僚に IDL で書かれたお気に入りのコードを見せてもらい、お気に入りのコード スニペットと比較してもらいます。すべてが悪いわけではないかもしれません。結局、人々は大金を払い、それを使用しています。

お気に入りのものを置き換えようとすることは、友人を説得したり、議論に勝つための良い方法ではないかもしれません. IDL にはわずかな利点しかない、またはまったく利点がないと結論付ける場合は、新しい言語 (Ruby など) から IDL へのゲートウェイを構築して、人々がいずれかを組み合わせて使用​​できるようにしてください。IDL に非常に満足し、「どうもありがとう」という固定化された文化を取り除こうとしているのかもしれません。あなたはプラスの影響を与えたでしょう。

いずれにせよ、私はパラダイムシフトのファンではありません.1つのツールに投資した時間とお金を別のツールのイデオロギー的利益のために失うことは、悪いビジネス上の決定です. ただし、段階的なアプローチが重要ですが、古い専有技術は、必要に応じて段階的に廃止する必要があります。

于 2008-11-04T04:27:03.850 に答える
3

費用の短所が主な関心事であり、派手なパッケージではなく、IDL 言語インタープリター自体のみが必要な場合は、IDL の無料のクローンである Fawlty Language に満足できます。

(リンクは現在死んでいます!) http://fl.net23.net/

私は実際にIDLの代わりにこれを使って公開された実際の作業を上司に言わずにテストとして行い、成功しましたが、その後は主に非GUIプログラムを実行し、インタラクティブなコマンドライン作業を行います. 前回確認したとき、GUI ウィジェットは完全ではありませんでした。しかし、Fawlty は、単純なプログラミングという点で GDL よりもはるかに優れていました。

于 2010-05-23T05:14:20.547 に答える
3

博士号を取得する 天文学の学生 約 1 年前に IDL を使い始めました。また、私はこの言語に完全に納得しているわけではなく、プロプライエタリであることにかなり悩まされています (ただし、オープンソースのバリアント GDL: http://gnudatalanguage.sourceforge.net/を確認してください)。それにもかかわらず、それは非常に強力な言語であり、科学者がよく使用する多くのツールと機能が組み込まれており、たとえば、箱から出してすぐにあらゆる種類の適合を行うことができ、すぐに使用できる多数のグラフィカルなプロット ツールがあります。また、IDL Astronomy User's Library ( http://idlastro.gsfc.nasa.gov/)。したがって、最初はこれらすべてのツールをオープン言語に実装したほうがよかったかもしれませんが、残念ながら、多くの人が使用し、慣れてしまった現在、後戻りはできません。

于 2008-11-05T10:21:58.470 に答える
2

私は天文学者で、長年 IDL を使用しています。これには非常に優れた点がいくつかあります。たとえば、文字列配列を含む配列の処理などです。天文学関連のルーチンもかなり利用できます。一方、言語としてはpythonの方が好きです。コストは IDL ライセンスの問題です。シングル ユーザーでも安くはありません。他にも不満点はあります。IDL がデフォルトで作成する PostScript プロットはあまり良くありません。毎回太い線を指定するのが面倒だし、フォントがちょっと見苦しい。私は matplotlib python モジュールの使用を開始しましたが、推奨することがたくさんあります。たとえば、軸のタイトルを変更するためにプロットを作り直す必要はありません。matplotlib 用に Python で記述された便利な IDL 天文学ライブラリ ルーチンがすべてあればいいのにと思います。

于 2010-06-11T20:28:47.203 に答える
1

IDLを学び始めたときも同じような考えを持っていましたが、まだそのファンではありませんが、SolarSoft(太陽物理学用のソフトウェアディストリビューションシステム...およびほとんどのソフトウェアはIDLにあります)。

IDLは、大きなデータキューブやデジタル画像の処理に優れており、Fortranを知っていればかなり簡単に習得できます。(ほとんどの年配の科学者が行っていることであり、私はCompEではない工学部の学生として大学に進学しなければなりませんでした)

問題は、IDLにはたくさんのコードがあるということです。すべてを他の言語に変換し、必要なテストを行うためのコストは、天文学的なものです。私の上司の見積もりでは、それは十数年かかるでしょう、そして私たちはIDL、どんな新しい言語、そして実際の科学を理解している人々を必要とします。言語の)。...そして、すべての科学者を再訓練することを検討する必要があります。現在の資金調達レベルでは、それは起こりません。

そうは言っても、私は彼らの正規表現エンジンがPCREまたは少なくともサポートされているゼロ幅アサーションを使用することを望んでいます。最初にファイルに書き込むことなく文字列をXMLパーサーに渡すことができるように、彼らはついにそれを実現しましたが、私はまだ実際のSOAPサポートを待っており、ハックの試みではありません。ゼロ要素配列がない(配列へのポインターを使用するので、nullポインターを残すことができる)、名前空間(オブジェクトで偽造する)、XPathサポートの欠如(次の場合に奇妙な問題が発生する)などの制限を回避する必要があります。 DOMツリーを歩いた後、ツリー内の要素が2倍になるたびにクリーンアップ時間が4倍になります...XMLではなくtaxdelimとして大きなレコードセットを返す必要がありましたが、VOTableの実装に同じ問題があるかどうかをテストしたいと考えています)

現時点では、IDLの使用をやめることを提案しているわけではありませんが、IDL以外での読み取りが制限されているため、IDL保存ファイルとしてのデータカタログの保存と配布を停止するようにキャンペーンしていますまた、科学者がデータを使用できるようにするためにIDLを要求することから逃れることができるように、科学者がデータ準備を実行するためのサービスを作成するためのいくつかの取り組みを知っています。

于 2009-07-23T15:19:04.433 に答える
1

私は地球科学のポスドクで、大規模なデータセットを処理するために IDL を広く使用しています。私はそれを扱うのが非常に簡単であると言わざるを得ません(とにかく私と他の多くの人にとって)、それで何百時間ものcメモリエラーのデバッグを節約できれば、ライセンス費用に見合うだけの価値があります(私はCSの学位も持っています) 、だから私は「本当の」プログラミング言語を知っています)。

あなたの問題は、IDL の問題ではなく、ファイル形式の問題のようです。同僚に別の言語を使用するよう説得するのではなく、別のファイル形式を使用するよう説得してください。私は .sav ファイルをほとんど使用したことがありません。geotiff、HDF、netCDF、または必要に応じて単純なバイナリや ASCII などの一般的なデータ形式を常に使用しています。そうすれば、私の同僚全員が、選択した言語を使用してそれを読むことができます。

SOAP での IDL の使用に関する情報を探してここにたどり着きました。悲しいことに、上記のコメントが Google コンテストで優勝しました。今、それに関する実際の情報を見つけることができれば:)

于 2009-08-03T19:18:45.903 に答える
1

私は医用画像研究所で 8 年間 IDL を使用しています。また、MATLAB、LabVIEW、Visual C++ も使用しています。

IDL コスト: プログラミング端末に IDL ライセンスが必要なのは事実です。ただし、スプラッシュ画面を表示できる場合は、IDL アプリケーションを任意の端末の無料の「仮想マシン」で実行できます。また、他の多くの言語/開発環境は IDL と同じくらいの費用がかかります (合法的に使用する場合)。この大学では、Visual Studio は IDL よりもライセンスあたりの費用が高くなります。

IDL/MATLAB と Visual C++/etc: C++/Visual C++ では 1 週間かかるプログラムや GUI アプリケーションを、IDL では 1 日で作成できます。IDL を学ぶのに 2 週間しかかからず、学ぶのに優れた本があります。もちろん、ビジュアル GUI を追加すれば、C++ プログラムはより高速に実行され、より多くのコントロールを使用できるようになります。ただし、データを分析するためのユーザー インターフェイスを備えたアルゴリズムまたはアプリケーションのプロトタイプを作成する場合は、IDL (または MATLAB) を使用すると時間を大幅に節約できます。

IDL と MATLAB の比較: IDL は MATLAB よりも少し冗長であり、ユーザー ベースやツールボックスの数はありませんが、主要なユーザー フォーラムは優れており、応答性の高い専門家が多数います。以前は、IDL GUI プログラミング インターフェイスの方が優れていましたが、MATLAB が追いついたかもしれません。IDL の「ウィジェット」のプログラミングは、今でもずっと快適です。また、IDL の組み込み関数は、ユーザーベースが小さいことを補うために、もう少し「組み込み」が多いように見えることがあります。良い例は convolve コマンドです: IDL の "convol" と MATLAB の "conv" です。コマンドは IDL では長い単語ですが、結果を正規化するためのフラグや、無効なデータやエッジ効果を処理するためのフラグも含まれています。MATLAB 構文はよりエレガントで簡潔です。

信じてください。IDL や MATLAB などの「科学データ」言語を学習することは、コードの操作よりもデータの操作に多くの時間を費やしたい場合に価値があります。どちらかが優れているとは言いませんが、このような言語はラボ、特にイメージング ラボでは不可欠です。

于 2009-07-22T20:11:29.153 に答える
1

さて、スタックで IDL を検索したので、ここにたどり着きました! :-)

私はほぼ 30 年間プログラミングをしており、IDL を学んでいます。これまでのところ、私はそれがあまり好きではないことを認めます. ただし、他の多くの言語にはない機能がいくつかあります (たとえば、数学的配列操作は、ループやその他のデバイスではなく、1 つのコマンドで実行できます)。

他の人が言ったように、IDL の人気はいくぶん文化的なものであり、定着の問題です。IDL について初めて耳にしたのは 20 年ほど前です。その時点で、私には、ストールマンにはいくつかの素晴らしいアイデアといくつかの便利なツールがあり、ライナスはまだ彼の有名な comp.os.minix メッセージを出していないように思えました。このように、IDL は、競争力のあるオープンソースで有利なスタートを切ることができました。私の知る限り、オープンソース コミュニティにはまだ競争力のあるものはありません (GDL については知っていますが、間違っていなければ、IDL に大きく遅れをとっています。その点について訂正していただければ幸いです)。最終的には取って代わられるかもしれませんが、すぐにそれが起こるとは思っていません。

于 2008-12-03T20:45:44.187 に答える
1

おそらくこれは誰かを助けるかもしれません: GDL は IDL .sav ファイルを処理 (読み書き) します。SAVE および RESTORE ルーチンは、無料の CMSV ライブラリ (IDL で記述) を使用して実装されています。

さらに、GDL は Python モジュールとして構築できます。Python の .sav ファイルも使用できます。GDL での Python サポートはまだ numarray パッケージを使用しているため、あまり便利ではないかもしれません。

于 2010-02-09T09:56:22.573 に答える
1

私が間違っている場合は訂正してください。しかし、同僚に言語で「時間を無駄にするのをやめる」ように言うべきかどうか尋ねているのですか?

うーん、ちょっと視野が狭いかな。まず、同僚に「IDL を使用している理由」を尋ねる必要があります。15年ほどIDLをオン・オフして使っていますが、「やるべきことがすぐにできるから」と言われると思います。IDL/C++/LabVIEW/Python/Pascal で 20 年間プログラミングしてきましたが、その仕事に最適な言語/環境を使用する必要があると思います。派手なユーザー インターフェイス アプリケーションには IDL を使用しませんが、ギガバイト単位のデータを分析および視覚化するには、IDL に勝るものはありません。(もちろん、そのために Python や Ruby を使用するつもりはありません!)

そして、IDL がプロプライエタリ ソフトウェアであることについて。その通りです (ただし、IDL アプリケーションを実行するために高価なライセンスは必要ありません。仮想マシンを使用してアプリケーションを実行できますが、アプリケーションを開発するには高価な (真の) ライセンスが必要です)。しかし、独占的であることの何が問題なのですか? 私の車はプロプライエタリな製品です (あなたの車もそうだと思います :-) )、私のテレビセット、電話などもそうです。つまり、IDL はプロプライエタリです。つまり、言語を変更することはできません (ITTVIS に変更を依頼する以外は)。 )、しかし、あなたは言語さえ知りません!だから問題は何ですか?(ところで、オープンソースバージョンのGDLが言及されており、他の(オープンソース)の代替手段があります)。C++/Python/Ruby などにどれくらい貢献しましたか?

(高い)ライセンス料が気に入らないので、所有権の主張が(誤用され)ないことを願っていますか?確かに無料の (読み: 金銭の譲渡はありません) C++/Python/Java コンパイラーがありますが、ITTVIS は営利企業であり、利益を得たいと考えています。私はプロのプログラマーであり、オープンソースの考え方を支持しますが、月末に支払われるのが好きです (そのお金がどこから来るのか推測してください :-) )。(ところで、私はITTVISの従業員ではありません。)

つまり、要するに。IDL が高すぎると思われる場合は、問題ありません (ただし、独自の引数は使用しないでください)。選択肢があり、自由に選択できます。しかし、(同僚に切り替えるように) 切り替える前に、生産性にどのような影響があるかを自問してください。ライセンス料を数千ドル節約できるかもしれませんが、仕事を完了するのに 10 倍の時間がかかるとしたら......

敬具

于 2009-01-02T13:04:27.630 に答える