パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

Cygames、C#専門の技術開発子会社「Cysharp」を立ち上げ」記事へのコメント

  • by Anonymous Coward on 2018年11月05日 17時19分 (#3510306)

    なんか気づいたらいろんなところで動いてた。
    知らん間にWrite Once, Run Anywhere

    • もともとjavaをかなり意識して作られたものだし、CLIって規格上は最初から特定プラットフォーム依存じゃなかったからね。
      当のMicrosoftがWindows以外の実装を長いこと作らなかっただけで。

      --
      うじゃうじゃ
      親コメント
      • 言語仕様についてはおっしゃるとおりですが、マルチプラットホームを本気で考えていたかどうかは疑問ですね。

        親コメント
        • ただし、初期の仕様においても、Javaの丸パクリではなく、デリゲート(関数参照)とか、プロパティとかあって、なんでもかんでもオブジェクト指向で面倒臭いJavaの弱点を改良しようとする野心がうかがえました。

          親コメント
          • webのjavascriptもjqueryおっ被せるのが常識ですし,
            使われてる範囲の割には言語自体は嫌われてるよね。
            親コメント
          • by Anonymous Coward

            オブジェクト指向原理主義のJavaに対し
            省力化原理主義のC#という感じ。
            #短いは正義

          • by Anonymous Coward

            Java が何でもかんでもオブジェクト指向ってのは無理があるな。
            オブジェクト指向をかいつまんでるけど、シンプルな面だけでやろうとして、破綻したところの辻褄を合わせた言語であって、オブジェクト指向的ではないってところが目立つ言語だろう。
            # 辻褄合わせのバランスは90年代当時の類似言語の中ではかなり良く出来てた。

            • by Anonymous Coward

              オートボクシングのないJava1.4以前を見たとき、その不完全なオブジェクト指向に酷く失望しました。

              • ボクシングが無い方がオブジェクト指向的には美しいように思いますが。面倒ですけど。
                もっとも、そのボクシングもジェネリックでスカッと過去の遺物になりましたが。

                親コメント
              • by Anonymous Coward

                プリミティブラッパークラスなんてものがある時点でどうやっても美しくないんだよ。
                C#はプリミティブ型と上手く整合させた上に、シンタックスシュガーを積極的に追加したので(好みの問題はともかく)今がある。
                あとJavaのジェネリクスは相変わらずプリミティブ型取れんだろ。

          • by Anonymous Coward

            メソッドをオブジェクトとして扱えなかったJavaがなんでもかんでもオブジェクト指向とはどういう意味か

            • もちろんそういう話じゃなくて、Javaのオブジェクトはかならずnewされてヒープに配置されるって話だろう。
              C#のValueTypeやボクシングのような、ざっくりいうと劣化オブジェクトのようなものがないという意味で、Javaは純粋だ。

              元コメは、いわゆるオブジェクト指向の話としてはたしかに不正確だったが、趣旨はふつうにわかったな。

              親コメント
              • by Anonymous Coward

                ボクシングのような、ざっくりいうと劣化オブジェクトのようなものがないという意味で、Javaは純粋だ。

                Java使ったことありますか?
                別コメントでボクシングの話が出ているのに。

              • by Anonymous Coward
                オブジェクト指向ってなんでもかんでもオブジェクトとして扱ってなんてもかんでもメッセージパッシングで実現する、ってことでしょ
                オブジェクトになりきれない劣化オブジェクトの多さではJavaはトップクラスなんだから、Javaは純粋でも何でもなくオブジェクト指向の理想からは遥かに遠いところにいるのは確かだろう
        • by Anonymous Coward

          IA32/Intel64/ARMと、Windows/WinRT/XBOXのサポートは自前でやってなかったっけ。
          そういうのサポートする気がないならハナからMSILでバイナリ吐いたりはしないと思う。

        • by Anonymous Coward

          Microsoft製のCLI実装として、2001年に公開されたShared Source CLIというものがあり、FreeBSD版とMac OS Xが動いています。
          オブジェクトレイアウトなどが現行の.NET実装とほぼ一緒なので、現在のMicrosoft実装の原型と考えられるものです。
          2001年にオープンソースとして公開されました。MicrosoftのOSSへの歩み寄りの先駆けといえるソフトウェアです。

          https://en.wikipedia.org/wiki/Shared_Source_Common_Language_Infrastructure [wikipedia.org]

          2001年にはすでにマルチプラットフォームを検討していたということです。

          • すみませんオープンソース警察です。(コメACは分かっているのかもしれませんが)

            シェアードソースCLI (コードネームRotor) はソースコードを公開しましたが、そのライセンスは利用目的を「個人的および学術的な目的」に限定していたので、オープンソース・イニシアティブが定義したオープンソースの定義 [wikipedia.org]には合致してないんですね。当然、コミュニティと共に実装を発展させていくという動きもありませんでした。Monoプロジェクトの創設者であるMiguelは「Rotorが(真の)OSSだったなら、Monoを作るかわりにそっちを使えていただろうに」 [hatena.ne.jp]と言ってます。

            Rotorは言ってみればリサーチプロジェクトでしかなく、「マルチプラットフォームを検討」というのはあくまでリサーチの範囲での検討、ということでした。なので#3510350の「マルチプラットホームを本気で考えていたかどうかは疑問」は同感です。とはいえ、Rotorで実験的に実装されたプラットフォーム抽象化レイヤーが、その後Silverlightの実装にも生かされ、最終的に.NET Coreにも知見が反映されてはいるので、MS的には無駄ではなかったのでしょう。(Monoチームがどう思っているかは別として)

            親コメント
            • オープンソースとマルチプラットフォームは、理屈の上ではあくまで独立した話のはずだけど?

              WindowsNTは、Microsoft単独で複数種のCPUに対応していたんだし、頭のどこかにマルチプラットフォームのことがあって不思議じゃない。

              親コメント
            • > #3510553
              「本気で考えていた」をどう受け取ったのかに差異があるんだと思います。
              リサーチは重要ですし、Rotorの時点で将来的なマルチプラットフォーム展開の可能性を切り捨てたわけではないと思いますし、前コメにも書いたようにRotorの知見が.NET Coreに反映されていると考えています。
              それでも個人的には、最低でも製品戦略に組み込んでロードマップ発表する、もっと言えば実プロダクトをリリースしたうえでバージョン3まで続ける、というあたりがMSの本気かなあと思うのです。マルチプラットフォーム展開に関するそういう意味での本気は、レガシー.NET Frameworkについてはゼロ、Silverlightでそこそこコミット、.NET Coreでフルコミットかなあと思います。私の感覚ですが。

              > #3510719
              オープンソースとマルチプラットフォームが別の話なのはその通りですね。前コメは話題をちょっと混ぜてしまいましたが、別に「OSSにしなきゃマルチプラットフォームとは言えない」なんてことはさすがに思っていません。
              あと、「頭のどこかにマルチプラットフォームのことがある」レベルの話はたぶん誰も否定していません。上で書いたように「本気だったかどうか」については見解が分かれたみたいです。

              親コメント
            • by Anonymous Coward

              「マルチプラットフォームを検討」=「マルチプラットフォーム化する際に障害になりうる要素を洗い出し排除する」というのが普通の開発だし、MSは本気でそれをやったことはいま大きなトラブルが起きてないことからわかる
              こういう人は「マルチプラットフォームを検討」=「いきなり実装」と考えているのかな?
              OSS界隈には頭より先に手が動く人が多いんだろうか
              それはそれで結構なことだが、自分が先を見据えた設計ができないから他人もそうだとは思わないでほしいところ

          • 知りませんでした。早期からマルチプラットフォームの取り組みはあったのですね。
            ただし、会社としてどの程度本気だったかはどうでしょうか。

            親コメント
          • by Anonymous Coward

            もちろん分かっている。だけど、Exception.HResultとか、そもそも文字列がUTF-16であることとか、ときおりWindows由来っぽさを感じることは自分もあるよ。なので、元のコメント#3510350の気持ちも理解できなくはない。

            • by Anonymous Coward

              Exception.HResultはともかくUTF-16なのは時代的な面もあるのでは?
              JavaだってUTF-16だったし、Unicodeの追加面が実際に定義されたのはC#の誕生より後。

              そしてC#が生まれたころLinuxはEUCが当然だった。
              1990年代後半から2000年代前半にかけて16bitでは足りないと見切った人々の選択はUTF-32だった。
              UTF-8がローカルでここまで使われるようになると、どれだけの人が予想できただろうか。

              • by Anonymous Coward

                いや、UTF-8 は交換用が主用途だろ…
                Linux/UNIX や Windows のいずれも UTF-8 を内部コードとしては使ってないよ。

              • by Anonymous Coward

                それは詭弁というか、UTF-16がWindows由来っぽいって話とは別の次元では?

              • by Anonymous Coward

                Javaを例に出して、グローバル文字列といえばUTF-16だったって言ってるじゃないですか。
                JavaScriptだって内部的にはUTF-16ですよ。文字コードを取得する古い関数なんかではそちらのコードが取得できます。

              • by Anonymous Coward

                >> UTF-8がローカルでここまで使われるようになると、どれだけの人が予想できただろうか。
                > いや、UTF-8 は交換用が主用途だろ…
                UTF-8 がローカルで広く使われているという説を否定しています。

              • by Anonymous Coward

                まずは一例としてlocaleコマンドの結果ゲロってみろよ

              • by Anonymous Coward

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

      • by Anonymous Coward

        Microsoft本体は今でもWindows以外の実装は作ってないでしょう。
        Monoを作った連中を買収しただけ。

        • Monoとは別に、MSが作っているランタイムが.NET Core [microsoft.com]。LinuxおよびmacOSをサポートしている。主としてサーバーサイド向けで、GUIフレームワークは今のところ含まれていない。

          親コメント
          • by Anonymous Coward

            GUI部分はMS内の抵抗勢力によってOSS実装から外されたらしい

            • by Anonymous Coward

              仮に作るよ言うてもWPFましてやWinFormsなんていくらMSでもどうにもならんだろうな。
              MonoのWinFormsもバグだらけだがあの程度でも動いてるのは凄いもんだ。

            • by Anonymous Coward

              Xamarin・・・・

        • 買収されてMicrosoftの身内になったってことだから、ことさらそこで切り分ける意味はないと思いますが。
          当面はある程度距離を置くつもりらしいGitHubと違って、.NETという共通の基盤を開発していくために密接に関わることのメリットは大きいと思うし。

          --
          うじゃうじゃ
          親コメント
        • by Anonymous Coward

          なんとかディスりたい気持ちはわかるが、.NET CoreがMicrosoft本体でないというのは無理がありすぎる。

          • by Anonymous Coward

            しかも今後はWindowsネイティブの.NETよりも.NET Coreの方に力を入れていくって言ってるしな

            • by Anonymous Coward

              MSの本業は言語屋だったのだから、本来の仕事に戻るだけだな。

      • by Anonymous Coward

        当初はJavaのパクリって認識だったけど、年数を経て今では言語環境的にはJavaが3周くらい周回遅れでリタイア寸前な感がある

      • by Anonymous Coward

        意識したもなにももともとはJ#として売り出したら
        Sunに訴えられて敗訴して、C#って改称しただけですし

    • by Anonymous Coward

      .NET言い出したころ出た最初のVisual Studio .NETがべらぼうにIDEとして出来が悪くて
      こんなものほんとうに担いでいくのかまた捨てるつもりだろと思ったのを思い出した。
      いつのまにか.NETがMSの大きな財産になってたな

    • by Anonymous Coward

      Write Once, Run Anywhereなんて言っちゃうとDebug Evrywhereという呪いにかかってしまいます

人生unstable -- あるハッカー

処理中...