• 雑な生き方を丁寧に記すブログ

例えが下手な話

今度は東北で大雨被害が出ているらしいが、大丈夫だろうか。東京も東京で、大雨とはいかないまでも6月の梅雨みたいな天気が続いている。改めて考えるとやっぱり日本の気候も昔と変わってきてるよなって言う感じがする。夏の入りが遅くて、夏から一気に冬に変わる、みたいな。南極の氷が崩れ落ちる映像を見させられるよりも、こういうところで温暖化の「不都合な現実」味を感じるこの頃。

今日は、前の記事の続きというか、今オンラインスクールで勉強してる内容についてもうちょっと詳しく書いてみたい。

Javaってなんなの?

プログラミング未経験者がイメージしがちなジャバ

遠い昔はるかかなたの銀河系の犯罪組織首領ではない。彼の名前の綴りは”Jabba the Hutt”であってJavaではないので要注意だ。

タトゥイーンジョークは置いておき、Javaとはプログラミング言語の一つである。ざっくり言ってコンピュータに指示を出すための言葉。プログラミング言語自体は200種類ぐらいあるらしい。他に有名どころでいうとC言語とか、PHPとかPythonとか。ちなみにJavaScriptというのもプログラミング言語だが、Javaとは全く別物なので注意。(それぞれの言語を開発した企業同士が、その当時業務提携を行っていたからとかなんとか。)

無意味に200種類もあるわけじゃなくて、当然、それぞれに強みというか、得意分野があったりする。アプリ開発に向いてるとか、人工知能の設計特化とか。日本語は情緒的な表現を豊かにできるけど、ラップの詩を書くとダサいとか、そんなイメージで捉えて欲しい。(やっぱ違うかも)

そんな中でJavaがどういう特徴を持ってるのかというと、一番でかいところは、ほぼどんな環境でも使えるということ。日本語がほぼ日本でしか使えないとの同じく、プログラミング言語も実行されるOS環境とかによって制限されることは珍しくない。例えばSwiftという言語は、iPhoneのアプリを作るには便利だが、当然ながらiOSかmacOS(またはLinux)の環境でないと使えない。その点で言えば、Javaのスローガンは”Write once, run anywhere (一度書いたらどこでも動く)”であって、WindowsだろうがmacOSだろうがどのコンピュータでも使えるように設計されているし、なんなら家電の中にあるような組込OSでも実行できる。

どこでも使えるわけだから、安定性も優れているし、Javaを採用しているシステムは多い。需要が多いわけだからかなりメジャーな言語である。学習環境の観点からしても、日本人がビルマ語みたいなマイナー言語を学ぶより、英語を学ぶ方が教材も豊富にあって実践トレーニングもしやすい。そういう点で、未経験から何かプログラミング言語を学ぶにあたってJavaという選択肢は合理的だとは思う。
(もちろん、Javaでないといけないということは全くない。大事なのはあくまでその言語で何をするかであって、そこが明確なら初めからそれに特化した言語を勉強するに越したことはない。)

自分のパソコンを持ってる人なら一回くらいは「Javaのアップデートを入手可能」みたいな、湯気立つティーカップロゴと共にポップアップしてくる画面に遭遇したことがあると思う。あれは自分のパソコンにJavaが初めからインストールされてるからであって、だからこそ大体のWebページやアプリを見たり動かしたりできる。めんどくさがって放置しすぎると、最新の言語でプログラムされたアプリケーションが動かせなかったりするので気をつけよう。

もうちょっとJavaの言語的な特徴のことに触れると、Javaはオブジェクト指向型というのに分類される言語になる。オブジェクト指向って何さ?と聞かれると明確に答えられる自信がない。実際にコーディングしているとなんとなく実感できるが、ものすごく概念的な言葉なのでなんとなくで読んでほしい。
(俺も初心者なので必ずしも正確な説明ではない)

俺が30人の生徒を受け持つ担任教師だとする。新学期初めてのホームルームなので、生徒一人一人に自己紹介の挨拶をさせたい。名前と、趣味を話してもらいたい。

オブジェクト(モノ)という概念がない世界線の場合・・・俺は生徒一人一人に原稿を用意しなければいけなくなる。ショウタ君という生徒に対して「私の名前はショウタです。趣味は城巡りです」と書いた原稿を渡し、ダイキ君という生徒に対して「私の名前はダイキです。趣味は麻雀です」と書いた原稿を渡す。これを30人分繰り返す。お気づきだろうが、この教師、超絶バカである。

オブジェクト(モノ)という概念がある世界線の場合・・・当たり前だが、ショウタ君は自分の名前がショウタだと知っているし、趣味は城巡りだと認識している。ダイキ君はもちろん、30人全員がそう。なので俺は、「私の名前は●●です。趣味は○○です」というマニュアルを黒板に書くだけでいい。クラス全員が自己紹介できる。

この「名前」とか「趣味」はJava用語でいうところの「プロパティ」で、黒板に書いたマニュアルは「メソッド」にあたる。プロパティとメソッドを一式にして「クラス」という。名前とか趣味というプロパティを持っていて、自己紹介のメソッドを実行できるショウタ君は、生徒というクラスに属する一つのオブジェクトと呼べる。(なんかこの例えだと人をモノ扱いしてるみたいで感じ悪いが)

便利なことに、ショウタ君というオブジェクトが一度完成されていれば、このあとホームルームを終えて、選択式の体育授業に行った時でも、体育教師はショウタ君に同じ自己紹介をさせることができる。他の生徒も同様。

こんな感じで、クラスという設計図に基づいて量産したオブジェクトを簡単に使いまわせるのがJavaの言語的な特性。大勢で一つのシステムを開発する時なんかに特に便利になる。

ちょい長めになってしまったが、今日はこんな感じ〜。今度はもうちょっと実際のコードに触れた話にしたい。

コメント一覧

特に石垣が好きです2020年7月29日 10:09 AM / 返信

なるほど分かりやすい。 関係ないけど昔ジャバザハット似の知り合いがいたのを思い出しました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です