パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

Google、SwiftをAndroidの第一級言語にすることを検討?」記事へのコメント

  • by Anonymous Coward

    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

        Kotlinは開発観点でみれば申し分ないと思うけど、今直面している問題の解決にはならないでしょ。

      • by Anonymous Coward

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

        外部に公開するシンボルはextern "C"すればいいだけでは? 今どきWindowsのDLLとか外部にエクスポートされている関数はCリンケージに見えてもほぼC++に置き換えられているけど?

弘法筆を選ばず、アレゲはキーボードを選ぶ -- アレゲ研究家

処理中...