こんにちは、インターンの鈴木です。
今回は、オブジェクト指向について書いていこうと思います!実は僕自身も勉強しております。なので学んだことをよりシンプルに超簡単にして書きます。
オブジェクト指向といえば、「革新的なプログラミング手法」として根付いている一方で、人々に非常に理解し難いと思われ敬遠されているのが現状です。ですが私も文系あがりなので分かります。なんじゃそりゃです。なので超簡単に書きます。
スティーブ・ジョブズ氏が1995年当時インタビューにおいて、今後10年間で最も重要であると思う技術は”オブジェクト指向”とWeb”であると語っていたことからも分かる通り、その言葉が人々に知られだした当時、非常に革新的な技術でありました。そして彼の予想通り今最もソフトウェア業界において最も欠かせない技術です。
さて、オブジェクト指向とはズバリ一言でなんなのか。それは、“ソフトウェアの保守や再利用をしやすくするためのもの”です。巨大なシステムを構築するときは膨大なコードを書かなければいけません。そしてそれを保守したり、機能を拡張したりするときにオブジェクト指向で構築されていると比較的楽なのです。
(ここでのオブジェクト指向とは”オブジェクト指向プログラミング”のことです)
まずは何かを語るときは歴史からですよね。私たちが今住んでいる世界の全てのものは先人たちが時間をかけて積み上げてきたものです。オブジェクト指向とて例外ではありません。
オブジェクト指向は一般的に1970年代前半にアラン・ケイ氏が考案したSmalltalkというプログラミング言語が最初だと言われています(それ以前にも考え方自体は存在していました)
そう、あのかの有名なパロアルト研究所でGUI(グラフィカルユーザーインターフェース)を開発し若き日のジョブズ氏を唸らせた彼です。しかし当時はコンピュータのメモリやハードの性能がその手法に追いついておらずそれほど広まりませんでした。
しかし今では、ほとんど全てのプログラミング言語においてオブジェクト指向が適用されています。なぜなのか。それはコンピュータの性能が指数関数的に向上したことと、あとは”Java”のおかげです。オブジェクト指向のJavaが普及し始めた2000年前後から爆発的に広がり始め、一時はバズワードとも言われましたが、現在までソフトウェア開発における最重要技術と位置付けられています。
みなさんお馴染みのPHPやRuby, C++なんかも全てオブジェクト指向プログラミング言語です。
では、一体何がそれほど革新的でであったのか。それは、クラス・ポリモーフィズム・継承です。詳しく書くと本一冊必要なので超簡単に説明すると、これらは”より再利用しやすく、簡潔なコードを書く“のに欠かせない技法なのです。
これ以上技術的なことを書くと果てしなく長くなるので、詳しくはこちらの本をお読みください!
オブジェクト指向でなぜつくるのか
オブジェクト指向で一冊費やしていますが、非常に明快で分かりやすく面白いです。
ちなみにフレームワークやライブラリなどもオブジェクト指向あってのものです。
日頃私たちが使用しているものはほとんど全て恩恵を受けているのです・・・先人たちに感謝です。
ちなみにアジャイル開発などもオブジェクト指向プログラミングあってのものだそうです。
こういう知識を得るとさらにコードを書くのが楽しくなったりテクノロジーが好きになりますよね!
なんだか本の宣伝みたいになりましたが以上です!