JavaScriptは「勉強しなくてもOK」な言語なのか? [ javascript ]

勉強しなくてもOK?

それは素晴らしい!

うん。勉強(努力)しないで使えるならそれに越したこと無いよなあ。

テキストエディタとブラウザがあればどこでもプログラムが組める、というのがJavaScriptのいいところだと思う。テキトウに組んでもそれなりに動くことにかなり救われている面もあるだろうなあ、きっと。

『パーフェクトJavaScript 』――JavaScriptは「勉強しなくてもOK」な言語なのか?

 前世紀、JavaScriptは「ホームページのおまけ」として使われる言語だった。
……
 あれから十余年。今やJavaScriptはどこにでもある。Webアプリケーションの中核的な動作を担っていることだって少なくない。WebブラウザでJavaScriptをOffにする? あのWebサイトもこのSNSも、まったく閲覧できないじゃないか!

ていうか深く掘り下げないで使える程度で満足できるのなら、それはそれでいいんじゃないですか?

■「みんな勉強しなくてもできると思ってる唯一の言語だよね」?

 一方、著名なJavaScriptプログラマのDouglas Crockford氏は、こんな恐ろしくも的確な発言をしている。

JavaScript is the only language that people think they can program without actually learning it.

 え、日本語で? OK、筆者の同僚による日本語訳を紹介しよう。

JavaScript はみんな勉強しなくてもできると思ってる唯一の言語だよね、HAHA

 日本語訳でも恐ろしい。何が恐ろしいって、冗談ではなく一定の真実を含んでいるところが恐ろしい。jQueryとプラグインを導入してちょっとハデめのUIが動いてしまうと、それだけで「JavaScriptプログラミングをした!」と思ってしまう層が、確かに存在するからだ。

Douglas CrockfordさんってJSONの発見者だったっけ。

思ってることが本人や周りの人にとって非常に迷惑になる、という話なのかな?

…ああ、JavaScriptで初めてプログラミングに触れて、『jQueryとプラグインを導入してちょっとハデめのUIが動いてしまうと、それだけで「JavaScriptプログラミングをした!」と思ってしまう』という勘違いをしてプログラマーを気取ってしまうとどえらく恥ずかしいかも知れない。うん。

個人的にはJavaScriptをはじめとした軽量プログラミング言語の 『裏を返せばいくらでも「ゆるふわ」コードや「カオス」コードを書くことができてしまう。』というところは大好きだけど、そこだけの知識でプロを気取ってしまった人を相手に仕事をしたいと思わないのもまた確か。

勉強という言葉からは、嫌いなことを必死で「くそまじめに」やる、という印象を受けてしまうから『勉強しなくていい』がステキに感じるのですね、きっと。好きな事を習得するのは自分の中では『勉強』という言葉は使わない。プログラミングを『勉強』する人って、それが『勉強』だと認識する時点できっと楽しくないよね…まあ世の中好きなことをやってそれで生きていける人は少ないわけで、今一線で活躍するプログラマであろうとすると『勉強』しなくちゃいかんと思うと、プログラミングが嫌いになりそうで嫌だなあ。

と、書評を読んでとりとめもないことを考えてしまいましたとさ。

マウスが重なったときに画像のサイズを変える [ html / javascript ]

画像をはじめからでかでかと表示するのはいやなんだけど、必要に応じて拡大したい。

そんな希望を実現する方法で、簡単に埋め込めるのでお気に入りだったやり方を思い出したので忘れないうちに備忘録。

imgタグのonmouseoverとonmouseoutに直に簡単に仕込むだけ。エフェクトとかなくて味気ないけどライブラリも別のスクリプトも不要。スクリプトタグを跳ねるようになっているブログでもこのくらいなら使える可能性高いのではなかろうか。

MapsGL - GoogleマップのWebGL対応版 [ WebGL ]

誘われたら試したくなるのが人情。

テキスト行を結合する [ javascript ]

ふとテキスト中の改行を削除して一行に結合するコードを作りたい、と思ったのがきっかけ。
通常ならStringのreplaceを使うことしか思いつかないのに、たまたまどこかのサイトでsplitとjoinを使って文字列を置換する方法を見ていたのでどっちでやるのがいいのか気になって比べて見ることにした。

replaceを使う:

文字列.replace(/\n/g, "")

split & joinを使う:

文字列.split("\n").join("")

『正規表現って何か遅そうだからsplit&joinを使うほうがクールで速い』が一般論として成り立つんじゃないかと思って性能を測ってみたけど、ブラウザによってまちまちな模様。

手元のパソコンでのテキトーな測定結果(1秒間に何回変換出来たか):

Chrome15Opera11Firefox7IE10
split&join 436753 305781304930 146187
replace923907 341391271214 189233

どちらがいいとも言えない結果になってしまった。replace侮りがたし。Orz

一番いいところを取るならreplaceなんだろうな。split&joinが勝ってるケースでは差はあまり大きくないことだし。

それにしてもChrome他のブラウザをぶっちぎって速いな!これを基準にしてると他の環境で実行したときにハマりそうで怖いくらいだ。

あと…ええと…もちろん、一面を評価したに過ぎないですけど…もうちょっと頑張って欲しい>IE

Dart Webアプリケーションの開発を想定したプログラミング言語 [ Dart ]

Perlは大好きだけど、実際にシビれたのは少し使ってみた後でした。
Pathologically Eclectic Rubbish Lister(病的折衷主義のがらくた出力機)の略という説を聞いてますます大好きになったので、先にこの略を聞いていたら、使ってみる前からワクワクしたかも知れない。

新しいプログラミング言語。
そう聞いただけでワクワクしなくなったのはいつからかな。
Cにはワクワクしました。主に、失敗はプログラマに跳ね返る、超硬派なプログラミング言語である、という点に。

でもC++等の派生物にはワクワク感が無い。
Javaにもなかったなあ。
Javascriptも、ブラウザとテキストエディタだけあればコード組んで遊べるから、という理由で使ってみてからシビれたんだものね。。

あ、Dはちょっとワクワクしたかも。使ってみる機会が無いのでシビれてないけど。

そしてまた一つワクワクしない言語が発表されたようで。
Dart : Structured web programmingグーグル、新言語「Dart」を発表。JavaScriptのようなWebプログラミングを想定
グーグルは10月10日、予想されていた通り新言語「Dart」を発表しました。

DartはWebアプリケーションの開発を想定したプログラミング言語。実行方法として、JavaScriptに変換してWebブラウザ上で実行する方法と、専用の仮想マシンを搭載したWebブラウザで実行する方法が予定されています。グーグルはChromeにDartの仮想マシンを搭載する計画を検討中であることを明らかにしています。 Dartの設計方針は次のように説明されています。
Dart : Structured web programming」のサンプルを見ても、これで何がどうJavascriptよりいいのか分からないもうろくした感じの今日この頃…

確かに名前がJavaと紛らわくないという一点においては、無条件にJavascriptより優れていると言わざるを得ない。
他はツールを作りたい人たちを除いてなにかメリットがあるのかしらん。

構文がCっぽくて、静的なクラスだのインスタンスだの継承だのそんなのでプログラムを作りたいのなら、Javaでいいんじゃないの?個人的には嫌いだけど、大規模な開発にはむいてるんでしょ?今でもJavaアプレットって動くんだよね…:p

うまく広まれば、ブラウザとテキストエディタだけあればプログラムが組める言語の選択肢が増える、というのはいいところかも。
実際に使ってみたらシビれるところが分かるかな。

テーブルの列幅を均等にする [ CSS / html ]

ポイント

  • スタイルシートで「table-layou」tプロパティを「fixed」に設定。
  • テーブルの横幅を指定する。(横幅を指定しなくてもテキトウに揃えてくれればいいのになあ)