Google、SwiftをAndroidの第一級言語にすることを検討? 130
ストーリー by headless
一級 部門より
一級 部門より
Googleがプログラミング言語「Swift」をAndroidの第一級言語にすることを検討していると報じられている(The Next Webの記事、
Android Centralの記事、
Neowinの記事、
Softpediaの記事)。
Appleが2014年のWWDCで発表したSwiftは昨年12月にオープンソース化され、Objective-Cに代わるプログラミング言語として注目を集めている。The Next Webへの情報提供者によれば、GoogleはSwiftのオープンソース化に前後してFacebookやUberとロンドンで会合を開き、Swiftに関して話し合っていたそうだ。この場で特にSwiftへの強い意欲を見せていたのはGoogleだったとのこと。
現在のAndroidではJavaが第一級言語となっているが、情報提供者によればいきなりSwiftがJavaに置き換わることはないという。しかし、JavaについてはOracleとの訴訟もあり、Swiftは幅広い利点があるとみているようだ。
昨年10月には開発者のRomain Goyet氏がSwiftのコードをAndroidで実行する実験を行っているが、この実験ではAndroid NDKを使用していた。Swiftがオープンソース化された現在、Googleがランタイムを用意し、標準ライブラリやAPI、SDKなどをSwiftに対応させればAndroid NDKなしにSwiftをAndroidで使用できるようにすることも可能だが、実際にはどうなるだろうか。
Appleが2014年のWWDCで発表したSwiftは昨年12月にオープンソース化され、Objective-Cに代わるプログラミング言語として注目を集めている。The Next Webへの情報提供者によれば、GoogleはSwiftのオープンソース化に前後してFacebookやUberとロンドンで会合を開き、Swiftに関して話し合っていたそうだ。この場で特にSwiftへの強い意欲を見せていたのはGoogleだったとのこと。
現在のAndroidではJavaが第一級言語となっているが、情報提供者によればいきなりSwiftがJavaに置き換わることはないという。しかし、JavaについてはOracleとの訴訟もあり、Swiftは幅広い利点があるとみているようだ。
昨年10月には開発者のRomain Goyet氏がSwiftのコードをAndroidで実行する実験を行っているが、この実験ではAndroid NDKを使用していた。Swiftがオープンソース化された現在、Googleがランタイムを用意し、標準ライブラリやAPI、SDKなどをSwiftに対応させればAndroid NDKなしにSwiftをAndroidで使用できるようにすることも可能だが、実際にはどうなるだろうか。
今でもSwiftで書こうと思えばできるよ (スコア:5, 参考になる)
Android NDKの実体はただのelf共有ライブラリだから、Linux版のSwift共有ライブラリをBionic Cにリンクさせてコンパイルすればいいだけ。
そのうえで@_silgen_nameを使ってAndroid NDKのCの関数をバインドすれば、ほぼ全てSwiftでかくことが出来る。
Goじゃないんだ (スコア:1)
Google的にはGoじゃダメな理由があるんだろうか。
Goに移行するのに比べれば、iOSでも使えるSwiftに移行する方が反発が少ないと考えたのかな。
Re:Goじゃないんだ (スコア:4, 興味深い)
Go言語は、C言語と同等の移植性をあるバイナリを出力出来る代わりに、実現できる言語機能に制限が有る。
関数の多重定義とか、ソースコード内では、同じ名前の関数があっても問題ないが、
コンパイル後のバイナリに複数の関数を同じシンボル名を埋め込むことは出来ない。
そういう理由があって Go言語は関数の多重定義が出来ないし、ジェネリックな関数も定義できない、
その手の機能を追加するとC++の様な名前修飾をやる必要が出てきて、
シンボル名が訳のわからない名前になり、他のバイナリや言語から呼び出すことが困難になって
C++と同じような永遠にC言語を置き換えられない言語になってしまうわけだ。
Swiftが候補に上がる理由は、
最近の言語は構文解析が高速にできるという基準で文法が定義されているので。
似たような文法になってしまい、わざわざ新言語る理由がないからだろう。
まぁSwiftよりかは android studioで使える JetBrains製のkotlinが手っ取り早いとは思うけれど
Re: (スコア:0)
言語の統一は開発者にメリットのあることだよ。
特にGoである必要が無ければ、同じ言語が使えないか検討するのは技術者なら当然じゃない。
まあ現段階ではOracle裁判に対する観測気球かもしれんけどね。
Re: (スコア:0)
Android用のアプリを作るためにAPIをごちゃごちゃ付け足さなくてはならなくなって、言語仕様が汚くなるだろうが。
他人の家に土足で踏み込むのはOKだが、自分の家は汚したくないってこと。
Re: (スコア:0)
もちろんデベロッパーのただ乗りが目的だろ。
Goをつかえるデベロッパーを育てないといけないじゃないか。
Re: (スコア:0)
JavaやSwiftの人は違いをマイバッドノウハウディクショナリイに蓄積して飯の種にする
違いが有るからだと思うよ
Re: (スコア:0)
実際にGoを使ってみた上でそう思うのか?
Re: (スコア:0)
swiftでアンドロイドアプリをかけるようになればクロスプラットフォームのアプリを開発するのが相当楽になるでしょうね。
Re: (スコア:0)
Goは言語的にちょっとアプリ書いたりするには厳しいかナー
Re:Goじゃないんだ (スコア:2, 興味深い)
Goはまず学習を始めようとしてgoogleで"Go"を検索したところでPokemon Goやらの
無関係な情報のヒット率の高さに嫌気がさします。
統計のRもそうだけど、名称をつけるときにはもうちょっと考えて貰いたいと。
Re:Goじゃないんだ (スコア:1, 参考になる)
おいおい、今更こんなこといってる奴いんのかよ
rubyならrubylang、goならgolang、scalaならscalalangなんてググらビリティの基本だろ
まだ名称がどうのとかレベル低い事いうやつは無理に語ろうとすんなよ
Re: (スコア:0)
どうせJITなんだし (スコア:1)
javascriptでいいじゃん。それでもjavaより何倍か速いでしょ。
swiftっていいの?
Re:どうせJITなんだし (スコア:1)
JavaScriptよく知らないんですがこの言語のことですか?
http://dorey.github.io/JavaScript-Equality-Table/unified/ [github.io]
Re: (スコア:0)
>javascriptでいいじゃん。それでもjavaより何倍か速いでしょ。
えっ
Re: (スコア:0)
Javaはともかく、AndroidとJavascriptはご存じないと察しました。
バルス!!! (スコア:0)
Androidアプリの開発に使うとなると、Androidに合わせたAPI等を用意しないといけないから、
当然、素のSwiftから別の名前をつけてフォークするんだろうな。Laputaとかはどうかね?
もちろんシステムをhaltさせる「滅びの言葉」が用意されているのだ。
Intelも罪作りな... (スコア:0)
ASUSとかはARMじゃなくてx86の機種いっぱい出してるから、
JavaVMからネィティブに移行されるとユーザーは悲惨なことになりそう
Re: (スコア:0)
なにで訴えられるのか教えてください。
Re: (スコア:0)
androidが更にシェアを伸ばして、iphoneが売れなくなったら、
アップルが嫌がらせを始めるかもしれん。
Re:で、今度はAppleに訴えられるんですか? (スコア:2)
>アップルが嫌がらせを始めるかもしれん。
嫌がらせするのと、訴えるのは別だと理解できていないのだろうか?
Re: (スコア:0)
今でも日米でしか売れてないのに?
Re: (スコア:0)
iPhoneも日米でしか売れてないことにされるんだよね。信仰心とはかくも目を曇らせるものなのか
Re: (スコア:0)
Oracleとの裁判で、ライブラリのインターフェイスに著作権が認められたでしょ。
Appleの許諾なしにSwiftのライブラリを使うと訴えられるのよ。
Re: (スコア:0)
フェアユーズならいいんでしょ
その件はまだ裁判中だったと思うけど
Re: (スコア:0)
別にライブラリの互換性は必要ないんじゃないの?
Javaは一度かけば全ての環境で動くことを目指してたので、ライブラリのインターフェイスが重要だったけど
環境に合わせて専用のライブラリを使うようにすれば、あとはSwiftの言語でかけるってだけなので
ライセンスとか問題にならないと思う。
逆に言うと、ライブラリのインターフェイスを無理して合わせても、iOSのアプリがそのままAndroidで動かすのは難しいということでもあるんだけど(そこまでするメリットも少ないだろうし)
Re:だから人気物へタダ乗りしようとする癖はやめなさいってwww (スコア:1)
書く側としては情報多い方がいいので、人気の言語の方が嬉しいですけどね。
# タイトルに脊髄反射
> Javaと全く同じトラブルが繰り返される可能性を払しょくできないだろうが。
これについては同意。
Goなら問題ないのに。あとC++あたり?
# スマホアプリを開発するのに適しているかは別問題
Re: (スコア:0)
もうJavaScriptをコンパイルしたらいいんじゃないですかね。
Re: (スコア:0)
人気者のC#がこっちを見ている
Re: (スコア:0)
問題は言語仕様じゃないから。
断片化言われて久しいけど、つまり、開発つらいからデベロッパが離れていく。
デベロッパが離れるから他人のフレームワークをバクらないといけない。
でもAppleからSDKパクれば裁判ざたになると思われ。
Re: (スコア:0)
C#を採用すると、Windows Mobileへの援護射撃になりそうじゃない?
今は泡沫プラットフォームだけど、第3勢力として浮上したらイヤでしょ。
Re: (スコア:0)
Windows 10 MobileじゃないWindows Mobileなら、泡沫どころかぶっちぎりのシェア一位でしたよ。iPhoneが誕生するまでは。
Re:だから人気物へタダ乗りしようとする癖はやめなさいってwww (スコア:1)
iPhone がでてきても、しばらくは販売台数トップは、数年譲りませんでしたし。
MS がモバイル市場で、重要なポジションを獲得したことは一度もありません。
Windows Mobile のときも有象無象の一つ。
Re: (スコア:0)
だから?そんな昔の話を持ち出して何が言いたいの?
Re: (スコア:0)
Androidがすでにただ乗りなんだけどそれはいいのか
Re: (スコア:0)
Re: (スコア:0)
「可能性を払拭できない」って何にでも言えるからほとんど意味ない懸念だな
そんな杞憂めいた心配ごとより、自分の知識が再利用できるほうが遥かに重要
Re: (スコア:0)
Javaから乗り換える意味は?
Re: (スコア:0)
GoogleがJava止めたら乗り換える意味大ありじゃん、開発者にとっては。
Googleが何考えてるかは知らないが、そりゃ検討くらいするだろ。
Re: (スコア:0)
WebKitみたいに分裂させるような事にならなきゃいいけど、どうなんだろう
Re: (スコア:0)
MSはLinus個人だかLinux Foundationだかにいくら払ったのかな?
Re: (スコア:0)
MSはLinuxカーネルへコードを書いてるよ
Re:だから人気物へタダ乗りしようとする癖はやめなさいってwww (スコア:2)
仮にHyper-V関係だけだとして、それが何か問題でもあるの?
Re: (スコア:0)
ところがMSはLinuxに無視できないレベルで貢献してる会社だったりするんだな
で、そういうこと言うお前はどうなんだ?
まさかタダ乗りじゃあないよな?
Re:FacebookとUberはSwiftを開発の中心に据える (スコア:2, 参考になる)
言語処理における「ファーストクラス」「第一級」とは - ctrlshiftの日記
>その答えは、『Structure and Interpretation of Computer Programs(計算機プログラムの構造と解釈)』の1.3.4にある
>「Procedures as Returned Values」に記述がありました。
-略-
>翻訳すると以下のようになります。
>一般に、プログラム言語には、計算要素を扱う方法において、様々な制限があります。
>このような制限がきわめて少ない要素を、第一級(ファーストクラス)の身分を持つ、と言います。
ここでは、特に工夫することなく…くらいの意味
今でも「工夫すれば」使える、とか、CでもOOPできる、とか、COBOLをJavaで置き換える、とかいうのは「ファーストクラス」ではない
Re:FacebookとUberはSwiftを開発の中心に据える (スコア:1)
Re: (スコア:0)
first classって何となくは分かるが、モヤっとした言い方だな。第一級オブジェクトでやり取りできるのが第一級言語、とすると、「バイナリをネイティブにサポート」くらいの方が近いニュアンスなんじゃないかな。Javaから乗り換える意思すらないように見える。
Re: (スコア:0)
政治用語でしょ。利用はしたいけど、何らかの義務が発生するような言質を与えたくないんだよ。
tech企業としてなんかアレだが。
Re: (スコア:0)
プログラミング用語ではないと思うけどね。飛行機のファーストクラスと同じ。