パスワードを忘れた? アカウント作成
12746396 story
Android

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で使用できるようにすることも可能だが、実際にはどうなるだろうか。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by StandardIO (47182) on 2016年04月09日 22時14分 (#2994881) 日記

    Android NDKの実体はただのelf共有ライブラリだから、Linux版のSwift共有ライブラリをBionic Cにリンクさせてコンパイルすればいいだけ。
    そのうえで@_silgen_nameを使ってAndroid NDKのCの関数をバインドすれば、ほぼ全てSwiftでかくことが出来る。

  • by Anonymous Coward on 2016年04月09日 19時17分 (#2994799)

    Google的にはGoじゃダメな理由があるんだろうか。
    Goに移行するのに比べれば、iOSでも使えるSwiftに移行する方が反発が少ないと考えたのかな。

    • by chromoly (46484) on 2016年04月09日 22時21分 (#2994887)

      Go言語は、C言語と同等の移植性をあるバイナリを出力出来る代わりに、実現できる言語機能に制限が有る。

      関数の多重定義とか、ソースコード内では、同じ名前の関数があっても問題ないが、
      コンパイル後のバイナリに複数の関数を同じシンボル名を埋め込むことは出来ない。
      そういう理由があって Go言語は関数の多重定義が出来ないし、ジェネリックな関数も定義できない、

      その手の機能を追加するとC++の様な名前修飾をやる必要が出てきて、
      シンボル名が訳のわからない名前になり、他のバイナリや言語から呼び出すことが困難になって
      C++と同じような永遠にC言語を置き換えられない言語になってしまうわけだ。

      Swiftが候補に上がる理由は、
      最近の言語は構文解析が高速にできるという基準で文法が定義されているので。
      似たような文法になってしまい、わざわざ新言語る理由がないからだろう。
      まぁSwiftよりかは android studioで使える JetBrains製のkotlinが手っ取り早いとは思うけれど

      親コメント
    • by Anonymous Coward

      言語の統一は開発者にメリットのあることだよ。
      特にGoである必要が無ければ、同じ言語が使えないか検討するのは技術者なら当然じゃない。

      まあ現段階ではOracle裁判に対する観測気球かもしれんけどね。

    • by Anonymous Coward

      Android用のアプリを作るためにAPIをごちゃごちゃ付け足さなくてはならなくなって、言語仕様が汚くなるだろうが。
      他人の家に土足で踏み込むのはOKだが、自分の家は汚したくないってこと。

    • by Anonymous Coward

      もちろんデベロッパーのただ乗りが目的だろ。
      Goをつかえるデベロッパーを育てないといけないじゃないか。

    • by Anonymous Coward
      Goに手を出すC言語系の人は挙動が違ったり副作用が違うとライブラリ設計者の全人格を否定する様に責め火あぶりにしようとするけど
      JavaやSwiftの人は違いをマイバッドノウハウディクショナリイに蓄積して飯の種にする
      違いが有るからだと思うよ
    • by Anonymous Coward

      実際にGoを使ってみた上でそう思うのか?

    • by Anonymous Coward

      swiftでアンドロイドアプリをかけるようになればクロスプラットフォームのアプリを開発するのが相当楽になるでしょうね。

    • by Anonymous Coward

      Goは言語的にちょっとアプリ書いたりするには厳しいかナー

      • by Anonymous Coward on 2016年04月09日 21時54分 (#2994870)

        Goはまず学習を始めようとしてgoogleで"Go"を検索したところでPokemon Goやらの
        無関係な情報のヒット率の高さに嫌気がさします。
        統計のRもそうだけど、名称をつけるときにはもうちょっと考えて貰いたいと。

        親コメント
        • by Anonymous Coward on 2016年04月10日 23時18分 (#2995217)

          おいおい、今更こんなこといってる奴いんのかよ
          rubyならrubylang、goならgolang、scalaならscalalangなんてググらビリティの基本だろ

          まだ名称がどうのとかレベル低い事いうやつは無理に語ろうとすんなよ

          親コメント
    • by Anonymous Coward
      ググっても引っかからなかったんじゃネーノ?
  • by Anonymous Coward on 2016年04月09日 21時34分 (#2994866)

    javascriptでいいじゃん。それでもjavaより何倍か速いでしょ。
    swiftっていいの?

  • by Anonymous Coward on 2016年04月09日 20時47分 (#2994842)

    Androidアプリの開発に使うとなると、Androidに合わせたAPI等を用意しないといけないから、
    当然、素のSwiftから別の名前をつけてフォークするんだろうな。Laputaとかはどうかね?
    もちろんシステムをhaltさせる「滅びの言葉」が用意されているのだ。

  • by Anonymous Coward on 2016年04月09日 22時48分 (#2994895)

    ASUSとかはARMじゃなくてx86の機種いっぱい出してるから、
    JavaVMからネィティブに移行されるとユーザーは悲惨なことになりそう

typodupeerror

犯人はmoriwaka -- Anonymous Coward

読み込み中...