最近はGoが注目されることが多くなりましたが、その点について何か考えはありますか?

「近年、クラウド時代においてJavaのような大きなランタイムを持つ言語が不利とされる中、Go言語が多くの注目を集めています。このトレンドの背景や理由、そして今後の展望についての考えや意見を教えてください。特に、Goの特性がクラウド環境にどのように適しているのか、また他の言語との比較点なども含めて詳しく知りたいです。 (編集済み)
1年前
view数 148
  • 1
  • 2
  • 3

回答を投稿して企業にアピールしましょう!

Q&Aで投稿された回答は、
企業側に表示されるプロフィールにも投稿履歴として表示されます。

Offersにログイン・新規登録して、気になるテーマやトピックを話してみよう!

\回答があります!/

  • Shoichi Namba

    エンジニア

    1年前

    丁度案件でサーバーをGoにリプレイスされています。
    型もきっちりしてますし良い言語だと思います。
    ただしGoは他の言語と違って循環参照が不可能でエラーになります。そのため設計をきっちり考えておかないとコードが増えてきた頃になんかおかしい…なにもうまくいかない…となり始めますのでそこは注意が必要です。
    view数 13
    • Offers(オファーズ) 公式

      エンジニア

      1年前

      ※本投稿は、2023年6月29日に開催されたイベント「KotlinとScala 活用者が語る技術選定のヒント(https://offers.connpass.com/event/287192/)」における、フリーランスエンジニア 竹端 尚人氏の回答内容を元にしています。

      KotlinとGoは、わりと思想が真逆というところがあって、Goは結構最近流行ってる言語の中では言語使用として異質なところもちょっとあるかなと思っています。

      クラスとかもなく、オブジェクト指向の概念というのがそもそもないところがまず結構あるので、なかなか横に並べて考えるのはむずかしいというところがあります。
      Kotlinとかは「めちゃくちゃ機能いろいろあって、書き方もいろいろできて、好きに書いていいよ」というような感じの思想な言語です。

      必ずしも「この書き方にこだわらなくていいよ」というような感じの型なのですが、Goは逆にある程度機能を絞ることで書き方とかもせ統一されるような形で、迷わず書けるようなっているところがあるので、そこの考え方は真逆で、かつ、好みも結構分かれます。

      Goのパフォーマンスは魅力です。
      軽量でシンプルな言語というパフォーマンスみたいなところは、エコシステムもシンプルです。

      Goは公式が自前で用意してるものを使うというのは基本的にGoは多いので、そこはKotlinだとわりと初心者はGradleでハマったりますが、そういうのに比べると「シンプルで最初は入りやすそうかな」と感じたりするときもあります。
      view数 14
      • Offers(オファーズ) 公式

        エンジニア

        1年前

        ※本投稿は、2023年6月29日に開催されたイベント「KotlinとScala 活用者が語る技術選定のヒント(https://offers.connpass.com/event/287192/)」における、Chatwork株式会社 テックリード 加藤 潤一氏の回答内容を元にしています。

        Goが注目に値するのは、ランタイムの機能とか、そういったところなのかなというふうに思います。
        とくに最近だと、マイクロサービスとかをやるときには一番最初に選択されるような言語になっていて、やっぱりランタイムが小さいというのが魅力です。

        Javaと比べると圧倒的に小さいので、マイクロサービスになると、どこかプロセスが停止したり起動したりというのを頻繁にスケーリングも含めて行われるので、クラウドネイティブなサービスを考えたときにかなり相性がいいというところです。

        JVMだと何回も再起動すると、JITのプロファイリング結果というのが無駄になることが多いので、そういうふうに考えると起動停止が頻繁に起こるようなところだとGoが向いています。

        GoとかRustもそうですが、最近だとGraalVMというソリューションも出ているので、商用機能である機能が無償版でも使えるのが最近ニュースになっていました。

        GraalVMというのも日々改善されてきているので、LambdaみたいなAWS LambdaとかGCPのLambdaみたいなところでも起動停止が頻繁に起こるのですが、そういったところにもJVMを利用するというやり方もあります。

        その辺りはちょっと選択肢が複数あってむずかしいかもしれないですけど、Goは注目されているのは確実にあるので、そこも踏まえた上で言語選定という感じになるのかなというふうに最近は思っています。
        view数 11