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

シェアする

スポンサーリンク
広告

Go言語って??

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

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

https://furien.jp/columns/176/

このサイト、言語毎の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 - The Go Programming Language

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

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

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 is an open source programming language that makes it simple to build secure, scalable systems.

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

A Tour of Go

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

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

Go Playground - The Go Programming Language

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

A Tour of Go

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

Goのライブラリ

https://golanglibs.com/

沢山ありますね。

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

第5章 並行プログラミング―ゴルーチンとチャネルを使いこなす | gihyo.jp
本章では、ゴルーチンやチャネル、syncパッケージを用いて、並行処理を行う方法について解説します。

参考

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

SSSSLIDE

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

What you need to know about the sunset of consumer Google+ on April 2 | Google Workspace Blog

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

Introduction · Build web application with Golang

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

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

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

スポンサーリンク
広告

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

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