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

AndroidがC#に移植される 」記事へのコメント

  • by Anonymous Coward

    「C#に移植」って言葉は正しいのか?

    • by Anonymous Coward

      ただしく解釈できる読み方もできるようだけど、
      Android(OS)をC#(言語)に移植?ってなんじゃそりゃ?
      って思うよね

      • by Anonymous Coward

        それであってるけど。
        なにがおかしいと思ったの?

        • 多くの場合「xxに移植」って表現では、xxは言語ではなくハードウェアや環境を指すことが多いね。(例: PSPに移植、Windowsに移植)
          俺にはあんま違和感なかったし、おかしいと言われるまで気付かなかったけど。

          --
          1を聞いて0を知れ!
          • 言語αで記述されたプログラムを、言語βで記述しなおすことを
            「言語αから言語βに移植」という表現を使うのは、全然おかしくないでしょう。
            Jython なんかは「Pythonを(Cから)Javaに移植」したものだし
            歴史的には「UNIXを(アセンブラから)Cに移植」なんてこともあった。

            今回のストーリーは「Android(のGUI フレームワーク)を(Javaから)C#に移植」したものなわけで、それなら意味的に全然問題ないでしょう。
            「のGUIフレームワーク」という部分がすっぽ抜けてるのが、違和感の大元ですかね。Android全体で見ると、Javaで記述されてるのはその一部に過ぎないから。

            • by Anonymous Coward

              >「言語αから言語βに移植」という表現を使うのは、全然おかしくないでしょう。

              おかしい。
              言語は移植の道具。

              シャベルAで植木鉢Aに植えたバラを、シャベルBで植木鉢Bに移植するときに、「シャベルBに移植」って言うかい?

              • 移植の道具、単に作る手段の違い、と捉えている人は簡単におかしさに気付いて、
                言語を環境や何かだと捉えている人はなかなか気付かなかったんじゃないかなぁ。

                --
                1を聞いて0を知れ!
              • by taka2 (14791) on 2012年05月06日 14時28分 (#2147682) ホームページ 日記

                > 移植の道具、単に作る手段の違い、と捉えている人は簡単におかしさに気付いて、
                > 言語を環境や何かだと捉えている人はなかなか気付かなかったんじゃないかなぁ。

                これを読んで納得しました。言語を道具と捉える人と、言語を環境と捉える人との意見の相違なわけですね。
                とはいえ、「おかしさに気付いて」「気付かなかった」などと、「おかしいと感じる方が正しい」という物言いには異を唱えておきます。

                ソースはWikipedia、というのがアレですが、Porting [wikipedia.org]の項には

                The term is not generally applied to the process of adapting software to run with less memory on the same CPU and operating system, nor is it applied to the rewriting of source code in a different language (i.e. language conversion or translation).

                と、異なる言語への書き換えはPorting に含まないとしてますね。おそらくgreenteaさんの考える移植の定義に近いのはこれでしょう。

                一方、移植 (ソフトウェア) [wikipedia.org]の項には

                しかしWindowsとMacintoshシリーズでは、一部のソフトウェアを除いては、同じソフトウェアが動作しない。これらはOS側で提供している環境が異なるためである。これと同じように、世界中には様々なプログラミング言語が存在し、同じ動作をコンピュータにさせるためには、それぞれのプログラミング言語の仕様に則ったプログラムを作成しないと、動作するソフトウェアは作れない。例を挙げれば、プログラミングの基礎中の基礎とされるHello worldが挙げられる。この、“Hello world!”と表示するだけの、僅か数十文字程度のプログラムは、プログラミングに利用する言語によって様々に変化する(詳細はHello worldの項を参照のこと)。

                と、別言語で動くようにすることについての言及があります。
                また、たとえば JRuby [wikipedia.org]の項には

                JRuby は2001年、Jan Arne Petersen が開発した。その当時(およびそれから数年間)、そのコードは Ruby 1.6 のC言語コードの直接的な移植に過ぎなかった。

                という記述もありますし、この部分は英語版 [wikipedia.org]でも

                the code was a direct port of the Ruby 1.6 C code.

                と、port が使われてる。

                別言語への書き換えを移植/portと認めない流儀があるのもわかりますが、
                別言語への書き換えも移植/portと表現する流儀もあるわけです。

                個人的には英語版のPorting項目で、別言語への書き換えは porting ではなくconversionやtranslationだと言われてるのはかなり違和感があります。
                conversionやtranslationというのは、同機能な別言語プログラムを作成する手段の一つにすきず、他にもクリーンルーム方式や目コピーなどの手段があるわけで、手段ではなく行為を指す言葉としては「移植」と言うのが一番しっくり来る。

                親コメント
              • by greentea (17971) on 2012年05月06日 17時51分 (#2147775) 日記

                なるほど。

                私も#2147466で「多くの場合」という表現にとどめているとおり、
                果たして別言語への書き換えを「移植」と言わないのか、あまり自信がありません。

                とりあえずGoo辞書 [goo.ne.jp]には「コンピューターで、ある特定の機種で動くプログラムを、他の機種でも動くように変更すること」とあったので、
                その定義から外れる別言語への書き換えは便宜上「間違っている」という書き方をしましたが、
                ・「機種」という言葉が曖昧に思えて「環境」と読み替えた方がしっくりくる
                ・私自身が、言語を単なるツールとしてよりも環境として捉えている
                といった理由から、別言語への書き換えを「移植」と表現することがそうおかしいとは感じていません。

                --
                1を聞いて0を知れ!
                親コメント

海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs

処理中...