自分で書いて,しくみを理解!
便利すぎる今こそ,頭と手を鍛えよう!
えっ!?いまさら手入力だなんて!?と思うかもしれません。効率や生産性に逆行しているように思えるかもしれません。最近の開発環境はコスト・パフォーマンスに優れ,優れた無償のツールもあります。ところが,こんなご時世だからこそ,手入力が有効なのです。
便利さに依存していたのでは,基本を理解できません。プログラムが動いた時の感動も薄く,応用が利きません。
本稿で取り上げるプログラムは,さしずめ,シンプルな「おむすび」の作り方のようなものです。炊飯器(パソコン)とお米(ブラウザ)と塩(テキスト・エディタ)さえあれば簡単に学べます。シンプルな塩むすびだって,自分で作ると,何倍もおいしく感じられ,感動するものです。そして,ジャコを混ぜてみようとか,薄焼き玉子でくるんでみようとか,アイデアがわくようになります。基本を知っていればこそ,同じご飯ものである,いなり寿司やきんぴらバーガーを作る必要が生じても,戸惑いません。出来合いのおむすびを買うことしか知らない人なら,悩んでしまいます。
プログラミングも同じです。自分が書いた命令通りにプログラムが動作すると,うれしいものです。プログラミングっておもしろいな,という気持ちが,コードの組み合わせ方や,新しいアイデアにつながります。基本を知っているからこそ,新しい技術にも取り組みやすくなります。最近,さらに基盤となるコンピュータの仕組みを伝える記事も増えていますが,これも,同じ理由からでしょう。
出来合いのコードを理解することなく簡単に利用して済ませることは,逆に言えば,誰にでも,類似のものを作れるということです。そんな作業「だけ」を続けていて,モチベーションを維持できるでしょうか?息切れせずに仕事を続けていくには,「自分にしか作れないもの」を,少しずつ増やしていかなければならないのではないでしょうか。
手入力ができる実力を養ったうえで,ツールを使いこなすことができれば,鬼に金棒です。本稿では,無料の技術を使った,ほんの数行の小さなコードから取り上げていきます。仕事の合間に,箸休めのように,気軽な気持ちで取り組んでみてください。本連載の合言葉は「スローなコードで行こう!」です。
スクリプトを書く準備
~まずは,ひな型のXHTMLファイルを作る~
本稿では,テキスト・エディタひとつでのプログラミングを紹介します。エディタは,Windowsに付属する「メモ帳」でも何でもかまいません。
スクリプト言語は,JavaScriptを使います(図1)。ブラウザは,Windows版Microsoft Internet Explorer(IE)7.0およびMozilla Firefoxバージョン2.0.0.1で,表示を確認していきます。一部,IEのみで動作するものも取り上げる場合に限り,サンプルタイトルの横に対応ブラウザ名を明記しますので確認してください。
![]() |
図1●スクリプト言語の変遷(普及時期による) [画像のクリックで拡大表示] |
次回から,スクリプトを書く実践に移りますので,今回は,ひな型のXHTML(*1)ファイルを作っておきましょう。リスト1のように入力して,「ひな型.html」のような任意のファイル名を付けて,リスト中に指定した文字コードで保存しておいてください)。(*2)。
|
Web標準に関心がある人なら,XHTMLにもなじみがあるとは思いますが,本サイトを初めて訪れる読者のために,XHTML1.0の基本ソースであるリスト1について,少し補足説明をしておきます。
DOCTYPE宣言は,HTML同様,strict,transitional,framesetの3種類があります。本稿では,フレームも,非推奨のタグも使いませんから,strict(ストリクト)を宣言しています。そして,文字コードは,Shift_JISを使っています。現在普及しているブラウザでは,文字コードをShift_JISではなく,例えば,UTF-8を指定して保存すると,文字化けの発生するケースがあるからです。
XHTMLのタグは小文字で書きます。また,HTMLをXMLで再定義した仕様ですから,ウェル・フォームド(整形式)になるように,開始タグと終了タグは,きちんと入れ子にしましょう。 HTMLでは,終了タグが省略できたり,不要なものもありますが,XHTMLでは必須です。 <hr>は<hr/>,<img src="hoge.gif" alt="hoge">の場合は <img src="hoge.gif" alt="hoge" />のように書きます。 さらに,属性値は,ダブルクォート(")で挟みましょう (*3)。
3大スクリプトの作法の違いを把握しておこう
先に書いたとおり,本稿ではスクリプト言語としてJavaScriptを使います。ただ,読者には,スクリプト言語としてVBScriptやJScriptに親しんでいる人もいることでしょう。そうした方々のために,注意点を簡単に挙げておきます。基本的には同じですが,ちょっと記述方法が違います(図2)。
|
|
図2●VBScript,JScript,JavaScriptの違い |
具体例で,コーディング上の違いも把握しておきましょう。リスト2は,「Hello DynamicHTML!」と表示するコードを,VBScript,JScript,JavaScriptで,それぞれ記述したものです。
|
リスト2● |
これらのコードからわかるように,JScriptとJavaScriptについては,<script>のtype宣言以外の記述方法は同じです。このような簡単なコードの場合は,使用されているメソッド(alert)がJScriptやJavaScriptに共通ですから,JScriptのtype宣言部分をJavaScript向けに変更するだけで,IEだけでなく,Firefoxでも動作するようになります。
まだまだ現役で活躍している,古い技術がある
さて,スクリプトを書くための準備ができたところで,ちょっとお耳を拝借。皆さんは,リッチ・クライアントを開発するための手法である「Ajax」をご存じのことと思います。実はAjaxは,Firefoxなどの上で動作するXMLHttpRequestオブジェクト,IE上で動作するActiveXObject("Microsoft.XMLHTTP")と,JavaScript,DynamicHTML(DHTML)という,昔からある技術の組み合わせなのです。
XMLHttpRequestは6年以上も前に使われていました。今年の7月にはMicrosoftがXAML(*6)の書き出しをサポートするWeb制作ツール・スイート「Expression Studio」をリリースする見込みですが,図1のように,MicrosoftのWeb技術は,ActiveX→DynamicHTML→DirectAnimarion→(DirectX)→Chromeffects→XAMLのように発表されてきています。おおもとの技術は,少しも古びていないのです。JavaScriptだって,いわずもがなです。それらの“古い”技術が,今も,現役で使われています。
FlashやSpry(*7)が全盛ではありますが,ちょっとしたオブジェクトの移動やビジュアル効果なら,スクリプト・ベースでじゅうぶん可能です。また,ブラウザを特定する場合は,ノード数が多くないXMLデータの処理であれば,スクリプトでカンタンにできてしまいます。
次回からは,リスト1のひな型のXHTMLファイルを使って,スクリプトによる処理を,紹介していきます。ここ数年,プログラムを始めた学卒者や若い人たちには,初耳のこともあるはずです。知っていれば,ちょっとイバれる?かもしれませんよ。お楽しみに!