2007/03/20

JBuilder2007 Free Edition!!

CodeGear | Trial and Free Versions - Borland
EclipseベースのJavaIDE、JBuilder2007の無償版、Turbo JBuilder 2007が出ました!
日本語へのローカライズも行われてます。やるねぇBorland。いや、CodeGearか。
ライセンスに関しては、特に制限はない模様。Turbo版に特別なライセンスは記述されていないので、Developer版等と同様に使えそう。インストール後のレジストレーションも必要ありません。但しWindows版のみ。

入ってる内容は以下の通り。
Subclipse:
・SVNチームプロバイダCore

FindBugs:
・FindBug Plug-in

Spring IDE for Eclipse:
・Spring IDE

Mylar Technology Project:
・Mylar Plug-in

JBuilder:
・JBuilderプロジェクトのインポート
・Maven2.0インテグレーション拡張機能
・RDB InterBaseプラグイン
・XPlanner用Mylarコネクター

Borland(TM) CaliberRM Eclipse Client 2006:
・CaliberRM Eclipse Client

Web Standard Tools:
・Dali Java Persistence API(JPA) Tools
・J2EE Standard Tools(JST)
・Web Standard Tools(WST)

BIRT Example:
・Apache Commons Codes
・BIRT Chart Context-sensitive Help
・BIRT Chart Framework
・BIRT Chart Runtime
・BIRT Context-sensitive Help
・BIRT Example
・BIRT Report Designer
・BIRT Report Runtime
・Business Intelligence and Reporting Tools
・Lowagie Itext
・Mozilla Rhino
・W3C Sac

Eclipse Data Tools Platform Model Base
・Eclipse Data Tools Platform
・(Data Tools Platform関連他5個)
・Eclipse Java Devlepment Tools

TPTP Platform Samples
・TPTPに加え、EMFやGEF、Visual Editorなど

よく使われるフリーのプラグインに加え、CaliberRMのクライアントやInterBaseやMaven対応ってとこ。
まぁ、EclipseのCodeGearセレクションプラグイン集って感じで、独自機能は少しです。
ただ僕が常用してるうち、AJDTとPropedit以外のプラグインはほぼそろってるので、なかなか快適。

2007/03/12

Project DarkstarがGPLに

MMORG用のフレームワーク、Project DarkstarがGPLでリリースされることが発表されました。
Sunのニュースリリース
Project Darkstar

('L'の付かない)GPLだと当然これを使って作ったアプリケーションにも影響が及びます。なのでこういう基盤もののライセンスにGPLってのはかなりきつい制限を設けることになるんだけど、Sunもそれを認識してて、GNU classpathみたいな例外を検討中みたいです。
http://www.javagaming.org/forums/index.php?topic=16173.msg128008#msg128008

ところで、基盤部分にはApache MINAを使ってるっぽいです。Grizzlyじゃないのね。こちらも要注目かな。

2007/03/10

AOP関連の研究プロジェクト

http://aosd.net/wiki/index.php?title=Research_Projects"
アスペクト指向関連の研究プロジェクトのリスト。研究プロジェクトといっても、既にプロダクトがリリースされてるものがたくさんあります。
Supported Systemsの章には様々な言語用のAOP処理系がリストアップされてて、PHPRubyperlPythonXMLまであります。
知らないうちに、いろんな言語でAOPが利用できるようになってるんですね。

2007/03/04

プロパティを巡る議論

Why Java Properties are BAD, ugly and uncomfortable
何故Javaのプロパティはだめで醜くて不自由なのか。
この人の主張は、
・"->"が醜い
・セッタメソッドでパラメータオーバーロードが使われたら、同じメソッド名にも関わらず一つはプロパティ用で一つは単独のメソッドになる。この状態も醜い。
・なのでプロパティサポートは良いことではないけど、getXXX、setXXXを自動で生成するだけならありかも。
ってなところ。

プロパティを巡る議論はいろいろあって、様々な人から提案が行われてる。もっとも代表的な議論はおそらくこれ。Property Support in Java, the Java Way™

コードはこんな感じ。

class Test{
public property String name;
public static void main(String[] args){
Test t = new Test();
t.setName("Joe");
System.out.println(t.getName());
t->name = "Joe";
System.out.println(t->name);
}
}

propertyを使って宣言すると、getXXX/setXXXが自動的にされること、及びpropertyに対して短縮構文でgetXXX/setXXXにアクセスできることが主要な特徴。ここから派生してもっと過激なこともたくさん書いてあるけれども、基本はそんな感じ。

で、これには様々な人から賛否両論があって、というか否定的な意見の方がよく目にするんだけど、批判は短縮構文"->"に集中してる。確かにこれは醜いと思う。
ただし、重要な意見として、プロパティはシンタックスシュガーではなく、コントラクトだというものがある。これは核心を突いていると思う。つまりは単に記述を楽にするものではなくて、プロパティであること自体が意味を持ち固有の機能を持つってこと。固有の機能として、JavaDocやリフレクション等に情報が反映されて、値の検証が行えたり、正しい値がどのようなものか明示できるようになることが挙げられている。

僕も"->"は醜いと感じるし、プロパティ自体好きではないんだけど、プロパティとしてデフォルト値や検証情報(0以上の数値とか2000年以降とか20文字以内とか)が記述できて、Hibernate等のO/Rマッピングは基本的にプロパティを対象とする、なんて使われ方であれば、利点の方が遙かに大きいので導入して欲しい。

System TrayのOS対応

Java6から利用できるようになったシステムトレイAPI。
Windowsだともちろんシステムトレイ、LinuxのGnomeも画面下のトレイ部分、そしてMacOS Xではメニューバーの右にアイコンが出るらしい。

WindowsとGnomeの例:
http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/systemtray/

Mac OS X:
http://d.hatena.ne.jp/tarchan/20061217