Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
私なりのGo言語のご紹介
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Ryuji Iwata
December 23, 2014
Programming
310
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
私なりのGo言語のご紹介
The introduction of the Go programming language in my own way.
Ryuji Iwata
December 23, 2014
More Decks by Ryuji Iwata
See All by Ryuji Iwata
私のプログラミング人生のご紹介
qt_luigi
0
220
Azure AI Foundryのご紹介
qt_luigi
1
720
私なりのAIのご紹介 [2024年版]
qt_luigi
1
260
Azure ComputingとGo
qt_luigi
1
260
Go入門ハンズオン [準備編]
qt_luigi
1
180
Go入門ハンズオン [基礎編]
qt_luigi
1
190
本日のMicrosoft Azure
qt_luigi
0
190
私のEbitengineの第一歩
qt_luigi
0
860
私のMicrosoft Azure 2023
qt_luigi
0
410
Other Decks in Programming
See All in Programming
Intent as Code
shoppingjaws
4
660
The Good Stuff, Not the Slop: Engineering High-Quality Android Apps with Modern AI Tooling
danybony
1
230
アクセシビリティから考える情報設計
high_g_engineer
0
350
ALB ログから Trace を気合で繋げる技術
fohte
7
880
数年滞っていたダークモード対応をおよそ2週間で完了させる
chigichan24
0
700
個人開発基盤をまるごとCloudflareに引っ越して爆速で総合的体験を向上させた話
tinykitten
0
140
Foundry Localでエージェント開発
seosoft
0
160
LoopHub - ローカルで動く GitHub で、AI と共同開発
jugyo
1
490
[DroidKaigi 2026] Bring your own phones to Gradle Managed Devices
f2lk
0
110
スマート反転とウェブアクセシビリティ
camiha
0
170
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
240
ソフトウェアラスタライザ
fadis
1
800
Featured
See All Featured
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.2k
The agentic SEO stack - context over prompts
schlessera
0
920
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
380
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
520
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
230
Marketing to machines
jonoalderson
1
5.8k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
270
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Utilizing Notion as your number one productivity tool
mfonobong
4
580
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Visualization
eitanlees
152
17k
Transcript
Go言語のご紹介 合同勉強会 in 大都会岡山 -2013 Winter- 2013.12.14 (15 min.) 私なりの
私のご紹介 package self import “introduction” const ( Name = “Ryuji
IWATA” Twitter = “@qt_luigi” Comment = “Go言語は今夏から始めました!” )
「Go言語」 ご存知ですか?
アジェンタ ・Go言語とは? ・4つの特徴 ・何ができるの? ・Hello, World! ・つまるところ ・何から始める? ・最新情報は?
Go言語とは? ・2009年にGoogle社にてC言語を参考にして開発された コンパイル形式の新しいプログラミング言語 Go: A New Programming Language - The
official Google Code blog - http://googlecode.blogspot.jp/2009/11/go-new-programming-language.html
Go言語とは? ・オープンソースプロジェクト & BSDスタイルライセンス ・貢献者は460名ほどで、日本人の方もいらっしゃいます。 The Go Project - The
Go Programming Language - http://golang.org/project/
Gopherとは? 1)マスコットキャラクター ・Renée Frenchがデザイン ・Creative Commons Attribution 3.0 ・著作権者の表示で誰でも利用可能 2)「Go愛好家」の総称
・PythonでいうPythonista ・RubyでいうRubyist
私的Goの 4つの特徴
4つの特徴 モダン 久々に誕生した「今どき」の言語。 マルチ 「今どき」のハードやOSに対応。 シンプル Goが目指したテーマ。速さの源。 スピーディー 処理も開発も習得も素早くこなす。 こ、今年で4才
になりました!
モダン 開発の参考にしたC言語と比較して ・メモリ管理はガーベジコレクション ・オブジェクト指向言語?(Yes and no.) ・言語レベルで並列処理をサポート ・ネットワークやWebのパッケージが充実 初期の開発メンバーはベル研でUNIXやC言語の開発に 参加していました。あとUTF-8を策定していますね。
マルチ マルチプラットフォーム ・主要OS(各BSD, Linux, OS X, Windows)に対応。 ・同一ソースで主要OSに対応しクロスコンパイルも 可能のため網羅性の高いプロダクトにかなり有利。 マルチプロセッサー
・言語レベルで並列処理に対応(Goroutine&Channel) ・CPU性能向上がクロック数の増大からプロセッサー 数の増大にシフトしている今の流れに完全にマッチ。
シンプル 言語仕様 ・クラスや継承がない(型にメソッドを追加) ・ポインター演算や例外処理などが不要 ・定義した時点で変数はゼロ初期化 例)var age int 文法 ・繰り返しはfor文のみ
例)無限ループ - for { ・条件式の丸括弧は不要 例)if a >= 1 { ・戻り値を複数返せる 例)val, err = input(arg)
スピーディー 処理 ・シンプルな設計のため「コンパイル」が速い。 ・実行ファイル形式なのでC言語に近い速さで動作。 開発 ・ソースファイルをスクリプトとしても実行できる。 ・作成、実行、確認を素早く繰り返し行える。 習得 ・シンプルな設計のため「習得」が速い。(予約語:25個)
何が出来るの?
何が出来るの? コマンドラインツール(CLI) ・実例)Docker, Packer, Cloud Foundly, Juju, Heroku パッケージ:flag Google
App Engine(1.5から) Experimental! ・スピンアップや処理が速いので課金コスト削減 パッケージ:net/http ・1.8.6から単体テストをサポート パッケージ:appengine/aetest コマンド:goapp
何が出来るの? どちらかと言えば「サーバーサイド」が得意 ・Google社のインフラ系の問題をソフトウェアの面 から解決するには?からプロジェクトがスタート。 Google DL サーバ, YouTube(分散), pixiv(一部)
など GUIパッケージは標準では用意されていない ・各GUI Toolkitを扱うパッケージが公開されている。 GTK+ go-gtk - https://github.com/mattn/go-gtk Qt go-ui - https://github.com/visualfc/go-ui など
Hello, World!
hello.go (CLI) package main import “fmt” func main() { fmt.Println(“Hello,
世界!”) } mainは特殊! 文末の”;”は不要! 公開メソッドは大文字 で始まります!
hello.go (GAE/G&HTTPサーバー) package hello import ( "fmt" "net/http" ) func
init() { http.HandleFunc("/", handler) } func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, "Hello, 世界!") } 1.package名をhelloからmainに変更 2.関数名のinit()をmain()に書き換え 3.main()関数の最後に以下の一行を追記 http.ListenAndServe(“:8080”, nil) これで、HTTPサーバーに早変わり!
つまるところ
“私なりの”結論 ・使用しているプログラミング言語で問題がなければ、 新たに採用する必要はないでしょう。 ・処理速度、マルチプラットフォーム、並列処理などの 考慮が必要になった時、選択肢に上げてみて下さい。 ・「Google社だから」というイメージは捨てましょう。 まずは触ってみて、善し悪しの判断はその後で。 ・第nの言語として習得するにはかなりオススメです! ・「これから」の言語なので動向を見守るのも良いかと。
何から始める?
インターネットから(英語) 公式サイト The Go Programming Language - http://golang.org/ 全ての情報はココにあります! チュートリアル
A Tour of Go - http://tour.golang.org/#1 文法まわりを一通り学べます。日本語ページもあります。 遊び場 Go Playground - http://play.golang.org/ ネット上でお気軽コーディング。作成したコードを共有できます。 みんなで 始めよう!
インターネットから(日本語) 日本語サイト golang.jp - http://golang.jp/ 英語が苦手の人はまずはコチラから。内容が少し古いのでご注意を。 コード情報 Qiita(Go関連) - http://qiita.com/tags/go
様々な「出来ること」をコードで見ることができます。 Qiita Advent Calendar 2013、 Goが募集完了一番乗りだと!?
書籍から 基礎からわかるGo言語 ・入門に最適な1冊で、Go 1.0.3に対応しています。 プログラミング言語Goフレーズブック [絶版] ・基礎や文法を習得した後に読むと理解が深まります。 Go言語プログラミング入門 on Google
App Engine [絶版] ・GAE/Gならこの1冊です。内容が古い ので最新バージョンで動作するよう書 き換えることでGo力を鍛えましょう! 絶版だけど、 まだ見つかる!
勉強会から 東京 Go研 - http://connpass.com/series/353/ 月1回のペースで開催。 ハッシュタグ:#goken[会数] 大阪 大阪Go勉強会 - https://www.facebook.com/osakagolang
数ヶ月に1回のペースで開催。 ハッシュタグ:#阪Go 岡山 Golang Cafe - ttyokoyama on Zusaar 週1回ペース(毎週日曜日)で開催。 ハッシュタグ:#gdgchugoku 春と秋にGoコン(Go Conference)があったね。 来年4月はGopher Conだね。カリフ ォルニアだけど。
最新情報は?
インターネットで 英語 ・ハッシュタグ:#golang ・Google Groups - golang-nuts 日本語 ・ハッシュタグ:#golangjp #golang
・Google+ - Golang JP ・Lingr - Go言語 検索キーワード を「Golang」に するとヒット率 が上がるよ!
q@w@p