JavaとJavaScriptの「戦争」?

JavaJavaScriptの20年戦争」 http://wise9.jp/archives/2245

なんというか全体にこれはひどいネタ記事なんだが*1,なんでコレが絶賛されてるか分からん.*2

そもそもJavaJavaScriptを比較する時点でねえ...

さて、Javaだが、JavaC++の流れを汲む言語だ。

C++の源流は言うまでもなくCにあり、Cの源流はPascalFORTRANといった手続き型言語にある。
Javaが本格的に登場したのは1996年。

うーん,こういう書き方している時点で,プログラミングのことを全く知らないんじゃないかと思うくらいに酷い.


さらっと流しているが,「JavaC++の流れを汲む言語」と捉える人はそんなに多くないのでは.

「C系の表記+オブジェクト指向」というならJavaと近い部分もあるが,それだけならObjective-Cだってあったわけだし,C++Javaが特段に似ているとも思えん.むしろ「LISPの思想を取り入れた」とか「Smalltalk的な」という意見も見たことがある.要はその当時にあった言語の良い所を真似たわけで,C++との設計的思想的な共通項は意外なほど少ないと思う.

さらにこのとき、世はまさにNetscape vs Microsoftのブラウザ戦争の最中だった。

というかインターネットブームね.

Javaという新言語が普及する上でインターネットが後押ししたのは事実だろう.ブラウザ戦争があったかどうかは関係ない.

マイクロソフトはあわててJavaを独自に拡張し、Windowsでしか使えない機能を追加しようとした。実際、DirectXJavaから使えるようにする、なんていう話もあった。そんなことをするとどうなるか。Javaに互換性がなくなる危険性が生まれてくる。

これに対し、SUNは訴訟を起こす。

独自拡張が問題視されたのでは無く,標準機能に互換性がなかったことが問題視されたはず.

あとはお決まりの泥沼の法廷喜劇だ。

ところで「お決まりの法廷喜劇」って何さ?ぐぐったけど,この本のこと?

そんな造語で話を誤魔化すんじゃ無い.*3

ま、このあたりは事実誤認が含まれているかもしれないから、気になる人は各自@mkusunok先生に質問するように。

卑怯な逃げ方だよね.知らないなら「知らない」って書けばいいのに.*4 *5

JavaScriptを勉強することは正義となり、JavaScriptがきちんと動作しないブラウザは粗悪品となった。主にIEだが。

そうだっけ?この辺りは夢と現実の区別がついていないんじゃないかな.

その後もIE6がシェアの大半を占め,Web開発者/JavaScript開発者泣かせのブラウザとなったのは有名だと思うけどな.今ではIE6のシェアは随分と下がってきたとはいえまだまだ無視できないし,一部でサポート打ち切り宣言を始めたのもごく最近のことだよね.*6

JavaScriptが若干見直された気はするが,それはこんな酷い言語と酷い環境でも,そこそこ動くプログラムが書けるという部分であって,JavaScriptという言語自体ではないように思う.たとえるなら,どこかのサーカスで披露された「オンボロ自転車の曲乗りテクニック」が評価されたのであって,「オンボロ自転車」はやはりオンボロのままなのだ.

なにしろ職業Javaプログラマーというのは、情報学科卒でなくても、ヘタすると文系でも、数ヶ月の即席訓練で「ハイ一丁上がり」と認定され、現場に送り込まれてしまうたぐいのものだからだ。

いろんな意味で嘘.


日本企業ではどんな言語でも短期間の(例えば2週間の)研修だけで現場に放り込んだりするけど,そんな糞プログラマーJavaだろうと他のどんな言語だろうと役に立つはずが無いのは同じ.その問題は日本のSIビジネスの問題であって,言語の問題では無い.

そして世界的にはプログラマーが数ヶ月の即席訓練でプロになれないのは,Javaだろうと他の言語だろうと同じ.それはプログラミングの本質的な難しさの問題だから.

Javaは優れた言語であり、楽しい思い出も沢山あるが、多くのJavaプログラマがプログラミングそのものに喜びを感じているか、と聞かれたら自信をもってハイとは答えられない、そんな気がする言語でもある。

根拠無し.あんたが勝手にそう思い込んでいる,或いはそう思い込みたがっているだけでしょう.Javaはむしろシンプルで筋のいい言語だよ.*7

どちらにせよ、「ブラウザの中でしか動かないのがJavaScriptで、どこでも動くのがJava」と一言では語り尽くせない状況ではあるので

...開いた口がふさがらない.*8

というか,この人本当にJavaのことを知ってるのか?ひょっとして入門書も読んだことなければ,触ったことさえないんじゃないのか?どうもプログラマー的な発言がほとんど見られないんだけど.


あと,GmailにしろGoogle Mapsにしろ,クライアントサイドJavaScriptだけじゃなくサーバサイド*9もすごいことは忘れちゃいかんな.チャチなサーバでアレの真似をしたら,下手するとサーバが落ちてDoblogのようになってしまう.岡崎市立中央図書館は言うまでも無い.この人の不思議な所は目に見える表層的な知識しか持ってなくて,その裏側で動いている仕組みやソフトウエアのことを理解してないことだな.

http://b.hatena.ne.jp/entry/wise9.jp/archives/2245

  • id:vid 『Cの源流はPascalFORTRANといった手続き型言語にある』……?並列して存在と言う意味ならそうだが、PascalFORTRAN「から」だと違うよな。直接はB言語だし、ALGOLの系譜だし。Pascalは先行だから無いとは言えないけど……

FORTRANLISPはCと比較しても古い言語だから源流と言えば源流かもしれんけど.「バクテリアのような単細胞生物が人間の遠い祖先だ」みたいな感じで,それは間違いでは無くともあんまし意味は無いと思う.

そういえば,iアプリが10kbだったのも,ダウンロード時間の縛りなんだよね.*10

  • id:ryownet 「そう。実はFlashJavascriptは兄弟関係にあるのだ」は正しいけど、本家のECMAにAS3の元となったECMAscript4を廃止にされて、Flashさんは元エリートで現ニートみたいな扱いにもなっているよ
  • id:eims Ajaxに触れてXHRについて触れないのはMSが嫌いだからかな。あとBREWはそれほど地獄でもない。
  • id:charismanbou javascriptじゃないけど動画プレイヤーはQuickTime、WindowsMediaPlayer、RealPlayer三国志状態だったのに、気がつくとFlashがトップに立ってた。
  • id:aoneko---00 凄くよく出来たイソップ童話みたいで楽しく読める。IEvsNetscapeの時代が懐かしい…
  • id:jtw 三国志演義のような文章だ。虚実織り交ぜて面白さを演出しようとしているのかな。/すべて史実だと誤解する人が多そうでちょっと怖い。

コンピュータ史でなく時代劇と思えば悪くないかもしれない.「この物語はフィクションであり,実在の歴史的事件,裁判,プログラミング言語IT技術とは一切関係ありません」と言うのならね.


でも多くの人は,おそらく歴史だと思ってる.

  • id:kkamegawa 20世紀終わりごろJavaScriptを蛇蝎のごとく嫌っていた人たち、今どこ行ったんだろう(しつこい)。Google Mapというか、Ajaxがなぜ当時のブラウザで可能だったのかもうちょっと書いてもよかったんじゃ。

今でも普通に嫌いなのでは.

IE6の現役引退によってちっとは楽になったけど,JavaScriptがあまり筋の良くない言語である事実は変わってないから.*11

JavaJavaScriptは何も争っていない。」

http://d.hatena.ne.jp/m-prog/20110602/1306942497

20年戦争って…Javaは汎用言語。JavaScriptはブラウザ内で動くマクロ言語。お互いの領域が異なるのだから20年間の間に争ったことはない。
JavaにとってJavaScriptはブラウザでValidateを行ったり、メッセージを表示させたりするためのマクロ言語。
JavaにはJavaScriptプログラムとしてWEBアプリを生成するGWTなどのツールキットも存在しているし、互いに補い合って使うのが便利。

気になったのは次の部分。

JavaScriptではまだそのへんのノウハウが少ないため、下手な奴を仲間に入れると致命傷になりかねない(あまりに強力すぎるが故の問題とも言える)。

ノウハウの有無ではなく、大人数が協調して開発するだめの機能がJavaScriptに備わっていないことが問題。
JavaC言語の反省から、その辺りのライブラリ制御機能が充実し簡単に使えるようになっています。JavaScriptはクラス名などの衝突も回避できないレベルだと思ったけど…。

同意.

クライアントJavaScriptAjaxを使う時って,サーバーにはJavaRubyPHPなど他の言語と組み合わせるのが普通でしょう.すくなくとも「敵」ではないよね.

*1:というかFUDって奴?

*2:内容の真偽には触れずに「とても面白かった」「わかりやすい」と素人に絶賛されて,玄人に酷評されるあたりは,憂鬱本の書評とそっくりだ.

*3:例のJava裁判はMSが法廷で完敗した数少ない裁判で,その後MSがJavaからの完全撤退を決めることになる歴史的に大きな意味を持つ事件だったと記憶している.その後,SUNとMSが和解してJavaが再びWindowsに標準搭載されるまでには長い時間がかかった.

*4:ひらたくいうと,おそらくこの人はJavaに関するMS裁判について基本的なことも知らないし調べてない.それで歴史について自分の願望に脚色して書いてるだけ.かなり悪質だろう.

*5:「このあたりは」じゃなくて「このあたりも」か「このあたりは特に」だよなあ.

*6:2010年2月前後ってとこか。
http://slashdot.jp/it/article.pl?sid=10/02/01/064244
http://slashdot.jp/it/article.pl?sid=10/11/11/0446211

*7:使っていて悲しくなる言語と言えば,COBOLを除けばPHPJavaScriptが双璧を成しそうなんだが.これは,いずれも言語の設計思想や実装に問題があるという理由による. http://www.rubyist.net/~matz/20080126.html#p04

*8:JavaJavaScriptは,インドとインドネシアくらい違う」という格言(?)もある。「インドとインドネシアの500年戦争」ああ,なんと壮絶な戦い(棒読み).

*9:おそらくJava.堅牢且つハイパフォーマンスなサーバーサイドアプリを作る上でのデファクトスタンダードだろう.

*10:東京めたりっく通信なんて,若い人は覚えてないのかな.

*11:世の中にはPHPという,もっとヒドイ言語もまかり通っているから目立たなくなったというのもあるかもしれない. http://d.hatena.ne.jp/JavaBlack/20091031/p1