プログラミングをやってみたい人へ
みなさん、こんにちは!
B-CHANです。
この非天マザーには、iPhone活用のたくさんの記事を書いていますが、ボクはIT業界とは無縁の人間です。
某メガバンク、外資系生命保険、不動産ファンド、不動産などのキャリアです。
なのに今はこうやってiPhoneのブログを書き、他に、SEOやIT全般、自動車の仕組み、カメラの仕組み、作曲、読書、英語学習、デザイン、スポーツ、経済学、政治、詩やエッセイを書くなど、本業とその他の記事を雑多に書いています。
実はボクがやり残している重大なことがあります。
それはコンピュータ・プログラミング。
ボクはまだ中学生(だったかな?)の頃に東芝のパソピア7というパソコンでプログラミングデビューしました。
BASICという言語です。
その後、MSXパソコンでBASICとアセンブラ、NECのPC-8801や富士通のFM TOWNSというパソコンでもBASICでプログラムを書き続けました。
社会人になってからは、のけぞるほど忙しく(1年間連続で午前様という生活が毎年毎年続いた)、プログラミングからは遠ざかりました。
なので、ボクの頭のなかにはコンピュータが動く概念やアルゴリズムなどは入っているんですが、その後のオブジェクト指向などの新しい技術については遠ざかってしまいました。
21世紀になってからは、PHPやJavaScript、さらにiPhoneのアプリを作るためのObjective-Cという言語をサラッと学びました。
が、プログラムを作るまでは行かず、知識程度です。
今、一番使っているのはプログラミング言語ではなく、ウェブサイトを作るためのHTMLとCSSです。
そんなボクが最近また復習しているのがJavaScriptという言語。
スクリプト言語と呼ばれるジャンルで、まあ簡単に言えば簡易プログラミング言語という感じでしょうか。
英語やイタリア語や日本語の文法が異なるように、言語ごとに文法は異なります。
しかし、どの言語も概念はだいたい同じなんですよね。
英語にもイタリア語にも日本語にも、「走る」「本を読む」「朝食を食べる」などの概念があるのと同じです。
演算、出力、条件分岐、繰り返し、関数など、どの言語でもやることは同じです。文法が違うだけです。
なので、大ざっぱに言えば、どれかひとつのプログラミング言語を覚えれば、他の言語を覚えるハードルはグッと低くなります。
強いて言えば、オブジェクト指向と呼ばれる概念が無い言語からオブジェクト指向型の言語へ移るのは、やや難しいかもしれません。
まさにボクがこの状態でした。昔のBASICには、そんな概念は無かったですから。
今なぜボクがJavaScriptに関心を寄せているか。
理由は簡単です。
- すぐに動かせること
- 数あるプログラミング言語の中でも非常に覚えやすいこと
- 応用が効くこと
この3点です。
動作環境が身近にある
まず、すぐ動かせること。
多くの言語はあらかじめパソコン内に用意されていないので、自分でインストールしたり、プログラムを動かすための環境を構築する必要があります。
例えばPHPなら、サーバ内で動かすので、サーバを構築して立ち上げる必要があり、そこにPHPをインストールして環境設定する必要があります。
ものすごく難しいわけでは無いですが、ものすごく簡単でも無く、しかも手間もかかります。
あらかじめ色んなプログラミング言語が内蔵されているMacでもPHPの構築はやや面倒です。
しかし、JavaScriptは超カンタン。なぜなら、主流なほとんどのウェブブラウザにはJavaScriptが内蔵されているからです。なのでブラウザさえあれば簡単に実行できます。
比較的平易
次に覚えやすさ。
多くのプログラミング言語は文法が厳しいです。
例えば変数の宣言も厳密に行う必要があります。整数なのか浮動小数点なのか文字列なのか。
しかしJavaScriptの変数宣言は基本的には、varという宣言文のみ。数値も文字列も真偽値もすべて同じ。超絶にラクです。まあ人間がラクな分、動作速度が見劣りするなどのデメリットも生じるわけですが、とにかくハードルが低いです。
用途の多様性
最後に応用について。
JavaScriptはウェブブラウザに内蔵されていると書きました。
GoogleマップとかFacebookの画面など、ウェブブラウザ上で動きのあるサイトはJavaScriptで書かれています。あんなふうに、自分のサイトで何か特別なことをしたければ、JavaScriptを使うことになるのです。
一方で、JavaScriptでiPhoneやAndroidのアプリを作ることもできます。
実は、iPhoneではObjective-CやSwiftというプログラミング言語、そしてAndroidではJavaというプログラミング言語でアプリを作る必要があります。
しかし今、JavaScriptからiPhoneやAndroidのアプリを作れるツールが存在します。
JavaScriptでネイティブアプリを開発できるTitanium MobileとAlloyをつかってみよう その1 | ハレノヒブログ
HTML5とJavaScriptだけでiPhoneアプリが作れるMonacaを触ってみる - AIUEO Lab2
いくつもの言語を覚えなくてもJavaScriptだけ覚えれば、iPhoneのアプリもAndroidのアプリも作れるわけです。複数の言語で並行して開発する手間が無くなります。
まあ、専用言語で作成するよりも実行速度がやや遅いなどのデメリットはありますが、3Dのアクションゲームなどの高度なモノで無い限り、大きな問題では無いと思います。
自分のブログなどのサイトを加工したり、スマートフォンのアプリを作ったりするのを、低いハードルで実現してくれるJavaScript。
もし、IT業界、特にウェブの世界で生きるなら、HTMLもCSSもPHPもJavaScriptも必須だと思うんですが(ボクは業界人じゃないので詳しくは知らない)、ボクのように趣味と実益(ブログをいじったりアプリを作ってみる)を目的とする一般人なら、まずはJavaScriptから入るのをオススメします。プログラムってこういう概念なんだな〜ということを知る意味で。
あるいはPHPですかね。
別にJavaScriptとPHPのどちらが良いということはありません。そもそも両者は実行環境や目的が違いますから。
ウェブサイトを何とかしたいなら、まずはHTMLとCSSを身に付け、JavaScriptとPHPをセットで覚えればだいたいやりたいことはできると思います。
まあ、そこまでできれば、ウェブ屋さんとして仕事もできるでしょうけど。
今後は、JavaScriptやPHPの記事も書いてみようかと思っています。
専門家としてでは無く、ボクのような部外者の体験談として。
その方が初心者の参考になるでしょうし。
こんなページがあるので、気になる人は見に行ってください。
有名なサイトです。動画で教えてくれるので、とてもわかりやすいですよ。
JavaScript入門 (全24回) - プログラミングならドットインストール
↓ここからはつぶやきなので理解できなくてOK。読み飛ばしてもらっていいです。
それにしても、JavaScriptって、左右の値が等しい場合の比較演算子って、
===
で表すんですね。
ボクが知っているBASICでは、
=
でしたし、PHPなどでは、
==
です。
こういう細かい文法の違いが各言語の違いなんですよね。でも大まかには同じです。
例えば、switch文。
JavaScriptでは、
switch (変数) {
case "A":
実行文;
break;
}
ですが、PHPでは、
switch (変数) {
case "A";
実行文;
break;
}
どちらにもswitchという命令があります。概念は同じで書き方がちょっと違うということです。
基本的にはどの言語も英語ベースですし、これらの高級言語は人間が理解しやすいように作られているので、そんなにハードルは高くないんですよね。
覚えるのが難しいんじゃなくて、使いこなすのに慣れが必要なだけです。
外国語をマスターするのに似てますね。文法や単語をたくさん知っていても自由に話せないのと同じです。
マシン語やアセンブラあたりの低級言語(←価値が低いという意味では無く人間から遠い、機械に近い、という意味)だと、ホントに大変ですから。
だって、掛け算すら無いんですよ。基本的には足し算か引き算だけです。掛け算は複数回足し算するのと同じなので、それを自分でプログラムしなきゃならないわけです。
それらを思い出すと、現代の高級言語って、いろんな関数やらライブラリやらが用意されていて、人間はホントにラクになりました。