GinはGo言語ベースのWebアプリケーションフレームワークです。『Martini』にインスパイアされたことでも知られております。パフォーマンスの高さと優れた生産性で多くのGo言語ユーザーが使用するフレームワークです。この記事ではGinを理解するために初心者でも分かる歴史、特徴などの基礎知識を簡単に解説していきます。
Gin(ジン)とはGo言語に活用されるGinチームによって管理されるWebアプリケーションフレームワークです。Martini(マティーニ)をモデルに誕生したフレームワークとして同フレームワークのようなAPIを充実させており、パフォーマンスにおいては最大40倍もの高速性能を実現しております。他にも『ミドルウェアのサポート』『クラッシュフリー』などの様々な特徴が挙げられます。
GinではHTTPリクエスト中に発生したトラブルをキャッチして回復できます。このようにサーバーは常に使用可能になります。同言語に用いられるEchoというフレームワークにも参考にされており、Go言語におけるフレームワークとして初期の頃から人気を集めております。
Go言語とはGoogle社にてロバート・グリーセマー氏等が中心となって2009年に開発されたC言語をモデルとするコンパイル言語です。Go言語は「シンプルで信頼性が高く、効率的なソフトウェアを簡単に構築できるオープンソースのプログラミング言語」を公式サイトにて掲げております。Googleが開発したこともあり誕生当初から高い注目を集めており、2018年ビズリーチ社の調査によるとGo言語は最も年収の高いプログラミング言語として発表されその注目度の高さが伺えました。
用途としてWebアプリケーションやWebサーバーの開発に度々活用されますが、Web系以外にもスマートフォンアプリ、AI開発などでも注目を集めております。特徴として『高速な処理』『並行処理に強い』などが挙げられます。人気、注目度共に数あるプログラミング言語の中で最前線を走る言語の一つと言えます。
Ginの読み方は『ジン』です。ロゴにはカクテルに顔が付けられたキャラクターを採用しておりリキュールの「ジン」にちなんでいることが推測されます。公式サイトのドメインにも「gin-gonic(ジンゴニック)」が採用されており「ジントニック」から何らかのインスピレーションを受けているのでしょう。
GinはGinチームによってGo言語ベースのWebアプリケーションフレームワークとして開発され2014年に初版が誕生しました。Martini(マティーニ)をモデルに誕生したフレームワークとして同フレームワークのようなAPIを充実させており、パフォーマンスにおいては最大40倍もの高速性能を実現しております。誕生から翌年の2015年5月に「Gin v1.0 rc1」をリリースし、翌年2016年に「Gin v1.1」をリリース。その後も順調にバージョンアップを続け、現在(2021年7月時点)では最新バージョンを「Gin v1.7.2」としております。簡単に以下の年表にまとめておりますのでご覧ください。
年代 | 内容 |
2014年 | 「Gin」 誕生 |
2015年5月 | 「Gin v1.0 rc1」 リリース |
2016年 | 「Gin v1.1」 リリース |
2018年 | Gin v1.3.0」 リリース |
2019年 | 「Gin v1.4.0」 リリース |
2021年7月時点 | 「Gin v1.7.2」が最新 |
Ginの特徴を見ていきましょう。
Ginは高速パフォーマンスという特徴があります。どれくらい高速かというMartini(マティーニ)と比較して最大40倍もの性能を実現しております。
Ginはクラッシュフリーという特徴があります。HTTPリクエスト中に発生した問題をキャッチして回復できます。これによってサーバーは常に利用可能になります。
Ginはエラー管理を兼ね備えているという特徴があります。HTTPリクエスト中に発生したすべてのエラーを収集するための便利な方法を提供しています。最終的に、ミドルウェアはそれらをログファイル、データベースに書き込み、ネットワークを介して送信できます。
Gin以外のGo言語ベースによるシステム開発に用いられる代表的なフレームワークを紹介させていただきます。
Echo(エコー)とはGo言語に活用されるLabStackによって管理される軽量なWebアプリケーションフレームワークです。前述のGinをモデルに誕生したフレームワークとして小規模から中規模のWebアプリケーション開発に向いており、軽量フレームワークとして最も注目を集めているフレームワークの一つです。高性能でいて、豊富な拡張機能、そして軽量のフレームワークであることが人気の理由となっております。
またRESTの原則に従って設計されたAPIを持つことも特徴の一つです。Echoで記述されたソースコードの読みやすさには定評があり開発効率の面でも高い評価を集めております。
iris(アイリス)とはGo言語に活用されるジェラシモス・マロプロス氏によって開発された新しい未来的なWebフレームワークです。公式サイトでも『最速のWebフレームワーク』を謳っており、Webサーバ、デスクトップ、スマートフォンなど様々な環境を問わず高速のパフォーマンスを発揮します。その他の特徴としてクロスプラットフォーム、MVCモデルなどが挙げられます。Go言語の中でも圧倒的なドキュメント量を実現しており、情報量の多さから効率良く学習が出来ることも人気を集めている理由の一つです。
Revel(レベル)とはGo言語に活用されるMVCモデルのフルスタックWebフレームワークです。JavaやScalaで活用されることで有名な『Play Framework』をモデルに開発されました。フルスタックフレームワークのためWebアプリケーション開発に必要な全てが取り揃えられております。Revelではプログラマーがソースコードを編集すると、自動コンパイルを行う仕様になっております。処理性能も高く、速度も速いことから人気を集めております。『Gin』や『Echo』と比較しても多機能であることが売りであることから大規模なアプリケーション開発に向いています。
Ginを理解するために初心者でも分かる歴史、特徴などの基礎知識を簡単に解説させていただきました。Ginを一言で表すと『Go言語ベースでMartiniの40倍のパフォーマンスを誇るWebアプリケーションフレームワーク』です。特徴として「高速パフォーマンス」「ミドルウェアサポート」「クラッシュフリー」などが挙げられます。Ginについてこの記事に記載されている最低限の内容は理解しておくようにしましょう。