Android/iOSで動かす事例はあまり聞かないですが...代わって最近はWASM対応が盛んなように見えます。コンパイル言語Ruby/JavaScript/TypeScriptとの大きな違いを考えると、実行時のためにコンパイルが必要なことかな、と思います。(TypeScriptはJavaScriptにトランスパイルしますが)コンパイルは「LinuxのAMD64向け」「MacのAArch64向け」と決めて実行し、それにあった実行形式・機械語に変換されるので、コンパイルしたものを修正して動作変更したり、どんなコードを動いているのか覗くことは困難になります。この点はスクリプト言語のほうが柔軟でよいかもですね!(この辺もTypeScriptはどのECMAScriptをターゲットにしつつ難読化されて...みたいになるのでもはや同じかも)一方で、機械語になった段階でそれなりに最適化されているので基本的には高速です。この高速さも結局アプリの実装やその他ミドルウェア・データ量の都合などにいろいろ左右されるので一概には言えません。他言語との違いを考えると、文法がシンプルってところかと思います。これもシンプルで要素少なすぎたり、独特だったりで批判の種になるところですが。この辺はZennに上げた記事が参考になるかも?業務アプリケーション開発にGoを採用する理由とはいえ近年、標準パッケージなりでもちょっとずつ便利機能が追加されてきており状況はだんだん変わりつつあります。RPCサービス(72%)コマンドベースのプログラム(61%)ライブラリ・フレームワーク(44%)のようです。回答者の80%は仕事で使ってる人なので、必然的にAPIあたりが強いかも?とはいえ、時点のコマンドベースのプログラムも強いです。lambrollあたりでしょうか。他のCLIでも実は中身Goでしたってことは多いかなと思います。頑張って読むといったところです。ちなみに自分も全部できてないので頑張りたいです。Goを扱っていく上で悩みそうなところをQ&A形式で紹介していきます。どれも自分が初めてGoを業務で使い始めたときは知らなかったことで、初心者にはとっつきにくいところをざっと答えていきます。asdfなど使ってバージョン管理・プロジェクトごとに固定しておくものと思います。Goの場合もgoenvといったもので管理できますが、そもそも必要としないという人が多いようです。`go1.21.1`というコマンドでそのバージョンのgoを実行できるといったあたりなのかなーと思います。Neovimのようです。お好きなものを使ってよいと思いますが、金銭的に問題なければGoLandが多機能で個人的にオススメです。いう、C/C++経験やソースから何らかビルドしたりする経験がある方には馴染みのあるものを利用されることが多いです。書き方がやや癖があるというか、bashに似ててできることが異なっていたりと混乱招きがちです。GoがYAMLで書くタスクランナーで機能も多く良い感じでした。find...)にお望みのものがあるかもしれません。循環依存できないの?Goではパッケージに循環依存があるとコンパイルエラーとなります。考えずにコード書いてると発生しがちです。してあげればよいのですが、そもそも設計方針が誤っていないかをよく確認しましょう。するのが基本方針になります。これは現状仕方なく、筋肉で解決するしかないです。最近はCopilotでドーピングできるので頼りましょう。課題のトップに挙げられているところで、Goチームも対応策を模索しているようです。sugarも出ているようでした。2はこちらのブログで「出ることはない」と明言されています。積極的によいと思います。Middlewareを提供しているのでとりあえず入れておきましょう。Echoエラーのスタックトレースどう取るのがよいの?普通に標準パッケージだけ使ってもスタックトレースは取れません。fmt.Errorfでできるようになりました。このあたりは今も混沌を極めており、こちらのまとめとか見ると感じ取れるかと思います。