(原文: OOP Isn't a Fundamental Particle of Computing)
この25年にわたるプログラミングで最も大きい変化は今日、あなたが役に立つ、柔軟なデータ型を操作するということです、そして、25年前、あなたは自分自身でそれらのデータ型を造ることに無駄に高い時間を費やしました。
当時の標準言語 である、CとPascal は、少しの機械指向の型を提供しました:数、ポインタ、配列、文字列の空想、複数の値を結びつけるレコードまたは構造体。そして、より面白い型(スタック、木、連結リスト、ハッシュテーブル、リサイズ可能な配列)のようなより面白い型を設計するためにこれらの基本型を使うことが重要でした。
PerlまたはPythonまたはErlangにおいて、私はこのものについて考えません。彼らがどれくらいの要素を含むか、また、データがどこから来るか心配することなく、リストと文字列と配列を使います。私は辞書を使うときに、そのサイズやハッシュの衝突がどのように操作されるかといったような詳細について時間を費やすことはありません。
私はまだ新しいデータ型を必要とします、しかし、カスタム解決を巧みに作るより、すでにそこにあるものを再利用することが多いです。任意の次元のベクトルは、配列です。RGBカラーは、3つの要素の組です。多項式は、各値が係数で、インデックスを次元とする組、か、ペア{係数, 次元} のリストです。私が大学で取ったデータ構造コースから、重労働を、配列と組とリストと辞書がとり除いてしまったのには驚きです。バランスした木を実装するときの焦点はバランスした二分木がどのように働くかであり、もつれ合ったポインタ操作の苦しみではない。
新しい何かへ既製の建築用ブロックを配置する方法を考えることは、それが最初に現れるより急進的に変わります。それらの建築用ブロック自体が生まれる方法は、もはや主要な懸念でありません。多くのプログラミング・コースとチュートリアルでは、オブジェクトとコンストラクタと抽象基本クラスとプライベートメソッドといった、言葉の突然の減速バンプがあります。それから次の宿題で、RGBカラーを表す単純な3つ組は、ゲッターとセッターと複数のコンストラクタと ― 最も悪いことに ― もっとより多くのコードのClassに置き換えられてしまいます。
これは誰かが必死に、入って、これが間違ったアイディアで楽しみを殺してしまうということを説明する必要があるところです、しかし、それはめったに起こりません。
それは、オブジェクト指向プログラミングが悪い、あるいは欠陥があるということでありません。オブジェクト指向プログラミングは、何人かの人が望む計算の基本要素でないということです。やみくもに任意の複雑さの問題に適用されるとき、オブジェクト指向プログラミングは冗長であり、不自然になります。それでも、すべての対象の美的な強調がしばしばずっと下にあります。そのことでオブジェクト指向スタイルが全体的な単純さと理解の容易さを本当に理解することを難しくさせていることが、とても残念です。(Consider this Part 2 of Don't Distract New Programmers with OOP.)
0 件のコメント:
コメントを投稿