2009-02-26 13 views
6

ファクタを使用するか、Arcなどを例として使用します(注:ファクタは実用的なライブラリのセットが多いため、悪い例です)。あなたはプログラミング言語の使用を検討していると言いましょう。実用的なライブラリの大きなセットが問題になるのでしょうか?あなたの言語がうまく設計されていれば、 'string'ライブラリまたは 'date'ライブラリを作成するのは簡単でしょう。たぶんWebフレームワークですか?新しく登場するプログラミング言語には実用的なライブラリが本当に必要ですか?

言葉が出てきたら、誰かが「実用的な図書館」を持っているようだから、これを言います。

答えて

11

これは間違いなく、10回のうち9回です。私は、自分がやりたいことを達成するのに役立つうまくサポートされたライブラリを使って言語を選ぶつもりです。

これは、自分のライブラリを作成するのは楽しいことではありませんが(まったく逆ですが)、迅速で正確な結果が重要なプロダクションプロジェクトでは、実用的な選択肢ではありません想像力。

3

実際のライブラリは重要です。私はフレームワークを書くために支払われることはありません、私はビジネスに価値を追加するために支払われます。クライアントに文字列データ型を書き込むように請求しなければならないと言った場合、私は仕事/契約を失うことがあります。

2

ここで大部分の質問を見てみると、人にとってツールがどれだけ重要かを知ることができます。あなたが本当によくあなたのタスクに適合し、あなたはすべてのことで、その後、独自のツールを書く時間や傾きがでダイビングを意味している新しい言語を発見した場合、言った。それは新しい言語が素敵なライブラリを入手ことを一つの方法だ、

結局。

4

Javaと.Netは、フレームワークや追加の高品質ライブラリ(多くの場合、フリーでオープンソースでもあります)に豊富なクラスを持つ人々を甘やかすことになりました。 RubyとPythonについても同じです。そのようなライブラリがなければ、新しい言語を採用するのは難しいでしょう。あなたが必要とするすべての機能を再実装する必要があるため、生産性が大幅に低下します。

意図的なプログラミングのような急進的なものを紹介する画期的な言語でない限り(コンピュータに私がしたいことを伝え、それを実行するための適切なコードを伝えます)...なぜ、あなたはそれらの1つを持っていますか? :-)

1

大きなライブラリを使用すると、はるかに生産性が高くなります。 XML、暗号、Webフレームワーク、UIフレームワークなどを解析することをサポートしていない本当に素晴らしい言語は、作業コードを生成するためにより多くの時間を要します。学習目的のために、大規模な図書館のない言語は問題ありませんが、実際の目的では、そのような言語を使用するには時間と費用がかかるでしょう。イメージをロードするたびに、.jpgヘッダーを解析するコードを記述しなければならないと想像してください。 XMLパーサーをあらかじめ構築したものにロードするのではなく、手作業でコードを作成しなければならない場合はどうでしょうか。おそらくそれを台無しにして、デバッグに多くの時間を費やすでしょう。プロジェクトの目標が新しいツールを作成することであれば、サポートコードを書くことはあなたの時間を大いに活用するものではありません。

1

私は、Pythonの人気の大きな理由は、その巨大な標準ライブラリだと思います。 JavaやPHPでも同じです。実際、ライブラリの選択は言語そのものよりも重要であると私はおそらく言います。

+0

私は、PHP(そしておそらくはjava)のためのものは、付属のライブラリだと言っています。言語が進むにつれて、彼らはどちらもかなり恐ろしいです。 – SingleNegationElimination

+0

私は同意します。そしてそれが私が望むほどのC#プログラミングをしない理由です。 C#用の高品質なオープンソースソフトウェアは、あまり多くありません。 –

1

時間と労力を最小限に抑えて最終製品を作成することを最優先に考えれば、利用可能なライブラリが重要です。 (あなたの目標が楽しいか、学習のために学習している場合は、自分のライブラリを書くことは良い経験になるかもしれません)。

良いライブラリは、多くの人がそれを使い、大部分のバグ。プログラミング言語がどれほど素晴らしいか、またはライブラリを一から書くのがどれほど簡単かは関係ありません。時間の経過とともにテストされたコードを置き換えることはできません。

多くの図書館は面白くて面白くないし、再実装することも決して世界に革命を起こさないだろう。日付ライブラリーや文字列ライブラリーは何でもできます。それは動作するか動作しません。多くの図書館は、標準的なものや事実上の標準的な行為の単なる実装であり、誰かがそれを正しいものにするために必要な作業をスローする必要があります。これ以上のことをしなければならないほど、自分自身をやるべきです。

私の意見では、既存のライブラリを利用できる新しい言語はどれも先に出発します。例えばClojureは非常に新しい言語ですが、Javaのすべてのライブラリにもアクセスできます。これは間違いなく現時点ではうまくいっている大きな理由の1つです。車輪を再発明するのではなく、新しいものに向かって努力しています。

0

これは魅力的なアイデアです。ポール・グラハムやチャック・ムーアの場合は確かに機能します。

あなたのドメインが非常に限られていて、そのドメインの外にいるあなたの要件を取得しようとしない場合は、「Excelからのインポート」機能を求めるクライアントと同じように簡単です。一方、Paul GrahamはLispを使ってWebショップシステムを作成しました。これは非常に幅広い要件のドメインです。私は彼がPDFエクスポートのようなものをどのように処理したか知っていることに興味があります.MITからの夏休みにPDF仕様とLispマニュアルを夏休みに渡しましたか、Cライブラリに行ったでしょうか?

あなたのドメインが論理によって駆動されている場合や天文シミュレーションのような自然の原理を守っている場合は、うまくいく可能性があります。人間の要件であれば、矛盾や特殊なケース(文字列や日付ライブラリがそのカテゴリに入る)に満ちていて、抽象化や言語機能が完全になくなってしまうと、あなたがHaskellかPHPに書いているのかどうか、特別なケースを突き抜けること。

最適化が非常に重要な場所(EDIT:あなたが自分で最適化するのに十分なスマートな場所)で動作するかもしれません - 自分で実装したのでスタックのすべてのレイヤーを知っているシステムを削除しました特定の目標を念頭に置いて

私は大学院生とアイデアのクラスター全体を関連づけています。プログラミングスキルと一般的なスマートのトップ1%に入っています。彼らは非常に狭い領域で働いています。彼らは最善の機器を持っていないかもしれないので、物事を取り除き、深度を最適化しようとしています。彼らは仕事をしているプログラマーのジレンマを学ぶことを学ぶことができません。

1

文字列ライブラリは簡単に作成できると思いますか? Unicode、UTF-8、UTF-16、レガシーコードページ、バイトオーダーの問題などを見てください。

あなたは日時ライブラリを書くのは簡単だと思いますか?うるう秒、週番号付けスキームなどに目を通してください。

これらの種類のことを考えて、一度実装して正しく実装すれば、思ったよりも多くの時間と頭痛を節約できます。

関連する問題