アカウント名:
パスワード:
「C#に移植」って言葉は正しいのか?
タレコミ見るとコードコンバータを使ったようなので「(Javaから)C#に移植される」で間違ってはいないとは思う。「何を使ったか」という意味合いだと「C#で移植される」だとは思うけど。
あえて言うなら、「AndroidをC#で再実装」になるんですかね。
ただしく解釈できる読み方もできるようだけど、Android(OS)をC#(言語)に移植?ってなんじゃそりゃ?って思うよね
それであってるけど。なにがおかしいと思ったの?
多くの場合「xxに移植」って表現では、xxは言語ではなくハードウェアや環境を指すことが多いね。(例: PSPに移植、Windowsに移植)俺にはあんま違和感なかったし、おかしいと言われるまで気付かなかったけど。
「多くの場合(略)が多いね」って表現の方がおかしいorz
言語αで記述されたプログラムを、言語βで記述しなおすことを「言語αから言語βに移植」という表現を使うのは、全然おかしくないでしょう。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]には「コンピューターで、ある特定の機種で動くプログラムを、他の機種でも動くように変更すること」とあったので、その定義から外れる別言語への書き換えは便宜上「間違っている」という書き方をしましたが、・「機種」という言葉が曖昧に思えて「環境」と読み替えた方がしっくりくる・私自身が、言語を単なるツールとしてよりも環境として捉えているといった理由から、別言語への書き換えを「移植」と表現することがそうおかしいとは感じていません。
そもそも言語を> 移植の道具、単に作る手段の違い、と捉えている人は頭がおかしいので、
頭がおかしい人がおかしいと思ったというだけの話。
そもそも言語を> 環境や何かだと捉えている人は頭がおかしいので、
……と思ってる人も、いるだろうな。ある種の宗教論争。
WindowsをC#に移植AndroidをHTMLに移植LinuxをMisaに移植
おかしいだろ。
移植されたのはOSとしてのAndroidではなくFramework部分だし、移植先は言語としてのC#じゃなくって実行環境としてのMonoだから。
Java→C#で既存コードの変換かけたのは上記の移植を行うための手段であって、移植そのものじゃないってこと。
だったらMonoに移植って書けよ
C#で書き直し、作り直しC#に変換
、、、かな。"移植"ではないと思います。
AndroidのJava依存部を~ではないのか?
なぜそれであってると言い張れる?
どうやって記事が書かれる前に「君の脳みそ」がおかしいと思うことができたの?
良かった、こんなにおかしいって思う人が居てどうも許せない日本語だった
正しいと思います。
英語でもアルゴリズムはシステムを他の言語で実装し直すのに、Portingという言葉を使いますよね。Box2DのJavaScriptへのPorting。C++へのJSON ParserのPorting。環境間の移植もPortingなので、Portingの訳語としては移植を使うのは普通だと思いますし、用途に応じて訳語を使い分けるという話は聞いたことがないです。_
言語は移植の道具と言われている方も言いますが、生アセンブリ言語とかマシン語ならともかく、今は処理系が環境の差異を吸収する仕事もしていたりもしますし、他の言語で実装し直すことが、使える環境を広げることに直結もしますし、他環境への移植というものと直行したものではないとは思います。
今回の例は、移植はしたけど、実際の動かすハードウェア環境は変わらず、使える機能はほぼ同じながらVM部分を入れだけなので、最終的な結果から見ると違和感を感じる人がいてもおかしくはないと思いますが・・・
Portingならわかる。移植なんて翻訳するから気持ち悪いんだ。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
「科学者は100%安全だと保証できないものは動かしてはならない」、科学者「えっ」、プログラマ「えっ」
C#に? (スコア:0)
「C#に移植」って言葉は正しいのか?
Re: (スコア:0)
タレコミ見るとコードコンバータを使ったようなので「(Javaから)C#に移植される」で間違ってはいないとは思う。
「何を使ったか」という意味合いだと「C#で移植される」だとは思うけど。
Re:C#に? (スコア:1)
あえて言うなら、「AndroidをC#で再実装」になるんですかね。
Re: (スコア:0)
ただしく解釈できる読み方もできるようだけど、
Android(OS)をC#(言語)に移植?ってなんじゃそりゃ?
って思うよね
Re: (スコア:0)
それであってるけど。
なにがおかしいと思ったの?
Re:C#に? (スコア:1)
多くの場合「xxに移植」って表現では、xxは言語ではなくハードウェアや環境を指すことが多いね。(例: PSPに移植、Windowsに移植)
俺にはあんま違和感なかったし、おかしいと言われるまで気付かなかったけど。
1を聞いて0を知れ!
Re:C#に? (スコア:1)
「多くの場合(略)が多いね」って表現の方がおかしいorz
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を知れ!
Re: (スコア:0)
WindowsをC#に移植
AndroidをHTMLに移植
LinuxをMisaに移植
おかしいだろ。
Re: (スコア:0)
移植されたのはOSとしてのAndroidではなくFramework部分だし、
移植先は言語としてのC#じゃなくって実行環境としてのMonoだから。
Java→C#で既存コードの変換かけたのは上記の移植を行うための手段であって、
移植そのものじゃないってこと。
Re: (スコア:0)
だったらMonoに移植って書けよ
Re: (スコア:0)
C#で書き直し、作り直し
C#に変換
、、、かな。
"移植"ではないと思います。
Re: (スコア:0)
AndroidのJava依存部を~ではないのか?
なぜそれであってると言い張れる?
Re: (スコア:0)
どうやって記事が書かれる前に「君の脳みそ」がおかしいと思うことができたの?
Re: (スコア:0)
良かった、こんなにおかしいって思う人が居て
どうも許せない日本語だった
Re: (スコア:0)
正しいと思います。
英語でもアルゴリズムはシステムを他の言語で実装し直すのに、Portingという言葉を使いますよね。Box2DのJavaScriptへのPorting。C++へのJSON ParserのPorting。環境間の移植もPortingなので、Portingの訳語としては移植を使うのは普通だと思いますし、用途に応じて訳語を使い分けるという話は聞いたことがないです。_
言語は移植の道具と言われている方も言いますが、生アセンブリ言語とかマシン語ならともかく、今は処理系が環境の差異を吸収する仕事もしていたりもしますし、他の言語で実装し直すことが、使える環境を広げることに直結もしますし、他環境への移植というものと直行したものではないとは思います。
今回の例は、移植はしたけど、実際の動かすハードウェア環境は変わらず、使える機能はほぼ同じながらVM部分を入れだけなので、最終的な結果から見ると違和感を感じる人がいてもおかしくはないと思いますが・・・
Re: (スコア:0)
Portingならわかる。
移植なんて翻訳するから気持ち悪いんだ。