#99 Article 1169 Posted at 2000/03/13 09:24:08 by りんみ (MAP3262) [PACKAGE]

Subject: Java のパッケージ名について

★概要
  今、Java によるプログラムを作っています。プログラムの名前は、AlphaSilk
  といいます。Java は言語仕様にパッケージという概念、および仕組みがあり
  ます。そこで、僕が作ったプログラムに net.mapletown.AlphaSilk という
  パッケージ名をつけたいと思っています。
  といっても、勝手に名前を使うわけにもいかないので、ここで Java のパッ
  ケージ名について提案をしてみます。

★パッケージ名とは?
  パッケージは、クラス同士のゆるやかな結びつき... だそうです。
  ☆一意性
    ご存じのように、Java はオブジェクト指向言語です。そして、クラス名は
    ファイル名に、パッケージ名は階層ディレクトリ名にマッピングされます。
    異なる会社や団体が、別々のプログラムに同じパッケージ名を使ってしまっ
    たとき、問題が起きることが予想されます。
    パッケージ名は、世界中で唯一の(ユニークな)ものをつけなければいけない
    そうです。
  ☆ドメイン名
    それならば、インターネットドメイン名を使ってしまおう... というような
    ことが Java 言語仕様に書いてあります。これなら一意ですから。
    (注意) 「サブドメインが実在する必要はない」そうです。英語なのでよく
           分からなかったのですけど...
  ☆参考文献
    パッケージ名登録/利用サービスについて
      http://www.java-conf.gr.jp/wg_bof/package/about.html
    Java Language Specification
      http://java.sun.com/aboutJava/communityprocess/maintenance/JLS/
★なぜ net.mapletown なのか?
  ☆かわいいから(笑)
    知り合ったひとに、ここのメイルアドレス(mapletown.or.jp)を教えてあげ
    ると「かわいいドメイン名ですね」といった返事が返ってくることがありま
    す。なので、僕は *.mapletown のパッケージ名を使いたいのです。東急
    ケーブルテレビジョンとかでなくって。
    - すみません。メイルの課金払ってないです、ここのとこ。振込先は
      Mick'n さんのとこでいいんですか?
  ☆ディレクトリ階層
    jp.or.mapletown でないのは、ただ単にディレクトリ階層をひとつでも短く
    したかったからです。本当は、(一応)日本人なので JPNIC ドメインを選び
    たいです。
    (注意) 僕は mapletown.net の会員ではありません(汗)
★名前空間
  パッケージ名のパターンをいくつか考えてみました。
  ☆トップレベル - *.mapletown.AlphaSilk
    net.mapletown または、jp.or.mapletown では他に AlphaSilk というプロ
    グラムを作ることがない、という前提がある場合に可能です。
    具体的には、
    ・商標登録制度のように他者にこの名前を使わせない
      (Note) JPNIC は、ドメイン名と商標名とのリンクはしたくなさそうです。
    ・Blackdown.org などのようにグループで開発している
    場合などが考えられます。この方式の長所は、本家版や元祖版などの亜種が
    存在しづらいことです。したがって、ユーザの皆さまにとって、どこを見て
    いればよいかが明確です。
    ユーザの皆さまには、あまり負担をかけたり、混乱を招きたくはありません。
    特に、AlphaSilk はコンピュータの専門家だけを対象にしているわけじゃな
    いですから。
  ☆ハンドル - net.mapletown.linmi.AlphaSilk
    この階層以下では、名前が衝突する心配がないので、まだ正式公開していな
    いライブラリとかにはいいかも。
  ☆ID - jp.or.mapletown.map3262.AlphaSilk
    net.mapletown では、ログイン名に数字(ID)を使っていないようなので、こ
    れは jp.or.mapletown での管理に向いています。個人的には、ID よりハン
    ドルの方が好きです。
    また、パッケージ名自体が長いので、ユーザの皆さまが大変かも。
    (Note) 例えばアプレットの場合、HTML にパッケージ名を記述する必要があ
           ります。
★結論
  *.mapletown のパッケージ名を使わせていただけますか? 以下のパターンでは、
  左側にあるものの方が優先度が高い(使いたい)ものです。
  □net □jp.or □拒否 - どれも使えない
  □トップレベル □ハンドル □ID
    (Note) よもや、僕と同じハンドルのひとはいないだろう...(汗)
    □組み合わせ(ハイブリッド)可 - ローカルなライブラリにはハンドルを使
      う、など。
    □格上げ可 - 状況に応じて、トップレベルに格上げ可能
    (注意) といっても、やたらとパッケージ名を変更するのは考えものです。
           Swing はごたごたしていましたからねぇ。ドキュメントに明示する
           という手もありますが...
          「仕様は予告なく変更される可能性があります」... (笑)

  ということで、管理者の方の判断を仰ぎます。
                                                        MAP3262 りんみ