« NetBeansがRuby開発環境に向いている | トップページ | 【JavaScript】Kanasan.JSの資料 »

2007/11/23

JavaScript第5版読書会#1

JavaScript第5版読書会#1へ行ってきた。
大阪で平日の夜なのに、18時半には30人以上も集まっていたよ(驚)
読書会の内容は、JavaScriptの辞書である通称「サイ本」を最初から読むこと。

3時間の議論はすごく中身が濃かった。
その時の感想をメモ。

【1】JavaScriptは、他の言語と文法が微妙に違う所を認識していないのが、バグの温床になる

変数、メソッド、オブジェクト、配列、ハッシュなど、最初から読むが、僕には退屈。
20章「HTTPによる制御」にあるAjaxを早く読みたかった。

でも、主催者のkanasanから、Ajaxでバグにはまる原因はJavaScriptの文法をきちんと理解していないからですよ、と言われた。

確かに、JavaScriptのブロックは、CやJavaと異なる。
つまり、IF文などの制御構造で定義したローカル変数は、グローバル変数に近い。

また、暗黙の型変換をすごく多用する。
よくあるパターンは、変数に「!!」を使うと論理型へ型変換する。
prototype.jsでも「!!」は良く出てくる。

【2】JavaScriptのオブジェクトは、インスタンスそのもの
  ~nullでなくundefinedがある理由

JavaScriptのオブジェクトは、ハッシュに近い。
つまり、image.width と image["width"] は同じ。
これによって、プロパティを動的にいじることが出来る。

また、オブジェクトのプロパティにfunctionを設定できる。
つまり、データと関数は同じ意味を持つ。
Ajaxでも、HTTPリクエストのプロパティへ手続きを設定する仕組みを使う。
例えば、GMailのように、ブラウザをリフレッシュせずに非同期でサーバーから最新メール情報を取得する。

JavaScriptのオブジェクトは、コンストラクタをあまり意味がない。
何故なら、必ずインスタンスがあるから。

thisオブジェクトは神様みたいなオブジェクト。
ブラウザ上では必ずオブジェクトはあるみたい。

JavaScriptでは、JavaのNullPoniterExceptionに当たるエラーとして、undefinedが良く出る。
これは、該当するインスタンスが見つからないと言う意味。

また、JavaScriptの継承は、プロトタイプチェーンと呼ぶ。
JavaやC++、Rubyの継承とは異なる。
この辺りも面白い。

【3】最近のWeb開発のトレンドがサーバーサイドからリッチUIクライアントへ移行しつつある

Ajaxが出現するまで、JavaScriptは使えない言語だった。
メモリリークは良く出るし、ブラウザ依存だし、使い勝手が悪かった。
でも、Web開発のトレンドがサーバーサイドからリッチUIクライアントへ移行しつつある今、JavaScriptは重要な意味を持つ。

Googleがやり始めたことは、リッチUIクライアントを操作する言語としてJavaScriptを使い、サーバーサイドからUIクライアントのJavaScriptソースコードを自動生成する仕組みを導入したこと。

Google Web Toolkitも発想は同じ。
Railsにある、RJSも全く同じ。

この発想は、JavaやRubyが、JavaScriptという他言語を生成するという、いわゆるメタプログラミング。

でも、サーバーサイドがクライアントよりも主導権を握るという従来のWeb開発スタイルは踏襲している。
この流れならば、リッチUIクライアントであろうとも、サーバーサイドから制御できるだろう。

Web開発のトレンドは今、JavaScriptが表舞台にいるのかもしれない。

【番外編】
JavaScript 第5版」によく出てくるリファレンス本は下記になる。
持っておくと便利かも。

|

« NetBeansがRuby開発環境に向いている | トップページ | 【JavaScript】Kanasan.JSの資料 »

プログラミング」カテゴリの記事

コメント

読書会お疲れさまです。今回の読書会は、Kanasan.JSで対応できなかった初心者・初級者に、どう対応するかを思案した結果、開催されたものです。このため、途中の章からではなく最初からの通読となっています。Ajaxの章、読みたいですよね。私も読みたいです。ただ、最初からコツコツといくことが主催者の責務だと思っています。御理解頂けますようお願いします。
それでは。

投稿: kanasan | 2007/11/24 09:24

>kanasanさん

レスありがとうございます!
JavaScriptの基本も知らなかった自分にとって、非常にレベルが高く面白い勉強会でした。
こちらこそよろしくお願いします\(^o^)/

投稿: あきぴー | 2007/11/25 10:00

コメントを書く



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


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: JavaScript第5版読書会#1:

» JavaScript第5版読書会#1参加者の参加報告の一覧 [Kanasansoft Web Lab.]
新規投稿も落ち着いてきたようなので、一覧にまとめます。 JavaScript第5... [続きを読む]

受信: 2007/11/25 17:11

« NetBeansがRuby開発環境に向いている | トップページ | 【JavaScript】Kanasan.JSの資料 »