企業がプログラミング言語「Go」を利用するメリットは何か。メインフレームの「COBOL」プログラムからGoプログラムへの移行を成功させた専門家が、自身の経験を基に解説する。
ネットワークエンジニアがプログラミング言語の習得を検討するときは、「Perl」や「Python」が検討対象になりやすい。Perlには実績が、Pythonには勢いがあるからだ。これらに並ぶ魅力的な選択肢に「Go」がある。
企業は、クラウドインフラやサーバレスシステムでのソフトウェア運用に取り組んでいる。ネットワーク運用チームは膨大なデータを抱えることになった半面、それらを適切に分析できれば、ネットワーク運用に関する有益な知見が得られる。
「そこでGoが強みを発揮する」と、Barracuda Networksでシニアソフトウェアエンジニアを務めるアダム・ウッドベック氏は語る。Goは、大規模なネットワークソフトウェア開発で直面した問題を解決するために、Googleが生み出したプログラミング言語だ。大量のデータをフィルタリングし、有益な情報を抽出するのに適している。
Goの特徴は「複数の演算処理を一度に実行できること」だとウッドベック氏は説明する。演算を同時に実行できる並行性により、エンジニアはシステムのパワーをフルに活用できる。Goは、比較的学習しやすい言語でもあると、同氏は付け加える。チームはGoの習得によって変更を迅速に実装できるようになるという。
ウッドベック氏は著書『Network Programming with Go』の中で、ネットワークやソフトウェア分野のエンジニアがGoをどのように活用できるのかを例示している。同氏が示すGoの用途は、ロギング(ログの記録と分析)やメトリクス(指標)管理、ルーティング、アプリケーション開発などだ。以下に、Goの活用に関する同氏の話をまとめた。
―― Goのお気に入りの使い方はどのようなものですか。
ウッドベック氏 私はGoの並行性が気に入っている。複数のことを一度に実行できる点だ。ただし、これはGoの厄介な側面になりがちでもある。並行性を生かそうとすると、プロセスの競合やデッドロック(複数のプロセスが互いの処理終了を待って処理が進まなくなる状態)に陥りやすいからだ。Goが提供するツールを使えば、こうした問題を回避し、高いパフォーマンスを得ることができる。
生成AIはGoogle検索をどう変えたのか?(無料eBook)
モダンマーケティングの最新トレンドを無料eBookにまとめてお届けするこのシリーズ。今回...
気になる「ATTオプトイン率」は今どのくらい? 日本のモバイルアプリ市場の現状
AdjustとSensor Towerが共同で発表した「モバイルアプリトレンドレポート 2024 :日本版...
シニアの生活意識 「生まれ変わっても今の配偶者と結婚したい」において男女で20ポイント以上の差
ソニー生命が実施した「シニアの生活意識調査2024」の結果です。