路傍のプログラマ

只のプログラマが綴る愚痴と備忘録

@Signed

2008-07-09 21:58:14 | プログラミング
記事「JSR-305: ソフトウェア欠陥検出用アノテーション 」
http://www.infoq.com/jp/news/2008/07/jsr-305-update
によると、

メソッドの引数や戻り値がnullである可能性があるとか、nullになってはならないことを明示するためのアノテーションが導入されるそうです。

@Nonnullとか@NullFeasibleとか。

整数型の符号を示すための@Nonnegative、@Signedとかも。

うーん。アノテーションで型システムの一部を実装するみたいな感じかなあ。

下位互換性(バイトコードレベルの互換性)のために無理してるんじゃなかろうか。

C++だと、テンプレートと型システムが協力して(絡み合って?)強力なツールになってたんだけど、

Javaには、ジェネリクスとアノテーションを組み合わせて使う方法は皆無に近かったような。せいぜいコンパイラの警告を抑制するくらい。違ってたかなあ。

Javaはどこを目指してるんだろう。

(追記 2008/07/10)
記事「コラム Java API、使ってますか? JSR 305: Annotations for Software Defect Detection」
http://journal.mycom.co.jp/column/jsr/016/index.html
にもJSR 305の話がありました。

この記事でも、想定されている用途は(当然ながら?)静的なエラー検出。

Javaではジェネリクスもアノテーションも、エラーチェックに用いるというのが流れなのでしょうか。

プログラマとしてはわくわくしないなあ。

32bitのVistaとは違うのだよ

2008-07-09 15:08:47 | プログラミング
メモリを4GB積んだ記念に、Vista 64bitをインストールしてみました。

インストールしてびびったこと。

JDKをインストールして、

・コマンドラインからjavaとたたくとエラーが出る。

C:¥Users¥hoge>java
'java' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

で、java.exeを探そうとして、

・forの機能拡張の$PATHを使おうとすると機能しない。

32bit版より、いろいろ制限が厳しくなってるらしい雰囲気が濃厚。

インストールが終わってまだ数時間ですが、先行き心配になってきました。

(追記)

・とあるVista 64bitネイティブで対応しているアーカイバで、ファイルをc:¥に展開しようとするエラー。

複数あるディレクトリうち、1つだけうまく展開され、残りはエラーが出て展開できず。原因は不明だけど、自分が開発する分には気をつけよう。

(さらに追記)

・VirtualBoxは64bit用を。USBメモリはホストから認識されなかった。

VirtualBoxの32bitのものは、インストーラーで拒否されます。

ホストOSとしてUbuntu 32bitを実行してみると、USBデバイスが認識されませんでした。共有フォルダは機能してるので、これで代用します。

(追記 2008/07/10)

・Process Explorerが怪しい動作をする。

Process ExplorerはSysinternal製の(今はMSに買収されたから、MS謹製といっても差し支えない)ソフトで、プログラムが利用するメモリの最大値を調べたりするのに使っています。

このソフト、64 bit環境でも使えるのですが、こいつのexeを実行すると、64 bit版のexeをその場で作って実行します。

・・・セキュリティにうるさい昨今、こういう動作はそのうち禁止されそうな。