Go言語は、合理性/実用性/生産性について徹底的にフォーカスしている言語で、シンプルに開発できるように設計されています。
Go言語の開発環境としては、Go言語本体のみで「ビルド」「テスト」「ドキュメント化」などのさまざまな要素をサポートしています。コマンドラインツールだけを利用して軽快に開発することもできます。エディタやIDEとの連携も行えます。
シンプルに開発でき、なおかつ、「C言語の処理速度」と「Pythonの開発生産性」の両立が意図されています。
Go言語は、C言語やJava言語のように動作するコンパイル言語です。
コンパイル時にすべてのエラー部分が洗い出されます。
実際に実行してみないとエラーがあるかどうか分からないスクリプト言語に比べて、確実性が増すなどのメリットがあります。
プログラムソースをコンパイルすると、ネイティブマシンコードにコンパイルされます。
その後、ビルドを実行すると、1つの実行形式バイナリファイルが作成されます。
実行環境として「JVM」や「インタープリタ」などを必要とせず、実行形式バイナリファイル単体で動作します。
そのため、実行形式バイナリファイルを1つ配置するだけで、デプロイを完了できます。
クロスコンパイル開発を簡単に行なえます。
Macの開発環境から、Linux/Windows用実行形式バイナリファイルを作成できます。
Go言語には「型」と「メソッド」があり、オブジェクト指向プログラミングが可能です。
Go言語は、強い静的型付け言語ですが、「型」には階層がないため、代替として「インターフェース」という概念を利用します。
Go言語におけるオブジェクトは、値型によって実装されており、値型を定義することでオブジェクトの振る舞いを定義できます。
また、型階層がなく、型間の関係を定義するための時間がかからないため、Go言語のオブジェクトはC++やJavaなどの言語よりも軽量になります。
メソッドは、任意の種類のデータに対して定義できます。「プレーンなボックス化されていない整数」などの組み込み型でも定義できます。
Go言語は、充実したパッケージが用意されています。
→The Go Programming Language →Packages
Go言語にはパッケージインポート機能がビルトインされており、外部のGoパッケージをWeb経由でダウンロードして利用できます。
例えば、「import github.com/user/project」と記述するだけで、対象のパッケージを即座に利用できます。
Go言語は、高速処理も特徴です。
C++と比較してコンパイルが速く、1台のコンピュータで大規模なGoプログラムを数秒でコンパイルできます。
Python/Rubyなどと比較して、高い実行時パフォーマンスを出せます。
処理速度が必要なプログラムを最低限の手間で作るような局面にマッチしています。
Go言語は、各種安全性機能を提供します。
妥当で現実的なレベルの型安全性を提供します。
完全なガベージコレクトを行い、メモリ安全性をサポートします。
Cスタイルのインクルードファイルやライブラリのオーバーヘッドを回避するソフトウェア構築モデルを提供します。
Go言語は「同期並行処理を容易に実現できる」という大きな特徴があります。
言語標準として、平行処理スレッドモデル「goroutine」の使用が推奨されており、非常に簡潔な記述で同期並行処理を実行できます。
Go言語は「Try-Catch-Finally」例外処理を採用していません。
コントロール構造に例外を組み合わせることによりコードが複雑になることを回避するためであり、一般的な例外については、あくまで戻り値を使用する設計思想です。
「Try-Catch-Finally」例外処理の代替機能として、明示的に例外を発生させる「panic」と、回復処理用の「recover」を用いた例外処理機能を提供しています。
Go言語は、プログラミング言語自体をシンプルに保つために、他の言語では使用できる機能をあえて搭載していません。
言語デザインとして正しく使うのが難しく、乱用するとプログラムを無意味に複雑にしてしまう機能が排除されています。
・型の継承
・ジェネリックプログラミング
・アサーション
・オーバーロード
・イベントモデルによる並行処理
・「Try-Catch-Finally」例外処理 など
Googleが開発したオープンソースプログラミング言語「Go言語」について紹介。 Go言語とは Go言語(Golang)は、2009年にGoogleで作成されたオープンソースプログラミング言語。 「表現力豊かな型システム」「高速コンパイル機能」「優れたパフォーマンス」「並行処理を単純化する組み込...
OSS×Cloud ACCESS RANKING