アカウント名:
パスワード:
「C#に移植」って言葉は正しいのか?
ただしく解釈できる読み方もできるようだけど、Android(OS)をC#(言語)に移植?ってなんじゃそりゃ?って思うよね
それであってるけど。なにがおかしいと思ったの?
多くの場合「xxに移植」って表現では、xxは言語ではなくハードウェアや環境を指すことが多いね。(例: PSPに移植、Windowsに移植)俺にはあんま違和感なかったし、おかしいと言われるまで気付かなかったけど。
言語αで記述されたプログラムを、言語βで記述しなおすことを「言語αから言語βに移植」という表現を使うのは、全然おかしくないでしょう。Jython なんかは「Pythonを(Cから)Javaに移植」したものだし歴史的には「UNIXを(アセンブラから)Cに移植」なんてこともあった。
今回のストーリーは「Android(のGUI フレームワーク)を(Javaから)C#に移植」したものなわけで、それなら意味的に全然問題ないでしょう。「のGUIフレームワーク」という部分がすっぽ抜けてるのが、違和感の大元ですかね。Android全体で見ると、Javaで記述されてるのはその一部に過ぎないから。
>「言語αから言語βに移植」という表現を使うのは、全然おかしくないでしょう。
おかしい。言語は移植の道具。
シャベルAで植木鉢Aに植えたバラを、シャベルBで植木鉢Bに移植するときに、「シャベルBに移植」って言うかい?
移植の道具、単に作る手段の違い、と捉えている人は簡単におかしさに気付いて、言語を環境や何かだと捉えている人はなかなか気付かなかったんじゃないかなぁ。
ことばもまともに使えない=論理性の欠如
いい加減な定義や論理の組立はデスマの元
それは「翻訳」と「移植」が違うとしか言いようがないかと。「ウルトラマンに変身」は言うけど「ウルトラマンに翻訳」とは言わないのと同じです。
> 移植の道具、単に作る手段の違い、と捉えている人は簡単におかしさに気付いて、> 言語を環境や何かだと捉えている人はなかなか気付かなかったんじゃないかなぁ。
これを読んで納得しました。言語を道具と捉える人と、言語を環境と捉える人との意見の相違なわけですね。とはいえ、「おかしさに気付いて」「気付かなかった」などと、「おかしいと感じる方が正しい」という物言いには異を唱えておきます。
ソースは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というのは、同機能な別言語プログラムを作成する手段の一つにすきず、他にもクリーンルーム方式や目コピーなどの手段があるわけで、手段ではなく行為を指す言葉としては「移植」と言うのが一番しっくり来る。
その場合、C#で再実装ってなるんじゃないのか?
なるほど。
私も#2147466で「多くの場合」という表現にとどめているとおり、果たして別言語への書き換えを「移植」と言わないのか、あまり自信がありません。
とりあえずGoo辞書 [goo.ne.jp]には「コンピューターで、ある特定の機種で動くプログラムを、他の機種でも動くように変更すること」とあったので、その定義から外れる別言語への書き換えは便宜上「間違っている」という書き方をしましたが、・「機種」という言葉が曖昧に思えて「環境」と読み替えた方がしっくりくる・私自身が、言語を単なるツールとしてよりも環境として捉えているといった理由から、別言語への書き換えを「移植」と表現することがそうおかしいとは感じていません。
そもそも言語を> 移植の道具、単に作る手段の違い、と捉えている人は頭がおかしいので、
頭がおかしい人がおかしいと思ったというだけの話。
そもそも言語を> 環境や何かだと捉えている人は頭がおかしいので、
……と思ってる人も、いるだろうな。ある種の宗教論争。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
「科学者は100%安全だと保証できないものは動かしてはならない」、科学者「えっ」、プログラマ「えっ」
C#に? (スコア:0)
「C#に移植」って言葉は正しいのか?
Re: (スコア:0)
ただしく解釈できる読み方もできるようだけど、
Android(OS)をC#(言語)に移植?ってなんじゃそりゃ?
って思うよね
Re: (スコア:0)
それであってるけど。
なにがおかしいと思ったの?
Re: (スコア:1)
多くの場合「xxに移植」って表現では、xxは言語ではなくハードウェアや環境を指すことが多いね。(例: PSPに移植、Windowsに移植)
俺にはあんま違和感なかったし、おかしいと言われるまで気付かなかったけど。
1を聞いて0を知れ!
Re: (スコア:0)
言語αで記述されたプログラムを、言語βで記述しなおすことを
「言語αから言語βに移植」という表現を使うのは、全然おかしくないでしょう。
Jython なんかは「Pythonを(Cから)Javaに移植」したものだし
歴史的には「UNIXを(アセンブラから)Cに移植」なんてこともあった。
今回のストーリーは「Android(のGUI フレームワーク)を(Javaから)C#に移植」したものなわけで、それなら意味的に全然問題ないでしょう。
「のGUIフレームワーク」という部分がすっぽ抜けてるのが、違和感の大元ですかね。Android全体で見ると、Javaで記述されてるのはその一部に過ぎないから。
Re:C#に? (スコア:1)
>「言語αから言語βに移植」という表現を使うのは、全然おかしくないでしょう。
おかしい。
言語は移植の道具。
シャベルAで植木鉢Aに植えたバラを、シャベルBで植木鉢Bに移植するときに、「シャベルBに移植」って言うかい?
Re:C#に? (スコア:1)
移植の道具、単に作る手段の違い、と捉えている人は簡単におかしさに気付いて、
言語を環境や何かだと捉えている人はなかなか気付かなかったんじゃないかなぁ。
1を聞いて0を知れ!
Re: (スコア:0)
ことばもまともに使えない=論理性の欠如
いい加減な定義や論理の組立はデスマの元
Re: (スコア:0)
それは「翻訳」と「移植」が違うとしか言いようがないかと。
「ウルトラマンに変身」は言うけど「ウルトラマンに翻訳」とは言わないのと同じです。
1を聞いて0を知れ!
Re:C#に? (スコア:2)
> 移植の道具、単に作る手段の違い、と捉えている人は簡単におかしさに気付いて、
> 言語を環境や何かだと捉えている人はなかなか気付かなかったんじゃないかなぁ。
これを読んで納得しました。言語を道具と捉える人と、言語を環境と捉える人との意見の相違なわけですね。
とはいえ、「おかしさに気付いて」「気付かなかった」などと、「おかしいと感じる方が正しい」という物言いには異を唱えておきます。
ソースはWikipedia、というのがアレですが、Porting [wikipedia.org]の項には
と、異なる言語への書き換えはPorting に含まないとしてますね。おそらくgreenteaさんの考える移植の定義に近いのはこれでしょう。
一方、移植 (ソフトウェア) [wikipedia.org]の項には
と、別言語で動くようにすることについての言及があります。
また、たとえば JRuby [wikipedia.org]の項には
という記述もありますし、この部分は英語版 [wikipedia.org]でも
と、port が使われてる。
別言語への書き換えを移植/portと認めない流儀があるのもわかりますが、
別言語への書き換えも移植/portと表現する流儀もあるわけです。
個人的には英語版のPorting項目で、別言語への書き換えは porting ではなくconversionやtranslationだと言われてるのはかなり違和感があります。
conversionやtranslationというのは、同機能な別言語プログラムを作成する手段の一つにすきず、他にもクリーンルーム方式や目コピーなどの手段があるわけで、手段ではなく行為を指す言葉としては「移植」と言うのが一番しっくり来る。
Re: (スコア:0)
その場合、C#で再実装ってなるんじゃないのか?
Re:C#に? (スコア:1)
なるほど。
私も#2147466で「多くの場合」という表現にとどめているとおり、
果たして別言語への書き換えを「移植」と言わないのか、あまり自信がありません。
とりあえずGoo辞書 [goo.ne.jp]には「コンピューターで、ある特定の機種で動くプログラムを、他の機種でも動くように変更すること」とあったので、
その定義から外れる別言語への書き換えは便宜上「間違っている」という書き方をしましたが、
・「機種」という言葉が曖昧に思えて「環境」と読み替えた方がしっくりくる
・私自身が、言語を単なるツールとしてよりも環境として捉えている
といった理由から、別言語への書き換えを「移植」と表現することがそうおかしいとは感じていません。
1を聞いて0を知れ!
Re: (スコア:0)
そもそも言語を
> 移植の道具、単に作る手段の違い、と捉えている人
は頭がおかしいので、
頭がおかしい人がおかしいと思ったというだけの話。
Re:C#に? (スコア:1)
そもそも言語を
> 環境や何かだと捉えている人
は頭がおかしいので、
頭がおかしい人がおかしいと思ったというだけの話。
……と思ってる人も、いるだろうな。ある種の宗教論争。
1を聞いて0を知れ!