パスワードを忘れた? アカウント作成
2291 story

Java 1.4SE正式リリース 145

ストーリー by Oliver
Java-the-Bytecode 部門より

ryuuriを筆頭に大勢がJava 1.4SEの正式リリースをタレコんでくれた。今回のリリースはPerl風正規表現、IPv6、XMLやJDBC 3.0、assert()、リフレクションの強化といった、「やっと」なものから痒い所に手が届くものまで、新機能が山盛り。もう混雑も山を過ぎたみたいだし、Java使いはもうダウンロードするしか。 "

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2002年02月15日 16時39分 (#63187)

    たくさんコメントがついているようなので見に来たのですが、ツリーが一つしかなく、その中では1.4の話題がまったく出ていないので、とりあえず簡単にリリースから新機能と変更点を抜粋して挙げておきます。

    • XML処理の標準搭載
    • 新しい入出力パッケージjava.nio導入
    • セキュリティ機能の強化と標準搭載(JCEやJavaSSEなど)
    • Java 2Dの機能拡張とハードウェアアクセラレーション対応
    • Image I/O Frameworkの導入
    • 新しい印刷サービスAPIの導入
    • AWTが新しいフォーカスアーキテクチャに置き換わった。またホイールマウスのサポートが追加された。Solarisでの64bit対応。
    • SwingにもAWTと同様のフォーカスアーキテクチャを導入。いくつかの機能拡張が行われた。
    • Swingにおけるドラッグ&ドロップのアプリケーション間転送のサポート。
    • ロギングAPIの導入。
    • Java Web Startによる自動ダウンロード&実行。
    • JavaBeans コンポーネントの長期持続性。
    • JDBCが2.0から3.0へバージョンアップ。
    • アサーション機能の導入。
    • Preferences APIによるユーザーの設定と校正データの管理機能の追加。
    • Java仮想マシンが拡張され、エラー処理機構、並列ガーベジコレクタ、ガーベジコレクションイベントのログ記録等の機能追加。
    • パフォーマンスの向上。
    • IPv6 を含むネットワークサポート。
    • シリアライズ関係の変更および拡張。
    • Java Naming and Directory InterfaceTM (JNDI)の導入。
    • Unicode 3.0のサポート。
    • タイ語とヒンディー語をサポート。
    • 正規表現の標準サポート。
    • リフレクション機能の高速化。
    • java.nioの導入に伴うJNIの拡張。
    • その他いろいろと..。

    こんな感じでしょうか?

  • by loginPenguin (7275) on 2002年02月15日 8時33分 (#62991)
    未だにJava人気あるんですね。
    僕はいまいちJavaの良さが分かりません。
    誰かJavaのすばらしさを語ってもらえないでしょうか。
    • by mishima (737) on 2002年02月15日 9時26分 (#63006) ホームページ 日記
      言語としての利点は、
      - C 言語ライク。少ない費用でCプログラマを開発に投入できる。
      - 参照(not ポインタ)とGC。これでメモリ管理のバグの数をかなり減らせる。
      - 移植性。サーバOSのの変更も自由にできる。PC で開発、WS で稼動なんてのもらくちん。
      - ライブラリ。標準で有用なライブラリがいくつも付いてくる。

      Java を利用する企業の利点としては、
      - ライセンス。タダで使っても構わない。
      - 保証。企業がサポートしていないものを使う気にはならない。-

      趣味のプログラマは好まないかもしれないけど、
      職業的プログラマなら 利点はたくさんあると思う。

      いや、俺も Java そんなに好きじゃないけどね。
      #最近はスクリプト言語の方が好きだし。
      --
      # mishimaは本田透先生を熱烈に応援しています
      親コメント
    • by marr (3427) on 2002年02月15日 12時39分 (#63090)
      Servlet + JSP の話題があまり出てないんで。

      Webアプリケーションの開発では Java は使えると思います。
      実際の開発はちょっとめんどい部分ありますけど、
      Servlet + JSP で MVC のフレームワークを使うと
      あとあとラクです。(規模が大きくなればなるほどそう思います。)
      DBとの連携もいろいろできるし。

      あと、XMLの扱いがラク。まぁこれはライブラリィつうか
      いろんなクラスが揃ってるからですけど。

      もちろんPerl や php なんかの方がいい場面もありますが。

      不満点がひとつ。SDKがだんだんでかくなる!
      javax.* はオプションでいいんじゃないかと思います。
      コアSDKに含めるものが多すぎ。
      --
      Remember, the good things in life are :
      small, simple, easy, and elegant. - a.v.h.
      親コメント
      • >不満点がひとつ。SDKがだんだんでかくなる!
        >javax.* はオプションでいいんじゃないかと思います。
        >コアSDKに含めるものが多すぎ。

        設計ミスってる部分とかもあるように感じます。
        なんでプリミティブ型なんて存在して、ラッパーで対応させてるのかとか(全部オブジェクトでいいじゃん)、java.ioってやたらとごちゃついてるとか。
        親コメント
      • ほんと、ちょっと取っつきは悪いけどServlet+JSPは幸せになれます。
        文字コード周りではトラブりますけど。
        #英語圏だと何の苦労もないんだろうなあ、ここらへん

        DBアクセスの必要なWEBアプリは、今までOracleのPL/SQLでごりごり
        書いていたんですけど、過去のコードをメンテしようとするともう気分が
        悪くなりますね。
        実行速度については、どうせ通信とOracleのオーバーヘッドの方が
        大きいので気になりません。(適切なbeanを作っておけばですけど)
        親コメント
    • by yasushi (789) on 2002年02月15日 9時09分 (#62999)
      仕事でしかたなく。
      ほら、少しでも楽しまないと。
      親コメント
      • by visha (779) on 2002年02月15日 9時20分 (#63002) 日記

        そうそう。仕事で使う言語としては、不快度が比較的低いんじゃないでしょうか。

        # でもXMLまわりが含まれたことで、今までXercesとか使ってた人はいろいろ悩むかも(俺だけ?)

        親コメント
    • by niko_d21 (2160) on 2002年02月15日 10時15分 (#63018) 日記
      それは「高木浩光がいること」だ.

      // 本題から外れててスマソ.
      親コメント
      • それはあるね。

        JavaHouse の ML 読んでると、Java のタコいところがいっぱい見えてくる。
        例えば、プロパティの初期化とコンストラクタの呼ばれる順番が
        すげぇ直感的ではないとか…(ポインタを探そうと思ったけど見つからんわ)

        Java について語ろうYO!
        --
        # mishimaは本田透先生を熱烈に応援しています
        親コメント
    • 「Java は駄目」とか言う人の話をよく聞いてみると、
      Java Applet のことだったり、 JavaScript のことだったりする
      ことがあるので、いっかい問い詰めてみたほうがいいです。
      親コメント
      • Re:Javaの必要性 (スコア:3, 参考になる)

        by himuro (547) on 2002年02月15日 12時00分 (#63063) ホームページ
        そうですね。

        "私は 何々の 言語が素晴しいと思っているんだけど、
        それに比べて Java はあまり素晴しいと思えません。
        利点教えて!"

        っていうのでないと、あまり効果的な意見が述べられないかと
        思います。

        私は、あらゆる点で Ruby がいちばん好きな言語ですが、
        その次くらいに Java が来ます。

        私に関しては、ですが...

        [よいところ]
        * GUI がクラスライブラリとして標準化されているので、
        GUI を作るとき、いろいろ悩むことがない。
          (C++ だと、VCL か、MFC か、GTK か Qt か... って
            悩むし、採用したライブラリが嫌いな人はソースを
            見てくれないだろう...)

        * やっぱしクロスプラットフォームの利点は大きい。
            Windows を強要されなくて済む。
            Linux のみを使っていても誰からも怒られない。
            環境による差をあまり意識せずに開発できる。

        * オブジェクト指向プログラミングしたい場合は、
            C や C++ , Perl (, VB) でやった場合と比べると、
            上手に書ける。
          ( STL を除けば、Java と比べて C++ の利点があまり無い )

        [嫌いなところ]
        * メモリ食うし、やっぱ起動が遅い。ある程度のマシンスペックは必要
        * GUI を作成したとき、デフォルトではフォントの見栄えが悪い。
            (しょぼい理由だが、実はこれが一番ヤなところでもある。
            私は結構見栄えにこだわる)

        挙げればキリがないのでこの辺で。

        私としては、Java で仕事ができる環境にあったことがないので、
        Java の利点が云々という以前に、むしろ Java で
        飯が食えるというのは羨ましい話です。

        開発環境を強要されて仕事をしなければならないという現状
        においては、Java は比較的うれしい環境だと思います。

        実際のところ私は 趣味的に使ったことしかありません。

        サーバーサイドの利用 -> Perl 等の方がサクサク作れる
        GUI アプリ -> Delphi などの方が...

        っていう風に感じていますが、仕事で使われている方、
        どのような用途で使用されてますか?

        私は
          * Java がどのような仕事で利用されており
          * 他の言語で作成した場合と比べて利点があったか

        というのが知りたいです。
        親コメント
        • Re:Javaの必要性 (スコア:2, 参考になる)

          by hatoku (1188) on 2002年02月15日 12時30分 (#63083) 日記
          >* Java がどのような仕事で利用されており

          やっぱサーバーサイドです。Servletとして使います。あと、ソケット開いて
          メッセージを処理なんてのも一つ作りました。

          >* 他の言語で作成した場合と比べて利点があったか
          phpやASPも使ったことがあったけど、HTML埋め込みってのはちとつらいです。
          ややこしい画面表示になるとわけわかんなくなる(^^;;;;;
          java(というかJ2EE)ならTAGライブラリを使ってかなりHTMLとjavaのコードを
          分けられるのでその点楽でしたよ。
          親コメント
          • オフトピック気味だけど。

            PHPでもわけわかるように書こうとすると、MVCのようにロジックとビューが分離しちゃいますね。
            HTML埋め込みは、本当に「埋め込み」程度の分量しかないときには有効だけど、がつがつと動的生成しなきゃいけないときにはむしろ邪魔、でしょう。
            親コメント
            • そういう時はソースの頭から最後まで PHPタグ1つだけにして中で Java みたく(オブジェクト指向で)、またある時はCみたく(構造化プログラミング)、またある時はスパゲッティにプログラムしてます。HTML埋め込むのってまず殆どやらない。最近はHTMLの動的生成じゃなくてHTMLを動的生成するPHPのコードを自動生成かな。大元のソースはXMLで画面と遷移を指定するだけでサイトテンプレートの完成。プログラムを組む時代は終わらせたい、その為に私はプログラムを書く(笑) というわけでXMLの取り扱いが楽そうなJavaに期待。
              親コメント
        • by tix (7637) on 2002年02月15日 12時37分 (#63089) ホームページ
          * Java がどのような仕事で利用されており
          * 他の言語で作成した場合と比べて利点があったか

          ぼくは、職業的なプログラミングにおいて、プログラムを書くときに「どの言語を使うといいか」という点を考えて言語を選択するということがどの程度行われているかのほうが知りたいです。

          正直、利点があるかなんて考えてから Java を選択している人はどのくらいいるのかが疑問です。いっぱいいるのかなあ。

          // この前も、小さなプログラムですが、何も考えずに C++ で書き始めてから後悔したばかり。
          --
          鵜呑みにしてみる?
          親コメント
          • by himuro (547) on 2002年02月15日 12時57分 (#63101) ホームページ
            私の経験ですが、

            "どの言語を使ったらよいか" と考えるまえに、
            "周囲の人間がどの言語を使う能力があるか" という
            制約の方が極めて大きかったので、殆ど選択肢は皆無でした。

            たぶん /.J を読んでおられる方は、複数の言語を使い回される
            方が少くないと思いますが、実際の仕事の現場だと、
            "この人は、これこれの言語を知っているから、この仕事
            を与えよう" みたいな配分が行われていることが
            結構あるのではないでしょうか?

            私は、"本当に必要な理由から言語を制限" される分には仕方が
            ないと思ったりもしましたが、"他の人が分からないから" という
            理由で言語を強要されるのは非常に嫌でした。

            知り合いの人から聞いた話ですが、C++ で STL を使ったプログラムを
            書いたら、"他の人が分からないから" という理由で、書き直しを
            迫られたことがあるそうです。

            私に関しても, "オブジェクト指向でプログラムを作成" したときに、
            "VB 使っている人が混乱して分からないから" という理由で、
            ソースが全部破棄されたことがありました。
            "いまさら構造化プログラミングですか..." とがっくりでしたが。
            (まぁ、あのときは、まだ初心者で、私の書いた部分に
            悪い点もいっぱいあったから仕方ない点もあるんですけど)

            私は、最低限
              * オブジェクト指向が分かっていない人には C++ は絶対使ってほしくない。
              * ポインタが理解できていない人は、C 言語は使ってほしくない。
            って思っています。
              (保守されられて、泣きたくなったことがあります。)

            そういう現状では、Java は強要されても一番うれしい環境ではないかと。
            クラスとして分割して切り分ければ、悪いパーツだけ入れ変えることが
            できるし。

            悲しい現状でした。
            親コメント
            • by wawawa (3653) on 2002年02月15日 13時53分 (#63128)
              ご同情申し上げます。

              しかし、そーゆー事をする時は、事前に周囲にネゴをとっておかないと難しいでしょう。私が STLを導入した時は、事前に関係者に説明し、世間の実績や、STLによる生産性向上具合を説いて、了承を得てからやりましたよ。

              オブジェクト指向の導入もしかり。

              # 説得時に、若干、ばら色の脚色をした事は否定はしませんが (藁

              もっとも、いつも了承される状況には無いし、職業上の立場もありますから、時には我慢をし機を見て行動しないと、チャンスを失います。
              親コメント
            • サブジェクトでほぼみんな言っちゃったけど、その辺の事情ってのは、全くCOBOL的だな。となると、仕事で使う分には申し分ない言語と言えなくもない。また、「使える言語はJavaです」ってのは、かつての「使える言語はCOBOLです」って言ってるのと同じと。

              そーゆーことなら、「仕事で使う」という条件付きならJavaも好きになれるかな? 私がCOBOL好きなのも、「仕事で使う」という条件付きだし。
              親コメント
          • by wawawa (3653) on 2002年02月15日 13時35分 (#63119)
            では、どういう判断でJavaを選んでいるとお思いで?

            どの言語/プラットフォームを使うかなんて、プロジェクトの命運を左右しかねない、非常に重要な判断事項です。ただし、純粋に言語設計がすぐれているから、その言語を使う。という判断は無いです。

              製品の特性、顧客の要望、プラットフォーム、手持ちの
              リソース(人材,機材)、納期、保守、製品の使われる期間、
              移植、再利用性、情報量、趣味

            等の条件を考慮した総合評価です。

            そうそう、"流行"も重要な要素です。不幸にして顧客がそれを望んでしまう時は... まぁ、自分が流行熱にかかって、どさくさで新言語って時も、絶対無いとは言い切れないが、何かあった時の責任は自分なので決めるときはドキドキするyo。(それがまたいい(爆

            今まで、製品としては C, C++, Perl, JavaScript, Javaを使って来ましたが、Javaに対する印象は、

            「とっつきにくくヘビーだが、信頼出来る頼もしい奴。開発が一旦軌道に乗れば生産性も上がり易い」

            ですね。他人に依頼する時は CよりもJavaの方が安心出来るかな。
            (でも本音は VB→Javaと移って来たプログラマは勘弁願いたい)

            # ちなみに趣味のプログラムや、軽いツールは最近はRuby。
            親コメント
      • Re:Javaの必要性 (スコア:2, 参考になる)

        by loginPenguin (7275) on 2002年02月15日 11時13分 (#63037)
        僕がJavaで駄目だと思うところはまず実行速度です。
        JITの技術がありますが本質的な解決策では無いと思います。
        しかもテキスト処理なんかはJITを使ってもAwkよりもPerlよりも遅い。

        次に移植性です。
        Write Once Run Anywareとか言っていますがはっきり言って実現されて無いと思います。
        移植性 + 速度
        で考えるとCの方が上だと思っています。

        GCを利点として挙げる人がいますが、それも僕はどうかと思っています。
        GCがあるためにむちゃくちゃなプログラムでもある程度動いてしまいます。
        1時間ぐらいだったら動くけど長時間動かしているとVMが落ちることがありますし、その時のバグを見つけるのが非常に大変です。

        最後にIDEです。
        デバッグが難しいのにろくなIDEが無いために開発が非常に面倒です。

        後は思想的な話ですが、そもそもJavaが出てきた時のライセンスが僕は嫌いでした。
        「全ての環境で同じプログラムが動く。だからうちにお金を払ってね。」
        って思いっきり某社の戦略ですよね。
        今はライセンスが変わりましたが、それは単にJavaが最初のライセンスではやらなかったから変えただけであって、根本的な思想は某社と大して変わらない気がします。

        dan kamiyubiさんの意見をお聞かせ下さい。
        長文失礼しました。
        親コメント
        • Re:Javaの必要性 (スコア:3, 参考になる)

          by dan kamiyubi (6091) on 2002年02月15日 13時28分 (#63114) ホームページ 日記
          皆さんおっしゃられているとおり向き不向きの話だと思うので私の向いている
          方の話をすると、

          まず実行速度ですが、私の作ってるようなものだと他の要素、通信やデータベー
          スが遅いので、今Javaな部分をCで書いたところで数%も速くならない、むしろ
          開発速度が重要で、そういう意味では perl,python,ruby などの方が向いてる
          と思います。

          遅けりゃ負荷分散したらいいやん、ということで最近ではPCクラスタで分散オ
          ブジェクトとかすることが多いので、言語標準のライブラリで分散オブジェク
          トがしやすいのもありがたいです。

          移植性は、Cでは移植性のないコードも書き易いのでその点さすがにC以外の方
          がいいのでは。私の知るヘボCプログラマはすぐにリトルエンディアンを前提
          にコードを書くのでSPARCにもってくとき苦労しました。

          GCだめだからJavaだめってのは何とも…。他のオブジェクトを明示的に解放し
          ない言語もだめなんでしょうか。

          IDEは確かにあったほうが参入障壁は低いですね。初心者に勧め易いというか。
          私のほうでは必要ないので、無いことがデメリットにはなりません。Junitを
          使い出してからはいわゆるIDEでデバッグはしたことないです。バグがあった
          らまず再現性を出すテストを書きます。Javaは例外時スタックトレースが出る
          のでそれで分かることも多いです。あと再現性のだしづらいバグではIDE のあ
          り無しはデバグの容易さとは関係ありません。GUIだと例えばマウスを押して
          から離すまでの間動くコードのデバグなどはIDEがあっても楽にはなりません。

          思想的な話は良く分からないのでパス。まあ、まっとうなソフトウェア技術者
          ならC/C++、perl、python、java、lisp くらいは書けて当然なので「要は適材
          的所だ」で済むのではないでしょうか。
          親コメント
          • by loginPenguin (7275) on 2002年02月15日 13時52分 (#63126)
            非常に勉強になります。
            「Javaが適材適所の言語である」というのは納得してます。
            でも、僕が良く分からないのは適材適所で無いような気がする分野にまでJavaが持ち込まれているような気がします。
            例えばReal Time Javaなんていうのは本当に必要なのでしょうか。
            dan kamiyubiさんはおそらくJava信者では無いと思いますが、Java信者の人はよく「Java万能」と考えていることがあります。
            dan kamiyubiさんの目からみてJavaの可能性はどの程度あると思いますか?
            親コメント
        • by visha (779) on 2002年02月15日 11時46分 (#63053) 日記

          別に擁護するほどの義理も思い入れもないんだけど。

          僕がJavaで駄目だと思うところはまず実行速度です。 JITの技術がありますが本質的な解決策では無いと思います。 しかもテキスト処理なんかはJITを使ってもAwkよりもPerlよりも遅い。

          必要な時にプロセスとして起動するような用途には当然向かないですよ? PerlはともかくAWKを並べてるところを見ると、「テキスト処理」ってUNIXのフィルタプログラム的な使い方を想定してるんじゃないでしょうか?

          Javaのソフトウェアをまともに使おうと思ったら、JavaVMは基本的に立ち上げっぱなし、その中でサービスを回して行くような方法しか今のところはないでしょう。それが、いわゆるJ2EEの考え方(のごく一面)ですね。

          だからこそ、JavaOSなんて考え方があったんでしょう。要は適材適所ってこと。

          親コメント
          • Re:Javaの必要性 (スコア:2, 参考になる)

            by G7 (3009) on 2002年02月15日 14時47分 (#63150)
            >必要な時にプロセスとして起動するような用途には当然向かないですよ?

            それは実感しますね。
            jvmの起動はやっぱり遅い。一方でいったん上がれば遅さが気になることは案外(?)多くない。

            複数の関連ある処理(の単位:OOPとそれ以外を比較するときにはこの辺が曖昧な言い方になっちゃいますが)を
            繋ぎあわせて使うという状況においては、unixのプロセスモデルより、java(に限らないけど)の
            Object単位のモデルのほうが、メリットが多いことが多いです。プロセスだと処理単位間の「壁」が高すぎ。

            それがまさに、CGIに対するservlet、makeに対するant、のメリットになっているという触れ込み(^^;。

            オフトピだけどant。make時に必要な複数の処理を同一プロセス(^^;でやってくれるのは
            たしかに魅力的なんだけど、もう一歩欲しいです。
            もしコンパイルが「終わって」も尚プロセスが残っていてくれたら、そして
            次のコンパイルにそれを使い回せたら、きっと更に速くなるだろうに、と。
            親コメント
          • by loginPenguin (7275) on 2002年02月15日 12時07分 (#63066)
            実のあるコメントありがとうございます。
            AWK、Perlを例に挙げたのはUNIXのフィルタプログラム的な使い方を想定してるわけではなく、とにかく遅いって言いたかっただけです。
            僕自身AwkやPerlよりも遅いと知ったときに非常に驚いたもので。
            「ある特定の用途にはJavaが非常に有用だ」
            というのは分かります。
            ただ、言語として総合的な観点から見た場合に魅力的な言語だと僕は思えません。
            しかし、Java信者ってすごく熱烈的ですよね?
            いったいどこに魅力を感じるのかというのが僕にとって興味あることなのです。
            親コメント
            • by himuro (547) on 2002年02月15日 12時16分 (#63072) ホームページ
              私もみなさんの意見を聞いてちょっと安心しました。

              "あーんなに遅いのに、みんな平気で使っているんだろうか?"

              って Java を使うときはいつも思っていたのですが、
              やっぱしそのように思っている同士がいたということで。

              Java の情報って、"けっこう速いですよ、いいですよ"
              って思わせる情報ばっかりが見つかって,
              "Java ダメじゃん.." って情報はあまり書いている人が
              多くないんですよね。

              欠点を述べるのって、結構重要だと思うのですよ。
              だって、どのような時に Java を使えばいいかという
              判断材料としては非常に有効ですから。

              いろいろ勉強になりました。
              親コメント
            • 先に挙がった不満点って「言語」じゃなくて「実行系」の話ばかりだと思うんだけど。
              もちろん実行系の制約ってのは、Javaの思想に起因してるのだろうけど、それは言語としての評価とはちょっと違うように思います。
              確かに、環境(言語と実行系を両方含めた話)としてのJavaは、あれこれ不満が多いですけど、ね。
              親コメント
        • by moonbear (4602) on 2002年02月15日 11時55分 (#63059)
          実行速度の不満についてはそのうち解決するでしょう.静的かつ強い型付けの言語なので,PerlやRubyと比べて原理的に遅くなる理由はありません.

          不要なオブジェクトへの活きた参照をいつまでもかかえてしまうようなコーディングをしてしまうと,長時間運用後にVMが落ちることがあります.確かに見つけにくいバグではありますが,GCがない場合のメモリリークはそれ以上に見つけにくいバグですし,何よりも開放してしまったメモリ領域を触る危険性がない方が安心して使えるのではないでしょうか.
          親コメント
          • by tix (7637) on 2002年02月15日 12時48分 (#63093) ホームページ
            Java はダウンキャストのときに動的型チェックをする必要があるので、 statically strongly typed ではなく dynamically strongly typed だと思います。

            それともぼくが用語の定義を間違えているのかな。このあたりの概念、感覚的にしか把握していません。

            Perl より遅くなる理由はない、というのは理解できますが。

            // ただ、 Perl と実行速度を比較されているのは Java がなんか気の毒。
            --
            鵜呑みにしてみる?
            親コメント
        • Re:Javaの必要性 (スコア:2, 参考になる)

          by mishima (737) on 2002年02月15日 12時13分 (#63069) ホームページ 日記
          > GCを利点として挙げる人がいますが、それも僕はどうかと思っています。
          > GCがあるためにむちゃくちゃなプログラムでもある程度動いてしまいます。
          > 1時間ぐらいだったら動くけど長時間動かしているとVMが落ちることがありますし、その時のバグを見つけるのが非常に大変です。

          C だって「解放忘れ」なら同じ現象が起こるでしょー。

          Java は free を呼ぶ替わりに使わなくなったポインタに逐一 null を入れろ、ってだけ。
          むしろ、C では使われていないポインタに NULL 以外の値が
          入っていることがあって、そっちの方が危ないと思うのだがどうか。

          #ま、C だって boehm GC みたいなのがあるけどね。
          --
          # mishimaは本田透先生を熱烈に応援しています
          親コメント
          • Re:Javaの必要性 (スコア:2, 参考になる)

            by k6p (7828) on 2002年02月16日 3時01分 (#63418)
            C だって「解放忘れ」なら同じ現象が起こるでしょー。
            少し違うと思います。
            Cで動的に確保されたメモリブロックは、明示的に解放しない限り、(少なくとも)そのプロセスの生存中は回収されないのに対して、Javaの場合は、他から参照されなくなったオブジェクトは、ガベージコレクタによって自動的に回収されます。(そもそも、解放するという操作自体がない)
            また、
            Java は free を呼ぶ替わりに使わなくなったポインタに逐一 null を入れろ、ってだけ。
            これも、ガベージコレクタがオブジェクトを回収する際の「ヒント」を与えるために使われるテクニックであって、必ずしなければならない、というものではありません。(スコープを外れ、どこからも参照されていなければ、回収される)
            # 「ポインタ」という用語も不適切かと。

            (未確認ですが、ガベージコレクタの性能の向上で、そういったテクニックをする必要もなくなってきた、というような話もあるらしいです)
            親コメント
        • GCの必要性 (スコア:2, 参考になる)

          by goodlife (5595) on 2002年02月15日 12時34分 (#63086) 日記
          GCを利点として挙げる人がいますが、それも僕はどうかと思っています。
          GCがあるためにむちゃくちゃなプログラムでもある程度動いてしまいます。
          GC を単にメモリリークを防ぐためのものと考えると大したありがたみはありませんが,メモリフラグメンテーションを防ぐためのものと考えれば,その恩恵は計り知れないと思います。

          C++ でマルチスレッドプログラムを書く時のメモリ管理の難しさといったら。まあ,気にしなくても動きますけど(皮肉なことに)。

          親コメント
          • by G7 (3009) on 2002年02月15日 14時57分 (#63154)
            >GC を単にメモリリークを防ぐためのものと考えると大したありがたみはありませんが,メモリフラグメン
            >テーションを防ぐためのものと考えれば,その恩恵は計り知れないと思います。

            え?

            http://www.is.s.u-tokyo.ac.jp/~vu/jugyo/processor/process/soft/compilerresume/gc/gc.html
            >Copying GCの興味深い性質は、コピーするときにオブジェクトの空きをつめるため、fragmentationが発生しないということである。

            によると、フラグメンテーションを無くす機能(つーか嬉しい副作用?)を期待できるかどうかは
            GCのアルゴリズム次第であって、GC一般の性質ではない、と読めますけど?

            それとも、その副作用のあるGCしか使う予定が無い、言い換えれば
            使おうとしている処理系のGCがお望みのアルゴリズムであることが既に判っている、
            という状況なのでしょうか?

            そりゃそうと、メモリリークが無くなるってのについては、有り難いと思いますよ。

            1:unixプロセスモデル配下の短寿命プロセスならば、最悪でも「間もなく」OSがメモリを回収してくれる
            ので有り難味は少ないかもだが、そうでないならそれ以外の管理が必要になる。

            2:開放タイミングを決定するのが結構面倒なプログラミング形態も、ある。

            ので、あーゆーものは、(プログラマの技量次第というよりも(笑))状況次第で、凄く欲しくなると思うんですが。
            親コメント
        • by hatoku (1188) on 2002年02月15日 12時50分 (#63095) 日記
          >次に移植性です。
          >Write Once Run Anywareとか言っていますがはっきり言って実現されて無いと思います。

           それはおっしゃる通りです。おれもなんだかんだ言って結局は、
          Windowsクライアントでソース書く->Unixのサーバー上にftpしてコンパイル
          なんてしたましたし(笑)今はサーバーもクライアントもlinuxだからその点楽。

          >移植性 + 速度
          >で考えるとCの方が上だと思っています。

          write once....は「コンパイル済みのバイナリコードがそのまま移植できる」ということだと思うのだけど。Cの移植性(ソースもってってコンパイルすればOK)とは別の話になると思いますが。

          ソースの移植性についても、#ifdef WIN32みたいなマネをする箇所がjavaならかなり減るのでは?、特にGUIについては。

          というか、javaにマクロは無いが<-おれにとってはこれがjavaの嫌なとこです(笑)

          それに、たとえば顧客にUNIX上で動くPGを納品するときに、ソースに#ifdef WIN32とか書いてあったらマズイ(笑)
          速度に関しては、たしかに遅いですね。GUIのアプリをまともに作る気分にはなれない。

          >最後にIDEです。
          >デバッグが難しいのにろくなIDEが無いために開発が非常に面倒です。

          xemacs + javac + jdbで開発してます(笑)
          #そいえばCもdbxでやってたな
          親コメント
    • by WindKnight (1253) on 2002年02月15日 11時10分 (#63034) 日記
      わざわざ Javaに対抗して、MSが作ったC#の必要性のほうがわからなかったりもする。

      ブライド、というだけで終わってしまうかもしれないけど。(笑)

      ふりまわされるほうは、たまらん・・・・・。
      親コメント
      • Re:それを言うなら (スコア:1, すばらしい洞察)

        by Anonymous Coward on 2002年02月15日 11時55分 (#63058)

        対抗したわけではなくて、純粋に「欲しかった」んだと思う。 振られたからつくらざるを得なかったってところかな。 もちろん振られた原因の多数は MS にあるわけだけど。 あの Java に機能追加した部分とかって、嬉々としながら やったんだろうなぁってのが、目にうかびますよ(苦笑)

        つまるところ、Java の必要性 = C# の必要性 なのです。

        ふりまわされるほうはたまらんってのは同意(苦笑)

        親コメント
        • by WindKnight (1253) on 2002年02月15日 12時53分 (#63096) 日記
          「一度書けば、どの Windows でも走る」という点では、VBとその眷属がいるわけで。(笑)

          OSを含めた実装に問題があるだけで、古臭い部分もあるかもしれないけど、VBってそれほど悪くはないと思ふ。

          まあ、その古臭い部分を改装したものが、VB.NET なんだろうけど。

          そのおかげで、全く別物になってしまったという話もあるが。(苦笑)
          親コメント
          • by hatoku (1188) on 2002年02月15日 12時59分 (#63102) 日記
            >「一度書けば、どの Windows でも走る」という点では、VBとその眷属がいるわけで。(笑)

            (VBの)SPのバージョンが異なるVB製ソフトの同居は出来ないっすよ。

            まぁ、たしかにGUIのwinアプリを作る分にはjavaよりVBのほうが上だと思うけど。
            親コメント
      • by moonbear (4602) on 2002年02月15日 12時02分 (#63064)
        安全性という面ではJavaに軍配が上がりますね.C#の言語仕様をみると,Javaで苦労してセキュアに設計しているところをみんなぶっこわしているようにみえます.
        親コメント
typodupeerror

吾輩はリファレンスである。名前はまだ無い -- perlの中の人

読み込み中...