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

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

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

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

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

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

          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

            つか、マイクロソフトは.NETプロジェクト開始時点でWin9x、WinNT、WinCEと異なる系列の
            OSを抱えていたんだからCLIを非プラットフォーム依存の実装にするなんてのは当然だよ。

あつくて寝られない時はhackしろ! 386BSD(98)はそうやってつくられましたよ? -- あるハッカー

処理中...