Skip to content

Instantly share code, notes, and snippets.

@tikidunpon
Last active February 13, 2018 13:42
Show Gist options
  • Save tikidunpon/a7a04f121572586b19e46289882a9766 to your computer and use it in GitHub Desktop.
Save tikidunpon/a7a04f121572586b19e46289882a9766 to your computer and use it in GitHub Desktop.
go(golang)勉強会 #1

最近のシステム開発の傾向

  • コンピュータは速くなったが、ソフトウェア開発は速くなっていない
  • 依存性の管理はソフトウェア開発の多くを占める、しかしC言語のヘッダーでは高速に依存性を分析しづらい
  • JavaやC++のような扱いにくい型システムをもつシステムより、PythonやJavaScriptなど動的片付け言語が使われている
  • ガーベジコレクションや並列計算などの基本的なコンセプトのいくつかは一般的な言語で上手くサポートされていません
  • マルチコアコンピュータの登場により、心配と混乱が生じた

上記を受けてGoが解決を目指すこと

  • 1台のコンピュータで数秒で大規模なGoプログラムをコンパイル可能
  • Goは、依存関係の分析を容易にし、Cスタイルのインクルードファイルやライブラリのオーバーヘッドの多くを回避するソフトウェア構築のモデルを提供します。
  • Goの型システムには階層がないため、型間の関係を定義するのに時間がかかりません。また、Goには静的型がありますが、言語は一般的なオブジェクト指向言語よりも軽量になります。
  • Goは完全にガベージコレクトされ、並列実行と通信を基本的にサポートします。
  • その設計により、Goは、マルチコアマシン上のシステムソフトウェアの構築のためのアプローチを提案している。

定数

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment