●世界一分かりやすく「オブジェクト指向言語」を解説。

  • URLをコピーしました!

プログラミングは難しいと思われがちですし、実際やったら難しいと思うかも知れません。先ず伝えたいことは、プログラミングを簡単にしましょう。プログラミングのやり易い簡単なところからやれば良いと思います。難しいことは先延ばしにしましょう。もしくは、もうやらないでおきましょう。

理由は、簡単な方が楽しいし、続けることが出来るからです。これは何事にも共通する真理です。頑張って難しいことばかりやらないとダメだと思いながらだと、嫌になって仕方がないのです。最初は難しいことでも、どんどん簡単にしましょう。どんどん単純化(シンプルに)しましょう。そして、どんどん楽をしましょう。それが結果的に周りを幸せにします。

目次

「オブジェクト指向言語」を使う理由

なぜ「オブジェクト指向言語」を使うのか?

楽をするためです。

「オブジェクト指向言語」は、大規模開発のために使うのではありません。楽をするために使うのです。その結果、大規模開発で使われているというだけです。小規模開発であろうと「オブジェクト指向言語」は使います。そもそも、現在「オブジェクト指向言語」以外の言語は、前線に立つ会社では使われていません。「オブジェクト指向言語」が、難しいというのは大きな間違いです。プログラミングが単純になって圧倒的に開発が楽になるので、必ず習得しましょう。

「オブジェクト指向言語」は、アプリ開発において必須です。

話しを戻しますが、楽が出来る理由は、ほとんどの機能がクラスとして部品化されているからです。このため、C言語で苦労して作って覚えたようなソートも、すべて部品化されています。例えば、「配列の逆順走査をしたい」と考えて、10分でプログラムを作ったとしても、配列クラス内に同じことが出来るメソッドがあるので、その10分は無駄です。その10分を他の努力に回せと言いたい訳でもなく、その10分間で他の好きなことをすれば良かったのにと思います。

要は、部品を組み合わせるだけで、中身を理解していなくても、さらにコーディングしなくても良いのです。例えば、高速で動作するクイックソートが使いたい時が多々あります。動作原理を理解していなくても、引数の与え方さえ知っていれば、「.quick()」などでコーディングをせずに呼び出せます。

「オブジェクト指向言語」の特徴

これは実際にプログラミングするなかで体験すれば良いことです。深く理解しなくても大丈夫です。ただ、分かりやすい端的、説明を記載しておきます。ざっと読んでみて下さい。

カプセル化

クラス化された部品は、ブラックボックスとして使えるという利点です。また、クラスの作り手からすれば、余計な情報を見せなくても済みます。これはクラスを使う際に余計なことを考えさせないということでも利点になります。

継承

既にあるクラスを引き継いでカスタマイズ出来るという特長です。

ポリモーフィズム

多態性とも言われますが、一つの機能(振る舞い)であらゆる機能を実現させるという特長です。言葉では分かり辛いので、いくつか分かりやすい例を挙げます。例えば、自販機は「お金を払って、品物を得ます。」が、支払うお金は硬貨でも、お札でも構いません。お金を支払う人は、これをわざわざ区別したりせずお金として支払いに使うことが出来ます。これが多態性です。硬貨とお札は厳密に言えば、犬と猫くらい別の種類です。この違いを気にせず同じものとして使うことを出来るのです。

多態性のもう一つの例としては、プログラム上で昇順にしてくれるメソッドがあるとします。ただ、文字、数字で昇順にする処理は、実際には異なります。その際に、多態性の特長を使えば、異なる処理でも一つのメソッドを呼べば良いようにできるようになります。

優先順位を明確にして、少ない努力で、最大の成果を出すこと

もう一つ念押して言っておかないとダメなことがあります。それは目的は成果を出すことです。つまり、アプリを作ることです。「部品化されてるから楽すぎる。」というのを嫌がる人がいます。これは、アプリ開発目線からすれば、かなり遠回りをしています。どんどん楽をして、どんどん前に進むべきです。

例えば、クイックソートというメソッドがすでに用意されているのに、それを自前で作ってそのスキルが良いことだと言う人がいますが、時間の無駄です。僕が一緒に開発していたら、絶対にそういう無駄なことは止めてくれと言います。僕もクイックソートを自前で作れましたが、おそらく、今後作ることはないです。すでに用意されていることに時間を使っても無駄だからです。メソッドを使うだけになり、当時時間をかけて苦労して理解した処理の流れをほとんど忘れてしまいました。

僕の経験上、プログラミングを勉強感覚で進めていると必ず後悔します。

的を絞らずに「あのアルゴリズムが美しい。このアルゴリズムは組んでて楽しい。」など言ってやっていては、いつまで経ってもゴールにたどり着けません。プログラミングは必ず作る物を明確にして、それを目指して作って行く方が成長します。

話しは逸れるかもしれませんが、僕の高校時代にやたら「難しい問題」を解いては自慢げにしている同級生がいました。その同級生は、こともあろうに生物の難問題だけをひたすらにやっていました。悪いことだとは言いませんが、僕はその同級生に学校のテストの点数、成績で絶対に負けませんでした。

必要とされていること、目指すべきことをやることで上達します。

これは余計かもしれませんが、案の定、僕の方が圧倒的に良い大学に入学しました。その同級生がどうなったかは知りませんが、おそらく生物の勉強を熱心には続けてはいないと思います。これも余計なことですが、僕はその同級生が絶対に生物の勉強をやめると思ってましたし、本当に効率の悪い勉強をしているな、と思ってました。これをプログラミングで言えば、求められていることは、Webサービスやアプリを作ることです。仮にこれらを作らないのであれば、プログラミングをやらない方が良いのです。時間を無駄にするだけで、その道に進んでも結局は、劣悪な労働環境、安い給料で中途半端に学歴だけ良いばっかりにプライドだけ高くしたITエンジニアとして、延々としょうもない資料を作成する人生になるからです。

「オブジェクト指向言語」の学習で必要なこと、不要なこと

プログラミング教育で学習が必須な「オブジェクト指向言語」ですが、必要なこと、不要なことを

編集中

コメント

コメントする

目次