【プログラミング】Go言語って、CやC++からだとすごく分かりやすい。おっさん向け言語かも?【Webチュートリアル】

スポンサーリンク
広告

Go言語って??

Rubyを少し勉強してみたら、Mastodonが出てきて、Mastodonのソースを見てみたりしていました。スタートアップのサーバーサイドの言語ではRubyが今は一番シェアが多いのかな?

科学技術系だと、Python, Webサーバー系なら、Ruby、全部ならJavaって感じなのかもしれないですね。おじさんの僕は、Cくらいだと分かりやすいけど・・Cは、Webサーバーのフレームワークとかないですしね(笑)

8つの言語別WEBフレームワーク比較計65選|2017年最新版
フレームワーク(FW)とは、プログラミングするうえで特定の機能を持たせようとする枠組みのことです。はっきり定義されたAPIを持ち、コードを再利用可能な形で隠蔽しているという点ではライブラリと似ていますが、ライブラリは呼び出し側がプログラム全体の制御構造を指定できないため、別のものとして分けられています。

このサイト、言語毎のWebフレームワークを並べてくれていて分かりやすいですね。

Web等のフレームワークも一緒に勉強するってなると、Ruby on Railsが良さそうなんで、Rubyやろうかな?って思ってちょっとつまみ食いしたけど(笑)

こないだは、ドローンの言語を見てたらマイクロソフトから並列処理用の言語として、P言語って出てきていたし(笑)

【P言語】IoT優先のプログラミング言語?Demoがドローン!コントローラーPixHawkにもインプリしてる!【自作UAV】

こないだは、Java互換のKotolinってのも出てきてますしね。もう言語なんて出てこないと思っていたんですが、いろいろ出てきています。何のために作られた言語か知らないですが、Goというのもあって、メルカリ・アッテというサービスがGoを使ってGoogle App Engineで作っているというのを見て。。

Goもつまみ食いしてみようと。。(笑) ということで・・Goを少し調べてみました。

僕ら世代だと、Goというと、ASIAのGoなんですけどね(笑)

ぜんぜん関係ないですが、数年前にASIAのコンサートに行って、スティーブ・ハウがこの曲やってた時には、ちょっと感動しました。だって当時、この曲は、ルカサーやニールショーンがやるような曲だ!だから脱退する!って言ってたんですもの(笑)

なぜGoが出来たか?

Go at Google: Language Design in the Service of Software Engineering

ここに書いてありますね。

いつもの超要約してみると。。

Googleのプログラムは、膨大なプログラムになっていて、コンパイルするだけでも凄い時間がかかった。そのコンパイルしている時間でGoを考えた(笑) ってことのようです。

CやC++、Java、Pythonが沢山使われていたけど、どれも古い言語で、今のクラウドとかネットワークとか並列計算とかが主流じゃない時代にできた言語だった。

大勢の人間がかかわるので、表記方法が人によって違わないようにしたい。

Cに近いのが一番学習コストが低そうだ!< それ僕ら世代にも言えてる(笑)

パット見、CやPascalに近いな!って思ったのは、main()があって、()がついている!

package mainpackage main
import "fmt"
func main() { fmt.Println("Hello, 世界")}

ということで、できたがった言語なんですね。知らんかった。

  • クリアな依存関係
  • 構文の明確化
  • 明確なセマンティクス
  • 継承上の構成
  • プログラミングモデルによって提供されるシンプルさ(ガベージコレクション、並行性)
  • 簡単ツール群

を目指して作られたようです。

だから、オブジェクト指向じゃない。クラスがないから抽象化がない。。 Cとかやってたおっさんには、とっても馴染みやすそうな言語です。BASICとかCに本当に近いシンプルな言語なんですね!

さっそくGo言語のページに行ってみます。

The Go Programming Language

Goをちょっと試すだけだと

A Tour of Go

これでやると、インストールも何もいらないで、Web画面上で試せます。

Go Play Groundというものが用意されてて。。 試すだけならこれで十分ですね。

The Go Playground

初期のチュートリアルもシンプルです。

A Tour of Go

ちょっとだけ間違ったコードが書かれていて、そのコードを修正していくとコードの書き方やお約束がわかるようです。

Goのライブラリ

Go libraries

沢山ありますね。

並列処理ってGoルーチンっていうやつで書くんですかね?Channelとかが並列の処理をするための考え方のような感じのようです。

第5章 並行プログラミング―ゴルーチンとチャネルを使いこなす:はじめてのGo―シンプルな言語仕様,型システム,並行処理
本章では,ゴルーチンやチャネル,syncパッケージを用いて,並行処理を行う方法について解説します。

参考

メルカリアッテってGoで作っている現役の方のLTスライド集

Takuya Ueda さんの SlideShare でのスライド 56件 - SSSSLIDE

Google+の日本語コミュニティ

Golang JP
golang go

Webアプリケーションをつくるチュートリアル

Introduction · Build web application with Golang

これをコピペして遊んでみるのがとても良さそうな気がします。。 ってやってないけどね(笑)

CやJavaを知ってる人ならこの本が良さそう。

チュートリアルの次ならこの本も良さそうです。

コメントを残していただけるとありがたいです

Loading Facebook Comments ...
%d人のブロガーが「いいね」をつけました。