まずこの本の対象者ですが、Javaをメインで使う大学生なら1〜2年生といった所です。その後はもっと高度な事を学ぶので、この本を読むまでもなく自力で理解できてしまう部分も多々あります。ある程度熟練したJavaユーザーなら、英語からの和訳本ですが「Javaの落とし穴」の方がいいです。こちらはもっと高度な内容も載っています。 社会人の人なら、他の言語を使っていて仕事上Javaに乗り換える必要が出来た人でしょうか。 内容自体は言語仕様からJavaの内部動作、そしてちょっとしたテクニックまで、実に的確です。 しかし何分昔の本なので、Javaには列挙型やジェネリクスが無い云々といった事は完全に時代遅れになっています。まあ、前橋氏と同じように考える人が多かったからこそ、こういった部分が後のJavaで改善されたんでしょうけど。 最後にこの本(というよりこの人)の文体ですが最低です。Javaが嫌い、Cは好きといった主張は分かりましたが、いちいち鼻につく言い回しです。人間、やりたい仕事だけやってられる人なんてそういないんですし、こういった姿勢はプロとしてどうなんでしょうか。「プログラマー=オタク風潮」「オタクが嫌われる」といった事の原因が分かった気がします。 もし前橋氏にもう一度本を書くつもりがあるなら、まつもとゆきひろ氏の「オブジェクト指向スクリプト言語Ruby」を見習ってほしいです。この本も様々な言語やツールに対する批判や皮肉が多く見られますが、不思議と腹立たしさは感じません。人を見下した発言が少ないからでしょうか?あっても読者(というか私?)が共感できるからでしょうか?自ら言語を作り出したという自信が文章ににじみ出ているんでしょうか?はたまたサンプルコードの解説の途中、今正に読者が勉強中と言う時に下らない嫌味や自慢話が始まったりしないからなんでしょうか?
数年前にリリースされたJava5.0で、Javaには多くの仕様が追加されました。具体的にはジェネリクス、列挙子といった内容を含み、それらはC++ではおなじみでもJavaには新機能となったものでした。 本書には、Javaには不満がある、それは、という調子で、前述の機能の欠如を指摘した部分がかなりあります。つまり、今となっては古くなってしまった内容が、実はあります。感心するべきは著者の当時の批判の確かさです。が、それは現在読む価値があるのか、というとまた別の話でしょう。 本書の、それでも参照型についての説明は古くならないし、古くなった部分とともに読まれなくなるのは惜しいと思います。Cのポインタを理解している人にはJavaの参照型についての非常にいいガイドになります。 またメソッドを単独で使用する意味なども、だめな入門書がよく説明をとばす部分ですが本書はしっかり説明しています。こうした所も著者の観点の確かさと私は思います。 Javaの学習書の二冊目を探している人が古書店で見かけたのなら買うべし、でしょうか。
「Javaにはポインタがない」というのは間違っている。そして、「Javaにはポインタがある」というのも 間違っている。この問題に答えるにはポインタの定義について熟考しなければならない。そして、C/C++での ポインタとJavaでのポインタは意味が違うことを理解しなければならない。だが、本書ではJavaはポインタの 言語だと安易に断定している。これは非常に誤解を招く表現で危険である。 著者の文体には問題があり、意図的な嘘や感情的な表現が渦巻いている。たとえば、例外出力に 「NullPointerException」という語句がでてくるからJavaにはポインタがある(88ページ)というのは いくらなんでも乱暴だ。また、著者はポインタと参照が違うことを知っていながらあえて知らないふりを しているが、こんなやり口は読者をバカにしている。私には著者がこのような物言いをする理由はわからなくも ないのだが、やはりやってはいけないことだ。 本書の内容自体はじつに的確で、本質を突いた指摘も多い。たとえば、2.5章(137〜144ページ)にあるJavaでは オブジェクトの実体を扱わない理由の説明はまったく素晴らしい。それなのに、直後の2.6章(145〜148ページ)は とたんに幼稚になってしまう。こういう子供じみた文章はわざとやっているのだろうし、こういうのを面白がる 読者もいるだろう。だが私は嫌だ。これではせっかくの内容が台無しだ。 「Javaにポインタはあるか?」という質問は頻繁に見かけるが、これは質問自体が不適切であり無効である。 それがこんなにはびこってしまったのは前橋氏に原因がある。「Javaにポインタがない」という間違った説明を 否定したいがために「Javaにポインタがある」という逆の嘘を広めてしまったために、上記の愚問が広まって しまったのだ。 本書は、本質を見抜けばJavaに対する深い洞察が得られるが、大部分の読者は誤読してしまうのではないだろうか。 前橋氏の著作にはこういう傾向がよく見られるのだが、本書は特にひどく、度を越している。よって残念ながら 最低の評価を下さざるを得ない。
入門書の次に読むのにいいと思った。今までわかっていなかったことが,思いがけず理解できてかなりすっきりした気分になれた。 Javaには従来の言語とは明らかに違う,独特の「書き方」があるが,そのような点をすべて押さえていて,この本の内容をある程度理解し,覚えてしまえば,その独特の「書き方」に戸惑うことはないだろうと思う。 Javaを使う上で非常に便利な1冊だ。
率直な感想は、非常に良い本です。まずJavaを一通り勉強し終えて、多少C言語の知識のある方にお薦め、いえ、必読です。 まず本書について誤解のないよう前提としていただきたいことは、本書は別にJavaのプログラミング入門やリファレンスでもなんでもないし、「Javaはすばらしい!」という啓蒙を謳っている本でもないです。それとは逆に、むしろJavaという言語を完膚なまでに否定しているように感じます。 それではなぜこんなにお薦めするのか?その前に、逆に皆さんに問いたいですが、皆さんはある物事を一通り勉強し終えて、その物事に対する洞察を行う際に、勉強した考え方・思想が「絶対正だ」と考えますか?「この考察は間違っているかもしれない」と考えますか? 私は、後者の発想の方が、圧倒的にその物事に対する洞察および理解が深まると考えます。なぜなら、「絶対正だ」と考えることは、その物事に対する洞察を放棄することだからです。日本でよく言われる、「詰め込み教育」が良い例ではないかと考えます。逆に批判的に考える、ということは、勉強した思想・考え方を自分なりに吟味し整理していった結果、自分なりに判断した考察を生み出すわけです。 前置きが長くなりましたが、本書です。 本書は、世の中に非常に良く見かける、所謂「Java入門書」とは180度違う観点から、Javaという言語に対して洞察しています。例えば、普通の「Java入門書」ではJavaがポインタを隠蔽していることは書かれていません。むしろ、気が狂ったかのようにポインタについて触れようともしません。しかし本書の場合、「Javaはポインタの言語だーJavaにはポインタ「しか」ない」として議論を進めています。こういった思考は、現場技術者の間では頻繁になされる議論ですが、Javaの入門書みたいなものには絶対に載らないです。 上述の「ポインタ」以外にも、「オブジェクト指向」「継承」「インタフェース」「パッケージ」「スレッド」といった、Java(=オブジェクト指向言語?)特有の技術に関して、様々な洞察がなされています。 Java言語に対して、あなたの理解をより深めるために、本書は「必読」です。
まずこの本の対象者ですが、Javaをメインで使う大学生なら1〜2年生といった所です。その後はもっと高度な事を学ぶので、この本を読むまでもなく自力で理解できてしまう部分も多々あります。ある程度熟練したJavaユーザーなら、英語からの和訳本ですが「Javaの落とし穴」の方がいいです。こちらはもっと高度な内容も載っています。
社会人の人なら、他の言語を使っていて仕事上Javaに乗り換える必要が出来た人でしょうか。
内容自体は言語仕様からJavaの内部動作、そしてちょっとしたテクニックまで、実に的確です。
しかし何分昔の本なので、Javaには列挙型やジェネリクスが無い云々といった事は完全に時代遅れになっています。まあ、前橋氏と同じように考える人が多かったからこそ、こういった部分が後のJavaで改善されたんでしょうけど。
最後にこの本(というよりこの人)の文体ですが最低です。Javaが嫌い、Cは好きといった主張は分かりましたが、いちいち鼻につく言い回しです。人間、やりたい仕事だけやってられる人なんてそういないんですし、こういった姿勢はプロとしてどうなんでしょうか。「プログラマー=オタク風潮」「オタクが嫌われる」といった事の原因が分かった気がします。
もし前橋氏にもう一度本を書くつもりがあるなら、まつもとゆきひろ氏の「オブジェクト指向スクリプト言語Ruby」を見習ってほしいです。この本も様々な言語やツールに対する批判や皮肉が多く見られますが、不思議と腹立たしさは感じません。人を見下した発言が少ないからでしょうか?あっても読者(というか私?)が共感できるからでしょうか?自ら言語を作り出したという自信が文章ににじみ出ているんでしょうか?はたまたサンプルコードの解説の途中、今正に読者が勉強中と言う時に下らない嫌味や自慢話が始まったりしないからなんでしょうか?
数年前にリリースされたJava5.0で、Javaには多くの仕様が追加されました。具体的にはジェネリクス、列挙子といった内容を含み、それらはC++ではおなじみでもJavaには新機能となったものでした。
本書には、Javaには不満がある、それは、という調子で、前述の機能の欠如を指摘した部分がかなりあります。つまり、今となっては古くなってしまった内容が、実はあります。感心するべきは著者の当時の批判の確かさです。が、それは現在読む価値があるのか、というとまた別の話でしょう。
本書の、それでも参照型についての説明は古くならないし、古くなった部分とともに読まれなくなるのは惜しいと思います。Cのポインタを理解している人にはJavaの参照型についての非常にいいガイドになります。
またメソッドを単独で使用する意味なども、だめな入門書がよく説明をとばす部分ですが本書はしっかり説明しています。こうした所も著者の観点の確かさと私は思います。
Javaの学習書の二冊目を探している人が古書店で見かけたのなら買うべし、でしょうか。
「Javaにはポインタがない」というのは間違っている。そして、「Javaにはポインタがある」というのも
間違っている。この問題に答えるにはポインタの定義について熟考しなければならない。そして、C/C++での
ポインタとJavaでのポインタは意味が違うことを理解しなければならない。だが、本書ではJavaはポインタの
言語だと安易に断定している。これは非常に誤解を招く表現で危険である。
著者の文体には問題があり、意図的な嘘や感情的な表現が渦巻いている。たとえば、例外出力に
「NullPointerException」という語句がでてくるからJavaにはポインタがある(88ページ)というのは
いくらなんでも乱暴だ。また、著者はポインタと参照が違うことを知っていながらあえて知らないふりを
しているが、こんなやり口は読者をバカにしている。私には著者がこのような物言いをする理由はわからなくも
ないのだが、やはりやってはいけないことだ。
本書の内容自体はじつに的確で、本質を突いた指摘も多い。たとえば、2.5章(137〜144ページ)にあるJavaでは
オブジェクトの実体を扱わない理由の説明はまったく素晴らしい。それなのに、直後の2.6章(145〜148ページ)は
とたんに幼稚になってしまう。こういう子供じみた文章はわざとやっているのだろうし、こういうのを面白がる
読者もいるだろう。だが私は嫌だ。これではせっかくの内容が台無しだ。
「Javaにポインタはあるか?」という質問は頻繁に見かけるが、これは質問自体が不適切であり無効である。
それがこんなにはびこってしまったのは前橋氏に原因がある。「Javaにポインタがない」という間違った説明を
否定したいがために「Javaにポインタがある」という逆の嘘を広めてしまったために、上記の愚問が広まって
しまったのだ。
本書は、本質を見抜けばJavaに対する深い洞察が得られるが、大部分の読者は誤読してしまうのではないだろうか。
前橋氏の著作にはこういう傾向がよく見られるのだが、本書は特にひどく、度を越している。よって残念ながら
最低の評価を下さざるを得ない。
入門書の次に読むのにいいと思った。
今までわかっていなかったことが,思いがけず理解できてかなりすっきりした気分になれた。
Javaには従来の言語とは明らかに違う,独特の「書き方」があるが,そのような点をすべて押さえていて,この本の内容をある程度理解し,覚えてしまえば,その独特の「書き方」に戸惑うことはないだろうと思う。
Javaを使う上で非常に便利な1冊だ。
率直な感想は、非常に良い本です。まずJavaを一通り勉強し終えて、多少C言語の知識のある方にお薦め、いえ、必読です。
まず本書について誤解のないよう前提としていただきたいことは、本書は別にJavaのプログラミング入門やリファレンスでもなんでもないし、「Javaはすばらしい!」という啓蒙を謳っている本でもないです。それとは逆に、むしろJavaという言語を完膚なまでに否定しているように感じます。
それではなぜこんなにお薦めするのか?その前に、逆に皆さんに問いたいですが、皆さんはある物事を一通り勉強し終えて、その物事に対する洞察を行う際に、勉強した考え方・思想が「絶対正だ」と考えますか?「この考察は間違っているかもしれない」と考えますか?
私は、後者の発想の方が、圧倒的にその物事に対する洞察および理解が深まると考えます。なぜなら、「絶対正だ」と考えることは、その物事に対する洞察を放棄することだからです。日本でよく言われる、「詰め込み教育」が良い例ではないかと考えます。逆に批判的に考える、ということは、勉強した思想・考え方を自分なりに吟味し整理していった結果、自分なりに判断した考察を生み出すわけです。
前置きが長くなりましたが、本書です。
本書は、世の中に非常に良く見かける、所謂「Java入門書」とは180度違う観点から、Javaという言語に対して洞察しています。例えば、普通の「Java入門書」ではJavaがポインタを隠蔽していることは書かれていません。むしろ、気が狂ったかのようにポインタについて触れようともしません。しかし本書の場合、「Javaはポインタの言語だーJavaにはポインタ「しか」ない」として議論を進めています。こういった思考は、現場技術者の間では頻繁になされる議論ですが、Javaの入門書みたいなものには絶対に載らないです。
上述の「ポインタ」以外にも、「オブジェクト指向」「継承」「インタフェース」「パッケージ」「スレッド」といった、Java(=オブジェクト指向言語?)特有の技術に関して、様々な洞察がなされています。
Java言語に対して、あなたの理解をより深めるために、本書は「必読」です。