2007年8月29日水曜日

JavaScript入門.ちょっと本気でやってみるかなぁ.#1

Ajaxという言葉によって再興したJavaScript.Webアプリケーションプログラマ(日曜プログラマと置きかえてもいいけどw)として,やっとかないとなぁ感がでてきた.

さて,そのJavaScript,悪い言語じゃないと僕は思う.始めてプログラミングをする人にぜひおすすめしたい.オブジェクト指向プログラミングできて,その仕組みはシンプルで,処理系がOS付属のブラウザについてくるということで始めやすい.また,結果がグラフィカルに返ってくるし,そもそもWebに使うものだから実用的.プログラミングの勉強へのモチベーションも保ちやすい.JavaScriptから始めて,そのあとにJavaなんかを勉強したら幸せになれるんじゃないかな.

しかしながら,いろいろと問題はありそう.JavaScriptが悪とされてたころは,DOMやBOMなんて言葉はなく,文法を教えているサイトも皆無で,「こう書けばこう動くから君のWebページに貼り付けるといいよ.」といったかんじのコードが横行していた.それよりはお行儀がいいが,結局は「こういうライブラリがあるからこうやって使おう.」というような流れになっている.JavaScriptの現状はまだ不安定だ.

そんな現状になっているのも,XHTML+CSS+JavaScriptというものを学ばなければならないってことの影響だと思う.3つ同時にというのは大変だし,そもそもXHTMLがわかってないとJavaScriptでどーのこーのできない.アクティブなページを作るには,CSSもわからないとまずい.それによって,JavaScriptが後回しになったり,どれも中途半端になったりして,いつまでたっても初心者から脱出できない状態におちいる.(僕のことだねw)なので,JavaScriptだけを本気でやってみることにした.

ということで,JavaScriptをブラウザではなくインタプリタで動作させて,文法を叩き込む方向でいこうと思う.初心者におすすめな理由と矛盾してるけどねw使用するインタプリタは,Rhino

あっ,いまさらだけど,僕の入門の話で,解説ではないことに注意してねw

Rhinoをつっこむところとかもろもろ省略して,今回書いてみたプログラム.とりあえず,お約束の階乗計算プログラムね.
/*
* factorial.js
*/
function factorial(n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}

print("10! = " + factorial(10));


実行結果は次のとおり.
$ java -jar js.jar factorial.js
10! = 3628800
$


例によって,FizzBuzzプログラムも.
/*
* fizzbuzz.js
*/
for (i = 1; i <= 100; i++) {
if (!(i % 3) && !(i % 5)) {
print("FizzBuzz");
} else if (!(i % 3)) {
print("Fizz");
} else if (!(i % 5)) {
print("Buzz");
} else {
print(i);
}
}


実行結果は省略.

んー,林檎生活100: Tcl入門.ちょっといじってみた.と大差ないなwこんな簡単なんじゃダメっぽい.もうちょっとJavaScriptのおいしいところをだしていければいいなぁ.

追記(2007年8月30日):
print()は,Rhinoの定義済み関数なんで,ブラウザじゃ動作しない.ブラウザでの実行のときは,alert()に置き換えれば動作するんじゃないかな.未確認だけど・・・.

追記(2007年9月13日):
オブジェクト指向型言語と書いたが,オブジェクト指向プログラミング可能な言語であって,オブジェクト指向型言語とは言い切れないかんじなので,修正した.

0 件のコメント: