« 鈴木隆「けんかえれじい 上・下」岩波現代文庫 | トップページ | ココログの背景色を変えるJavaScript動作検証 »

2013年6月19日 (水)

プログラミング初心者にはJavaScriptがお薦め?

 今、O'Reilly の「JavaScript 第6版」を読んでる。単行本ソフトカバー横組みで800頁超えという重量級のシロモノだ。JavaScript って言語を知る前は、「なんか軟弱っぽい」と思ってたが、実際に解説書を読んでみるととんでもない、文法こそJava っぽいけど、中身はメソッドの追加とか高階関数とか、まるきし LISP じゃないか…って、意味わかんないで言ってるけど、

 ってのはおいて。プログラマがアツくなるネタの一つに、「初心者がプログラミングを学ぶなら、何がいい?」ってのがある。昔は「とりあえずcでしょ」って時代が暫く続いたけど、今は Java や C# や PHP、マニアは Haskell とか、色々ありすぎてますますワケわからなくなってる。

 異色な解としては、Lotus 1-2-3(→Wikipedia)の開発者ミッチ・ケイバー(→Wikipedia)だったかな?「1-2-3 を使うってことは、プログラミングするってことだ」みたいなことを言ってた気がする。Excel のセルに計算式を入れてる人は、既にプログラミングの初歩を身につけているんだよ、みたいな意味。

 まあ、それは極端としても、初心者が「さあ、プログラミングを始めよう」と思った際、困ることが色々ある。私は perl が大好きなんだけど、Windows 環境に Perl の処理系を入れるのはそれなりの手間だし、仮に「使える」プログラムが作れたところで、他の人に使ってもらうには、相手のマシンにも Perl 処理系が必要だ。

 …とか考えてくと、初心者に優しいプログラミング言語には、幾つかの条件があるのがわかる。これズバリ結論を言っちゃうと、「現実世界で相談に乗ってくれる師匠を探し、師匠が薦めるモノにしよう」なんだけど。いやホント、初心者にとっちゃプログラミングってワケわからん事だらけで、実際にモニタ覗き込んでアドバイスしてくれる人の有無が大きな違いになるのよ。

 とはいえ、やっぱし人には見栄ってモンがあって。「こんな低レベルの質問したら恥ずかしい」とゆーアレはあるわけで、「ソレナリに腕を磨いてからにしたい」な気持ちも、少しはわかる。それとは別に、質問するにもマナーがあって、これを身につけないと、厳しい師匠からはボコボコにされたりする。とりあえずハードウェア環境・OS・言語処理系などはキッチリ伝えないとね。

 話が逸れた。その辺を考えて、「初心者にお薦めできるプログラミング言語」の条件はどんなのか、というと。

  1. 気軽に始められる。
  2. 出来たプログラムは、なるたけ多くの環境で動く。
  3. 流行っている。
  4. ソレナリに見栄えのいいモノが作れる。
  5. 簡単なコトが簡単にできる。

 その上で、「できればあった方がいい」条件ってのもあって。

  1. オブジェクト指向や関数の関数など、高度な機能も持っている。
  2. 経験を履歴書に書ける。

 とまあ、こんな所か。それぞれ見ていこう。

1. 気軽に始められる。

 例えば C# だと、まず Microsoft Visual Stdio を手に入れてインストールしなきゃいけないし、これでモノを作っても Macintosh じゃ使えない。perl とかのスクリプト系も処理系が必要だし、こっちは実行時にも処理系が要る。PHP だと HTTP サーバ立てなきゃいけない(間違ってるかもしんない)。JavaScript だと、対応する Web ブラウザさえあればいい。大抵のブラウザは JavaScript に対応してるから、とりあえずは動かせる。出来れば Firefox がベストだけどね。デバッガもあるから。lynx(→Wikipedia)使ってる人なんて滅多にいないんだよなあ。悲しい。こういう、「最初の一歩」の気軽さは、初心者にとっちゃ大事じゃないかなあ。

2. 出来たプログラムは、なるたけ多くの環境で動く。

 出来たら、人に見てもらいたいよね。でも、「まず .exe をインストールして…」とかって、面倒でしょ。JavaScript なら、ブログとかで頁を公開すれば、それでOK。普通に頁を見てもらえば、それで動くんだから、気軽だよね。

3. 流行っている。

 カッコいいとか、そういう話じゃなくてね。流行ってるモノは、学ぶ環境が整ってるんだ。参考書が多いから、自分にあったレベルのモノを選べる。インターネット上にも、沢山の資料がある。処理系の組み込み関数や、ブラウザとのAPIとかも、検索すれば出てくるし、「お手本」も多い。「お手本」のソースがスグに手に入るのも JavaScript の嬉しいところ。現実世界でも、流行ってるモノは知ってる人が多いから、師匠を探すのが楽。あと、マニアが忘れがちなのが、日本語環境。流行ってるモノは日本語が簡単に扱えるし、日本語の参考資料も充実してる。

4. ソレナリに見栄えのいいモノが作れる。

 中でどんなに難しい事をやってても、コマンド・プロンプトに1行のメッセージが出るだけじゃ、やる気が削がれるし、人に見せても「意味わかんねえ」で終わっちゃう。やっぱしマウスに同期してグリグリ動くとか、デッカイ音が出るとか、そういうのがあると、やる気が違ってくるでしょ。この辺は、やってみるとわかるよ。イベントに応じて動くモノとか、リアルタイムに動くモノって、やっぱし作ってて、すんごく楽しいから。

5. 簡単なコトが簡単にできる。

 "Hello, World" を出すのに、どれだけ手間が要るか、って話。この点、JavaScript は一見、コーディング量が多いように見える。例えば Firefox を実行・検証環境として使うなら、HTML から書く必要があるし。でもね。1. も関わってくるんだけど、「プログラミングを始めよう」と思ってから、最初のメッセージを出せるまでの時間を考えると、JavaScript はかなりいいセンいくと思う。エディタとブラウザがあれば充分なんだし。まあ、 HTML を知っていれば、って前提条件があるんだけど。

a. オブジェクト指向や関数の関数など、高度な機能も持っている。

 解説書を読んでる途中なんで、あんまし偉そうな事は言えないんだけど。JavaScript は正規表現も使えるし、クロージャもあるし、継承機能もある。なんか泥縄っぽいというか、かなりマニアックな雰囲気ではある。高階関数を使いこなしたら、尊敬されるかもしんない…職場によっては嫌われるけど。

b. 履歴書に書ける。

 まあ、そういう色気って、大事だよね。

 ってな感じに、上の条件だと、私が知る限り、JavaScript が最も優れてるんですね。まあ、条件自体が恣意的な気もするし、私が知ってるプログラミング言語なんてほんの一握りだから、異論も多いはず。

 …などと偉そうに書いてる私は、まだ JavaScript のプログラムは2つしか作ってないんだけど←をい。以下、私が作った BMI判定機(痩せすぎとか太りすぎとか)のソース・プログラム。これをテキスト・エディタ(メモ帳)とかにコピーして、bmi.html とかのファイル名をつけて保存し、bmi.html を Firefox とかのブラウザに Drag&Drop すれば使えます。

<html>
<head><title>サンプル</title></head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<body>
<script type="text/javascript">
//<![CDATA[
function xBMI(f) {
    var t = parseInt( f.nTall.value ); t = t ? t/100.0 : 1.70 ;
    var w = parseInt( f.nWeit.value ); w = w ? w+0.0   : 60.0 ;
    var b = w / ( t * t ) ;
    var a = ( b < 18.5 ) ? "痩せすぎ" :
        ( b < 25 ) ? "普通" :
        ( b < 30 ) ? "少し肥満" :
        ( b < 35 ) ? "肥満" :
        ( b < 40 ) ? "かなり肥満" : "酷い肥満" ;
    document.getElementById("aBMI").innerHTML =
        "BMI値:<strong>" + Math.round( b ) + "</strong>" +
        " 判定:<strong>" + a + "</strong>" ;
    return false;
}
//]]>
</script>
<p>身長と体重に半角の数字を入れて計算ボタンを押すとBMI値が出る</p>
<form id="idCrn" name="fnCrn">
<p>身長:<input type="text" id="iTall" name="nTall" onkeyup="xBMI(document.fnCrn)"
  size="20" value="170" style="text-align:right;" />(cm) 
体重:<input type="text" id="iWeit" name="nWeit" onkeyup="xBMI(document.fnCrn)"
  size="20" value="60" style="text-align:right;" />(kg) 
<input type="button" value="計算" onclick="xBMI(document.fnCrn)" />
<span id="aBMI" >BMI値:<strong>22</strong> 判定:<strong>普通</strong></span>
</p>
</form>
</body>
</html>

見栄えは、こんな感じ。

身長と体重に半角の数字を入れて計算ボタンを押すとBMI値が出る

身長:(cm)  体重:(kg)  BMI値:22 判定:普通

|

« 鈴木隆「けんかえれじい 上・下」岩波現代文庫 | トップページ | ココログの背景色を変えるJavaScript動作検証 »

日記・コラム・つぶやき」カテゴリの記事

コメント

Chromeは使ったことなかったです。機会があったら試してみます。

投稿: ちくわぶ | 2013年6月21日 (金) 21時37分

ブラウザはできればChromeがいいかと
デベロッパーツールは初期状態ではChromeの方が初級向けから上級向けまで機能が豊富で直感的です
またAPIの対応状況もややChromeのほうが「標準」よりかと
Firefoxはいろんな意味でギーク向けですね
まあある意味開発者気質の人にはいいですが

投稿: エン | 2013年6月20日 (木) 22時59分

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/201750/57625372

この記事へのトラックバック一覧です: プログラミング初心者にはJavaScriptがお薦め?:

« 鈴木隆「けんかえれじい 上・下」岩波現代文庫 | トップページ | ココログの背景色を変えるJavaScript動作検証 »