Hatena::ブログ(Diary)

はてなかよっ!

2009-11-14

創るJava第三版

創るJava NetBeansでつくって学ぶJava GUI & Webアプリケーション[改訂第3版]

創るJava NetBeansでつくって学ぶJava GUI & Webアプリケーション[改訂第3版]

今までGenericsとかアノテーションばかり気にして基本を疎かにしていたので,その学習のために読んだ(著者はid:nowokay).

NetBeansを使ってSwingをベースに様々なライブラリに触れていく.NetBeansとかEclipseみたいなのはそれ単体でも本が出るくらいだけど読むのが面倒なので,基本として必要となる部分を学べるのは有難い(といっても最近はJava + IDEデフォルトなのでそういう本も多いのだろうか).

対象はJava SE 6で,基本的な構造からクラス,標準APIJUnitデータベース(SQLJPA),Web関係(JSPサーブレットJSF),バージョン管理,etcと幅広く学べるのでJavaでどう創るのかの基本を学ぶには十分.Apache commonsとかにも触れてるので,後はこれをベースに他のフレームワークとかにも触れて行けば良い気がする.勿論各技術は深いところまで書かれているわけではなく,必要な部分をピックアップしている形なので,その辺気になる人は自分で調べる必要がある(創るのが目的なのでこの辺はトレードオフか).

ということで,Javaで書く必要が出きた俺には今のJavaのやり方の復習が出来て有難い一冊なのでした.大学の講義もこういうの使えばいいのにというか,未だJava 1.3か1.4の頃の本使って講義するのはどうなのだろうと思ったり.

2009-10-10

検査例外

創るJava第三版を読んでいて出てきたけど,これってあまり必要性がわからない.検査例外をJava以外で採用している言語ってあるのか?

2009-08-05

Javaとバージョニング

Twitterで「よく把握してない!」とつぶやいたら@kisに教えてもらったので,一応メモ.

バージョン遷移

Java -> Java2 SE 1.2 -> Java2 SE 1.3 -> Java2 SE 1.4 -> Java2 SE 5.0 -> Java SE 6

JavaやJava2とか結構カオス.

今後の方針

5.0からは

  • 奇数バージョンがメジャーアップデート
  • 偶数バージョンはマイナーアップデート

5 -> 6へとバージョンアップしたのはAPIの仕様が変わったため.JDKの変更はupdate nという形で表現される*1

まとめ

言語仕様とは正反対でよく分からない感じ.今後は奇数バージョンに注意すれば大きな変更にはついて行けそうかな?

*1:JDK 1.6 update 10とか

2009-04-16

演算子オーバーロードの是非

Why Java doesn’t need operator overloading (and very few languages do, really)

TestNG開発者の記事.「いらない理由に使われる"その+が何を意味してるのかわからない"というのにはそもそも共感は出来ない.だってo.init()もそうだし,どうやってoが生成されたか過程を見ないと駄目じゃん」と一般的な意見をバッサリ切った後に,必要の無い理由が登場.結局の所数字とかはいいとしても,オブジェクトにおける'+'の多義性によって正確に表現できないのが嫌!ってことなのかな(例だと"Listにaddするのか,Mapにputするのか"と"+とaddAllにする訳?"とか出てる).

それにしても,そんなにも演算子オーバーロードって乱用されてるのかな?C++とかのソースってそれほど読んでないのでよく分かんないや.D言語だとどうだろ?Phobosみても乱用されてるようには見えないけど…

2008-12-17

Javaとオブジェクト指向云々

OOPを勉強するならJavaを使ってみるのが一番 - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力

めちゃくちゃ乗り遅れた感があるけど,やっぱり気になったので.

  • JavaのはあくまでクラスベースのJavaのオブジェクト指向だと思うよ!
  • クラスにこだわりすぎて逆に書きにくい時があるよ!でもこれは一長一短だよ!
  • 型安全も,パッケージにわけたり,メモリ管理がVM任せ,っていうのは実装の問題だと思うよ!
  • オブジェクト指向とはいいながら,整数とかオブジェクトじゃないよ!
  • WikipediaのデザインパターンのほとんどはGoFのだと思うし,あれはC++でのパターンだから,影響を受けているJavaでマッチしているのは当然だと思うよ!
  • でもデザインパターンは関数やクラスのように,名前がついてることが重要だと思うから,最終的にはオブジェクト指向関係ないと思うよ!
  • 確かにまだ用途では全然Javaには勝てないけど,C#は面白いとは思うよ!
  • 世間では本当のオブジェクト指向はSmalltalkだと思われてるよ!

ということで最後の2個はあれだけど,気になった所を大雑把に.GUI環境とか,組む経験が大事というのは同意.というか若い時から凄い話しすぎ(俺は白球を追いかけてたよ…).