AndroidがC#に移植される 93
ストーリー by headless
移植 部門より
移植 部門より
matarillo 曰く、
Xamarinは、AndroidのJavaで書かれた部分をC#に移植した「XobotOS」をGitHubで公開した( Xamarinのブログ記事、 GitHub - XobotOS、 atsushieno氏のブログ記事、 本家/. )。
XobotOSはJavaをC#に変換する「Sharpen」と呼ばれるツールを使用して移植された。ホストOSと統合する部分のコードと、Java JNIからCで書かれたネイティブコードを呼び出すコードを手作業で置き換えた以外は、Sharpenにより自動変換されている。XobotOSではAndroidがMono上で動作し、Dalvik VM上と比べて大幅にパフォーマンスが向上するという。また、C#と.NET VMはECMAで標準化されており、Javaのような特許問題が発生しない点もメリットといえる。
ライブラリをどうするか (スコア:1)
できればネイティブ言語APIとして両方つかえると嬉しいんだろうけど...
容量的には難しいかw
# 最後段のインタフェース面だけJavaライクなAPI層だけ用意して、中身をMonoベースにしてもいいかもしれぬ、という夢もあるな、夢だけだが。
M-FalconSky (暑いか寒い)
そこまでするなら (スコア:1)
Windows Phoneを使えばいいじゃないの?
もっとパフォーマンス向上するよ。
オープンソースじゃないけど。
Re: (スコア:0)
目的がちがうくない?
技術者としては歓迎 (スコア:0)
ただし、自分がAndroidアプリ開発者だったら悲鳴を上げる。
おお、すごい・・・ (スコア:0)
のか?
c#や.netもでかくて重い印象だが。
それにJavaっていうかDalvicも何かメリットがあるんだろ?
思い付かないけど。
Re:おお、すごい・・・ (スコア:3, 興味深い)
structが使えたり(無駄なヒープ使用/new削減効果、gcのスキャン対象削減効果)、デフォルトがvirtualメソッドにならなかったり、type erasureが無い分最適化されたコードが生成されたり
dalvikよりははるかにマシな速度が出る。フットプリントは知らん。
あとdalvikは速度面ではluaに負けてた(luajit)
Re: (スコア:0)
メモリ消費も少ないみたいだけど、フットプリントについての記述が見つからない。ROM500MBくらい専有するけど軽いよとか言われてもな
Re: (スコア:0)
ところがぎっちょん
C#が使える ≠ NET Frameworkが使える
JAVAは休み時間だけで良いよ (スコア:0)
仕事ほっぽり出してコーヒー飲んでるんじゃねぇー
バイトコード互換性 (スコア:0)
これってAndroidのアプリは動かないんだよね? Android向けでOSSのソフトならXobotOS自体と同じ手順で移植できるけど、プロプラのアプリとかはそのままでは動かないのかな。HT-03Aが余ってるから高速化できるならしてみたい…
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: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:C#に? (スコア:1)
なるほど。
私も#2147466で「多くの場合」という表現にとどめているとおり、
果たして別言語への書き換えを「移植」と言わないのか、あまり自信がありません。
とりあえずGoo辞書 [goo.ne.jp]には「コンピューターで、ある特定の機種で動くプログラムを、他の機種でも動くように変更すること」とあったので、
その定義から外れる別言語への書き換えは便宜上「間違っている」という書き方をしましたが、
・「機種」という言葉が曖昧に思えて「環境」と読み替えた方がしっくりくる
・私自身が、言語を単なるツールとしてよりも環境として捉えている
といった理由から、別言語への書き換えを「移植」と表現することがそうおかしいとは感じていません。
1を聞いて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)
どうやって記事が書かれる前に「君の脳みそ」がおかしいと思うことができたの?
Re: (スコア:0)
良かった、こんなにおかしいって思う人が居て
どうも許せない日本語だった
オラクルのJAVA API訴訟との関係 (スコア:0)
JNI層ってAPI層より下だから
マーケットにあるプログラムをC#にリコンパイルすれば
オラクルは何も言えなくなるのだろうか
Re: (スコア:0)
言えるだろ。
GPLのソフトウェアをツールで自動変換したので、GPLライセンスには抵触しません(キリッ
とか、通るわけない。
Re:そして頃合いを見てMSが収穫に入るんですね (スコア:2, すばらしい洞察)
既にMSはその手のクレームはしないと宣言してるわけだが
Re: (スコア:0)
第三者の権利を侵害する恐れは残るよね
Re: (スコア:0)
そしてMSがオラクルに買収されると。
#ないない
Re:そして頃合いを見てMSが収穫に入るんですね (スコア:1)
つまりMozillaが将来ECMAScriptの使用料を請求する可能性もあるわけですねww
Re: (スコア:0)
MSがクレームを入れるならLinuxでも既にMonoが大分入り込んでますので
収穫するにはおいしい時期ですが何も言っていないでしょう。
さらに、auの業務向け端末なんかでC#使える端末ありますが何も言われてません。
他にも、PSSDKもC#ですが何も言われないですよ。
MSの宣言もあったはずですし。
Re: (スコア:0)
というか、C# は ISO でも標準化通ってますよ。
Re: (スコア:0)
なんでそれほどまでにMSを批判したがるの?何もしてないのに。
Re:そして頃合いを見てMSが収穫に入るんですね (スコア:1)
これって批判なの? 特許問題が「発生しない」と書いてあったら、それを誰が保証しているのか、発生しないと考える根拠はあるのか、気にするのはおかしいことじゃないよね。
1を聞いて0を知れ!
Re: (スコア:0)
気にしているのだとしたら、自分では何も調べないくせにタイトルで結論を出しちゃってるのは十分におかしいことですよ
Re:そして頃合いを見てMSが収穫に入るんですね (スコア:1)
タイトルに書いてあることが結論なの?
1を聞いて0を知れ!
Re:そして頃合いを見てMSが収穫に入るんですね (スコア:1)
なぜそうなるの?
1を聞いて0を知れ!
Re:そして頃合いを見てMSが収穫に入るんですね (スコア:1)
あなたの使用している言葉の意味に解釈の幅があるため、書いておられることが正しいか、必ずしも正しくないかの判断がつきませんが。
正しいことを書いておられると仮定した場合、細かいところを深く考えすぎ・気にしすぎであるか、あるいはあなたもまた、根拠のないdisりを行っている可能性が否定できないかのように思えます。
1を聞いて0を知れ!
Re:そして頃合いを見てMSが収穫に入るんですね (スコア:1)
> こうやって、求められれば根拠を解説しております
別に、俺をdisってるだなんて書いてないよ。
> あなたは、正しいと思われる解釈と、そうでない解釈を書くべきです
大した労力もなく、YouTubeでも見ながら書ける程度のものなら、そうすべきだったね。
あまりに面倒で、そこまでするモチベーションがなかったからしなかったけど。
主要な、解釈が分かれる部分を書いておくと、
まずは「根拠のない」というのが曖昧だよね。
例えば、完全な検証がなされていないといっているのか、あるいは不完全な検証すらなされていないといっているのか。
「disり」というのも、君にとって、どのような場合にdisりと言えるのかが明確でない。
1を聞いて0を知れ!
Re:そして頃合いを見てMSが収穫に入るんですね (スコア:1)
あとさー。
> こうやって、求められれば根拠を解説しております
今まで御丁寧に解説して下さっていた人が全員同一人物であったかどうかなんて、俺は知らない。
# というわけで。俺がコメントごとに全然違う一貫性のない主張をしているのがバレたら指摘されるだろうが、
# 君は、いくらでも、コメントごとに主張を変えることができる。俺には、別人かもしれない人に「さっきは全然違うこと書いてたよね」と反論できないのだから。
# こんなハンディキャップ、負いたくはないが、ID使ってるんだからしゃーない。
1を聞いて0を知れ!
Re:そして頃合いを見てMSが収穫に入るんですね (スコア:1)
> #2147294には疑問が一つあるだけですので
文法上、疑問文だからといって、その文章が意味するものが必ずしも「確信」でないといえるだろうか?
#2147294は保証が有るのか無いのか、全く知らなかったのだろうか?
> あなたを含め、このスレを読んでいる方にとっても大差ないところだと想像しています
そもそも俺は
> そして頃合いを見てMSが収穫に入るんですね
をdisりとは感じなかった。それに近いとも感じなかった。
1を聞いて0を知れ!
Re:そして頃合いを見てMSが収穫に入るんですね (スコア:1)
> これは事実ではありません
それ自体が事実でないことを指摘しているコメントはこのストーリー中にはないようだが、ソースは?
> そう考えるにいたった合理的な理由がない述べられていない限り、おかしいとしか言いようがありません
思い込みや勘違い、調べ方がいい加減などの理由による「間違い」ということもありうるし、その場合、disる意図はなかったのかもしれない。
> やはり奇妙な行動と言わざるをえません
ソース出せと言われるのが面倒だったとか、いくらでも合理的な理由は考えられる。
> 事実無根の表明をわざわざ単発で為すことは、一般的に悪意の表明と見ることに異論はないでしょう
それを書いた時点で、書いた人にとって「起こり得る」と考えられることを書くことが、必ずしも悪意の表明だとは思いませんね。
# ていうか、君は誰?
1を聞いて0を知れ!
Re:そして頃合いを見てMSが収穫に入るんですね (スコア:1)
あの短文が、明確な悪意によって書かれたことを示すのって、かなり難しいと思うよ。
# それに、そんなのを示したところで、誰が得するというのか。
さらに、仮に俺が「たしかにあの文は悪意があったのかもしれない」と認めたところで、別に俺は、元の文を書いた本人でも陪審員でもないのだから、あの文に悪意があったことにはならない。
どーしても続けたいというのなら、面倒すぎない範囲で相手してもいいけど、あまりに不毛としか言いようがない。
1を聞いて0を知れ!
Re:そして頃合いを見てMSが収穫に入るんですね (スコア:1)
> MSがECMA 334と335の実装について、誰がどのように行おうと一切の主張はしないと約束した、というのが事実です
"ECMA標準にはW3C勧告みたいな保証がある" というのが事実かどうかを聞いたのだけど。
それは全然違うよね。
> 「そして頃合いを見てMSが収穫に入るかもしれない」という主張ならともかく、「入るんですね」と断定することは、相当な隔たりがありますね
そりゃ、君がそう思ってるだけ。
ネット上では「xxですね。わかります」という表現がよく見られるので、少なくとも俺には、それが強い断定を意図しているようには読めなかった。
> 警戒せざるを得ません
どんどん警戒して下さい(笑)
ここであまり人格攻撃とかやらかすと、このID使い辛くなるから、そんなバカなことはしないけどね。
> 理由はなんであれ、根拠を述べずに他人をdisるのはそれだけでじゅうぶん問題行動ですね
じゃあ、不十分な根拠で他人をdisるのは?
他人に対して「他人をdisっている」というレッテルを張るのはdisるに含まれる?
> まさにサブマリン特許で問題になっているパターンですから、disる意図がないということはありえません
論理の飛躍としか言えないな。
> 事実に反する表明を指摘し訂正すること、またその意図を明らかにし再発を抑制すること
MSにそのような意図がないことを指摘するコメントは既にあるので、訂正する目的は既に達せられてるよね。
それに私と押し問答したところで、意図は明らかにならないよね。
> 元の書き手に悪意がなかったとしても、そう見做されるということを彼が理解すれば収穫です
これ以上やっても、今以上に彼が理解するというシナリオは期待できないよ。
そう印象付けたいのなら、ACの利点を駆使して、あたかも何人もの人がそう思っているかのように見せかけた方がよほどスマートだよ。
1を聞いて0を知れ!
Re:そして頃合いを見てMSが収穫に入るんですね (スコア:1)
> ECMAはRANDでW3C勧告はロイヤリティーフリーですが、フリーな実装から特許使用料を徴収するのは妥当とはみなされていません
で、それは保証されてるの?
> 強くなくても断定には違いなく、「かもしれません」とはやはり相当な隔たりがあります
そりゃ、君がそう感じただけ。
> 私の正体にはもう興味を失ってしまったのですか
君の正体に興味を持ったことがあると示せる?(笑)
> サブマリン特許が問題視され非難されていることをご存知ないでしょうか
論理の飛躍という言葉の意味をご存知ない?
> 不完全な論理と、最初から論理がないのでは、やはり大きな隔たりがあります
また大きな隔たり出たよ。あまりないと思うよ。
それに、最初から論理がないことを君は示せていない。
> いえ、中学生なら理解できるところまで解説をすすめることができました
とても主観的で、根拠がないにも関わらず断定的なよい文章ですね。
なお、この文章が、特に根拠を挙げることなく表明されているため、#2147936の「事実無根の表明をわざわざ単発で為すことは、一般的に悪意の表明と見ることに異論はないでしょう」という解釈を採用すれば、この文章は悪意の表明となります。
あなた、ひどいですね(笑)
> 万が一、彼や一部の他の人があなた並の知能の持ち主であれば、これから理解してもらえる可能性があります
そもそも、こんなもん誰が読んでるの?
> 印象ではなく、議論を理解することのみが目的を達成させることができます
これ、議論なの?
1を聞いて0を知れ!
Re:そして頃合いを見てMSが収穫に入るんですね (スコア:1)
> はい
それ関連の書籍を読むなどの方法で、そのことを知っている人は少ないだろうね。
勘違いしていた、誤認識していた可能性は多いにある。
> 断定と、断定はできないがその可能性をしめすのでは、大きな隔たりがあります
それは君の印象論。
> あなたはわたしに誰かと問いました
君に言った? そうかなぁ? 分からないなぁ。
> そのとおりです
へぇ。ひどい奴もいるもんだ。
1を聞いて0を知れ!
Re:そして頃合いを見てMSが収穫に入るんですね (スコア:1)
sorry, my IME is broken now. but,
> マニュアルも読まないあなたですからねえ
how can you know it? are you stalking me?
and maybe, it's not true :)
> ほかに質問はありませんか?
who are you?
1を聞いて0を知れ!