不具合農場 地獄の大豊作不具合様は本日もすこやかなれば、本日も大豊作なり。 不具合様には不具合をお供えすべし。 今日もお供え物作ってますか? |
トップへ戻る ブログのトップへ戻る Word Press |
|
不具合道楽 地獄のフルコース不具合御飯 不具合味噌汁 不具合満漢全席 | ||
コンピューターのはらわた無修正大公開 | ||
不具合設計局キャンペーン中 |
2008-06-20 (Fri)
_ [日々の生活] 仕事:JavaScript
JavaScriptは少し使う程度なら簡単な言語で、C言語が分かる人間なら見よう見まねでなんとかなります。私もそのクチで、正確な仕様は知らない状態で使っていました。今回のプロジェクトではJavaScriptをこれでもかというくらい駆使します。あちこち検索していたら、詳しい仕様書を発見。
http://developer.mozilla.org/ja/docs/JavaScript
メソッド内において{}で括ることでそこだけで有効な変数スコープを作るという機能はないんですね。てっきりあるものだと思ってコードを書いていました。あと、昔のC言語は関数の先頭でしか変数を宣言できないという縛りがありましたが、JavaScriptもこれに近い縛りがあります。メソッド内におけるローカル変数というのはメソッド内のどこからでも参照できてしまうのです。(以下のようなコードはOK。順番が逆になっているがローカル変数はメソッド内のどこからでも参照できるという仕様による) なんでこんな仕様にしたんだよと…。
alert(a);
var a = 0;
JavaScriptは型に対して非常にルーズな言語で、プログラマーがコンパイラやインタプリタに代わってデータ型を管理する必要があります。データ型の管理なんてやったことがないので、かなり負担です。あと、C言語ならコンパイルするときに出てくるエラーがJavaScriptでは実際に実行しないことには出てこず、これも負担です。GoogleなんかはGoogleDocsでJavaScriptで凄い物を作っていますが、よくもまあ作るものです。JavaScriptでは大きくて複雑なものを作るのはかなり難しいというのが実感です。
一応、JavaScriptにもいい点はあって、連想配列なんかはなかなか使い勝手がいいです。ただ、新しい要素を作る際は明示的に宣言しなければならないようにして欲しいです。要素を参照する際の参照名が綴りミスしたというだけでももうだめなんですから…。
JavaScriptはいい言語ではありますが、複雑なものや大きなものを作りやすくする工夫がないのは言語としてはかなり難点です。インタプリタ型言語であることを最大限に生かしているというのは評価できるのですが、インタプリタ型の欠点まで持ち込んでしまっています。
[ツッコミを入れる]