Bahasa Pemprograman GO
Pasti
banyak yang bertanya-tanya apa sih GO LANG? Go lang adalah singkatan
dari Google Language. Yaitu sebuah bahasa pemograman yang
diperkenalkan oleh google sejak 2009.
Go
adalah bahasa pemrograman yang mudah, sederhana, handal, efisien, dan
tentu saja open source. Sebuah bahasa pemrograman yang dibutuhkan
oleh dunia modern saat ini. Tidak seperti bahasa python an
lain-lainnya yang memang sudah digunakan google sejak lama, Golang
bukan bahasa scripting yg ditulis dan diinterpret tetapi dapat
dicompile menjadi object binary dan langsung bisa dieksekusi. Tujuan
bahasa pemrograman Go adalah:
- Aman (type-safe dan memory-safe),
- Baik dalam dukungan konkurensi dan komunikasi,
- Cepat dalam kompilasi,
- Efisien (mendekati kinerja bahasa pemrograman C dalam hal pembagian tugas CPU),
- Dirancang untuk perangkat keras modern (multicore, jaringan, dll),
- Perangkat lunak yang powerfull (seperti untuk sebuah web server),
- Menjadi sebuah bahasa pemrograman yang umum dipakai dalam pembuatan aplikasi.
Kelebihan
bahasa pemrograman Go adalah open source. Inilah yang menjadi nilai
lebih dari bahasa pemrograman Go, semua pengembangan bersifat terbuka
dan banyak kontributor-kontributor dari seluruh dunia untuk kemajuan
bahasa pemrograman Go ini. Google telah merilis versi pertama dari
bahasa pemrograman Go. Go 1 tersedia untuk sistem operasi Linux,
FreeBSD, Mac OS X, dan Windows. Karena yang bersifat open source,
developer bebas untuk mengembangkannya sesuai dengan kebutuhan pasar.
Karena dengan adanya kontribusi dari pihak luar, bahasa pemograman
ini akan semakin baik di mata publik, dan dengan alasan ini juga Go
dapat dikenal luas dan digunakan pastinya.
Lalu
dibuat sefleksibel mungkin terutama untuk menangani penggunaan stack,
bisa dibilang sih seperti stackless, artinya gak akan menemui masalah
dengan “Stack overflow”. Golang diklaim dapat menghandle pointer
dan memory dengan aman.
CARA MENGINSTAL
Saya menggunakan Linux (Go hanya mendukung Linux dan Mac OSX). Shell yang saya gunakan adalah Bash.
Tambahkan baris-baris berikut di $HOME/.bashrc dan login ulang supaya variabel lingkungan berikut terbaca:
export GOROOT=/home/bpdp/software/go export GOARCH=386 export GOOS=linux export GOBIN=$GOROOT/bin export PATH=$PATH:$GOBIN
Mengambil Source Code
Source code di googlecode.com disimpan dengan menggunakan Mercurial, sehingga jika belum mempunyai Mercurial, install-lah Mercurial terlebih dahulu. Mercurial bisa diperoleh di http://mercurial.selenic.com/.
[bpdp@bpdp-arch go]$ hg clone -r release https://go.googlecode.com/hg/ $GOROOT destination directory: /home/bpdp/sofware/go requesting all changes adding changesets adding manifests adding file changes added 4016 changesets with 16888 changes to 2931 files updating working directory 1640 files updated, 0 files merged, 0 files removed, 0 files unresolved [bpdp@bpdp-arch go]$ [bpdp@bpdp-arch go]$ ls -la total 68 drwxr-xr-x 10 bpdp users 4096 2009-11-13 12:52 . drwxr-xr-x 3 bpdp users 4096 2009-11-13 12:49 .. drwxr-xr-x 3 bpdp users 4096 2009-11-13 12:52 .hg -rw-r--r-- 1 bpdp users 392 2009-11-13 12:52 .hgignore -rw-r--r-- 1 bpdp users 231 2009-11-13 12:52 .hgtags -rw-r--r-- 1 bpdp users 333 2009-11-13 12:52 AUTHORS -rw-r--r-- 1 bpdp users 1894 2009-11-13 12:52 CONTRIBUTORS -rw-r--r-- 1 bpdp users 1557 2009-11-13 12:52 LICENSE -rw-r--r-- 1 bpdp users 468 2009-11-13 12:52 README drwxr-xr-x 4 bpdp users 4096 2009-11-13 12:52 doc -rw-r--r-- 1 bpdp users 785 2009-11-13 12:52 favicon.ico drwxr-xr-x 2 bpdp users 4096 2009-11-13 12:52 include drwxr-xr-x 4 bpdp users 4096 2009-11-13 12:52 lib drwxr-xr-x 6 bpdp users 4096 2009-11-13 12:52 misc drwxr-xr-x 2 bpdp users 4096 2009-11-13 12:52 pkg drwxr-xr-x 8 bpdp users 4096 2009-11-13 12:52 src drwxr-xr-x 9 bpdp users 4096 2009-11-13 12:52 test [bpdp@bpdp-arch go]$Instalasi
$ cd src
$ ./all.bash
Hasil[bpdp@bpdp-arch src]$ ls -la ../bin/ total 10156 drwxr-xr-x 2 bpdp users 4096 2009-11-13 13:10 . drwxr-xr-x 11 bpdp users 4096 2009-11-13 13:09 .. -rwxr-xr-x 1 bpdp users 359231 2009-11-13 13:10 6cov -rwxr-xr-x 1 bpdp users 238753 2009-11-13 13:10 6nm -rwxr-xr-x 1 bpdp users 352749 2009-11-13 13:10 6prof -rwxr-xr-x 1 bpdp users 183043 2009-11-13 13:10 8a -rwxr-xr-x 1 bpdp users 665089 2009-11-13 13:10 8c -rwxr-xr-x 1 bpdp users 865086 2009-11-13 13:10 8g -rwxr-xr-x 1 bpdp users 331907 2009-11-13 13:10 8l -rwxr-xr-x 1 bpdp users 1511881 2009-11-13 13:10 cgo -rwxr-xr-x 1 bpdp users 734112 2009-11-13 13:10 ebnflint -rwxr-xr-x 1 bpdp users 143203 2009-11-13 13:10 godefs -rwxr-xr-x 1 bpdp users 1889871 2009-11-13 13:10 godoc -rwxr-xr-x 1 bpdp users 1100450 2009-11-13 13:10 gofmt -rwxr-xr-x 1 bpdp users 212301 2009-11-13 13:10 gopack -rwxr-xr-x 1 bpdp users 3272 2009-11-13 13:10 gotest -rwxr-xr-x 1 bpdp users 821616 2009-11-13 13:10 goyacc -rwxr-xr-x 1 bpdp users 880240 2009-11-13 13:10 hgpatch -rwxr-xr-x 1 bpdp users 1484 2009-11-13 13:09 quietgcc [bpdp@bpdp-arch src]$Untuk arsitektur 386, compiler dari go adalah 8g (amd64: 9g), sedangkan linker dari go adalah 8l (amd64: 9l). Untuk mencoba, buatlah source code (hello.go) berikut:
package main import "fmt" func main() { fmt.Printf("hello, world\n") }
Kompilasi dan run
[bpdp@bpdp-arch go]$ 8g hello.go [bpdp@bpdp-arch go]$ ls -la ... ... -rw-r--r-- 1 bpdp users 1912 2009-11-13 13:23 _cgo_.o -rw-r--r-- 1 bpdp users 5168 2009-11-13 13:25 hello.8 -rw-r--r-- 1 bpdp users 76 2009-11-13 13:21 hello.go [bpdp@bpdp-arch go]$ 8l hello.8 [bpdp@bpdp-arch go]$ ls -la ... ... -rwxr-xr-x 1 bpdp users 581745 2009-11-13 13:25 8.out -rw-r--r-- 1 bpdp users 1912 2009-11-13 13:23 _cgo_.o -rw-r--r-- 1 bpdp users 5168 2009-11-13 13:25 hello.8 -rw-r--r-- 1 bpdp users 76 2009-11-13 13:21 hello.go [bpdp@bpdp-arch go]$ ./8.out hello, world [bpdp@bpdp-arch go]$
CONTOH
Hello world
Here is a Hello world program in Go:package main
import "fmt"
func main() {
fmt.Println("Hello, World")
}
Echo
This imitates the Unix echo command in Go:package main import ( "flag" "fmt" "strings" ) func main() { var omitNewline bool flag.BoolVar(&omitNewline, "n", false, "don't print final newline") flag.Parse() // Scans the arg list and sets up flags. str := strings.Join(flag.Args(), " ") if omitNewline { fmt.Print(str) } else { fmt.Println(str) } }
Untuk lebih mengenal apa itu bahasa pemrograman Go, dapat dilihat pada website resminya di http://golang.org.
Komentar
Posting Komentar