PDA

View Full Version : Golang Bahasa pemrograman baru dari Google


anvie
11-11-2009, 04:59 PM
Golang merupakan bahasa pemrograman baru yang sedang dikembangkan oleh Google.
Tidak seperti bahasa python dkk yg memang sudah digunakan google sejak lama, Golang bukan bahasa scripting yg ditulis dan diinterpret tetapi dapat dicompile menjadi object binary dan langsung bisa dieksekusi.

dari situsnya sendiri, Golang mengklaim sebagai bahasa yang:
… Simple

sesimple sintak berikut:

package main

import "fmt"

func main() {
fmt.Printf("Hello, 世界\n")
}


… Cepat

Cepat bisa dibandingkan deh dengan kecepatan bahasa high level paling cepat saat ini C/C++ :cool:
ini ada videonya nih membandingkan waktu kompilasi antara Golang dengan C/C++
_http://www.youtube.com/watch?v=wwoWei-GAPo

… Aman

Golang diklaim dapat menghandle pointer dan memory dengan aman.

… Concurrent

Concurrent, artinya dibuat sefleksibel mungkin terutama untuk menangani penggunaan stack, bisa dibilang nih kayag stackless, artinya loe gak akan menemui masalah dengan "Stack overflow".

… Menyenangkan

Golang diklaim cepat dalam proses buildnya, dengan sintak yang bersih dan mudah dipahami, pokonya menyenangkan!


dan yg paling penting adalah....

… Open source

Thks Google, U're rock! :cool:

ada yg mo coba?
cobain aja explore di http://golang.org/

oh ya ngomong-ngomong nih gosipnya Ken Thompson juga ikut mendesain bahasa ini, kalo emang benar wah bakalan keren banget nih bahasa.
yg lum tau ttg Ken Thompson coba baca profilenya di _http://en.wikipedia.org/wiki/Ken_Thompson

coba ansaver kalo ada yg tertarik share aja di sini seputar Golang ini

Regards,
anvie

dewaphobia
11-11-2009, 08:06 PM
pertamaxxx...


nunggu ansaver yang mo eksplorasi, baru nanti aku minta ajarin. :D

M2R
11-12-2009, 06:24 AM
wahhh, cmn bwt platform *NIX ya? T_T, saia kn sama skli g ngrti pke linux.

HyperLinx
11-12-2009, 10:28 PM
sengaja nih mbak google, hanya buat linux dan mac, no win32 ... dasar:pisangdance:

deny26
11-13-2009, 06:57 AM
Asyik banget nih kalau linux, tapi setelah dilihat manualnya,, cara installnya masih lom ngerti...:-?:-?:-? Any solutions??

void
11-13-2009, 09:48 PM
baru aja mau donlot, eh listrik padam... sinyal pun ga ada... bener2 kudu sabar. padahal udah penasaran sama bahasa baru ini :(

anvie
11-14-2009, 03:16 PM
baru aja mau donlot, eh listrik padam... sinyal pun ga ada... bener2 kudu sabar. padahal udah penasaran sama bahasa baru ini :(
Wah om void dah penasaran.., ditunggu ah hasil investigasinya.... :-"

ekocapung
11-16-2009, 07:54 AM
mo coba ah.. sapa tau lebih simple dari vb.. :D

_http://ekomalik.blogspot.com

(http://ekomalik.blogspot.com)

f3rd1
11-16-2009, 02:39 PM
@ atas gw
bro..ada peraturan dilarang pake direct link..

void
12-02-2009, 02:36 PM
Wah om void dah penasaran.., ditunggu ah hasil investigasinya.... :-"
hasilnya selalu gagal diproses buildnya om :(
$ ./all.bash
--snip--
gopack grc _test/http.a _gotest_.8
make[2]: Leaving directory `/home/dbz/go/src/pkg/http'
--- FAIL: http.TestClient
Get http://www.google.com/robots.txt: dial tcp www.google.com:http: lookup www.google.com. on 202.155.0.15:53: no answer from server
FAIL
make[1]: *** [test] Error 1
make[1]: Leaving directory `/home/dbz/go/src/pkg/http'
make: *** [http.test] Error 2

udah beberapa kali ganti DNS, tapi masih ga bisa. mungkin karena koneksi saya yg sangat tidak reliable :(

void
12-04-2009, 04:38 AM
akhirnya proses buildnya berhasil setelah DNS saya ganti pakai public DNS google :D
--snip--

real 0m4.224s
user 0m3.092s
sys 0m0.380s

--- cd ../doc/progs

real 0m7.590s
user 0m6.436s
sys 0m0.796s

--- cd ../test/bench
fasta
reverse-complement
nbody
binary-tree
binary-tree-freelist
fannkuch
regex-dna
spectral-norm
k-nucleotide
mandelbrot
meteor-contest
pidigits
threadring
chameneosredux

--- cd ../test
1 known bugs; 0 unexpected bugs
$

setelah dicoba, ternyata sudah bisa :D

$ cat test.go
package main

import "fmt"

func main() {
fmt.Printf("hello, world\n")
}

$ 8g test.go && 8l test.8
$ ./8.out
hello, world
$

anvie
12-04-2009, 09:45 PM
wah kayagnya asik nih om void aku malah lum coba.
ditunggu buat aplikasinya.
coba ah... sekalian mo review nih hihihi

void
12-05-2009, 08:50 AM
wah kayagnya asik nih om void aku malah lum coba.
ditunggu buat aplikasinya.
coba ah... sekalian mo review nih hihihi
mungkin dalam waktu dekat saya blm bisa bikin aplikasinya om :( soalnya kudu balik ke desa untuk berkebun. ditunggu reviewnya om :)

dewaphobia
02-27-2010, 11:56 AM
akhirnya proses buildnya berhasil setelah DNS saya ganti pakai public DNS google :D
--snip--

real 0m4.224s
user 0m3.092s
sys 0m0.380s

--- cd ../doc/progs

real 0m7.590s
user 0m6.436s
sys 0m0.796s

--- cd ../test/bench
fasta
reverse-complement
nbody
binary-tree
binary-tree-freelist
fannkuch
regex-dna
spectral-norm
k-nucleotide
mandelbrot
meteor-contest
pidigits
threadring
chameneosredux

--- cd ../test
1 known bugs; 0 unexpected bugs
$setelah dicoba, ternyata sudah bisa :D

$ cat test.go
package main

import "fmt"

func main() {
fmt.Printf("hello, world\n")
}

$ 8g test.go && 8l test.8
$ ./8.out
hello, world
$


bener2 nggak ngerti, jadi malu sama mas anvie 'n om viod mau gath.:shy:

ini benar2 bahasa baru ? tapi koq kayaknya nggak asing yaaa :-?

void
03-24-2010, 08:47 AM
bener2 nggak ngerti, jadi malu sama mas anvie 'n om void mau gath.:shy:

ini benar2 bahasa baru ? tapi koq kayaknya nggak asing yaaa :-?
waduh, jangan gitu bro, kan kita samaČ belajar. saya juga masih baru mengenal golang.
kalau diperhatikan baikČ, sepintas mirip javascript, java, C++ bro :)
saya blm sempat ngoprek bahasa ini lagi euy, mungkin dalam beberapa hari kedepan, kalau ada waktu bakal ngelanjutin ngopreknya ;)

HyperLinx
05-21-2010, 12:01 AM
Berita baru, ada port untuk windows menggunakan mingw (experimental), Go For It ! (http://code.google.com/p/gomingw/)

:D

anvie
05-22-2010, 01:01 AM
Dikarenakan minimnya akan info mengenai HOWTO dan dokumentasi tentang bahasa Golang ini --terutama untuk sampelnya--; saya buatkan sedikit contoh lebih tepatnya `sampel` penulisan bahasa golang ini.

Let`s see...

File ini aku namain test.go


/*
Contoh kode bahasa pemrograman golang
Ditulis oleh 4NV|e (robin at nosql dot asia)
Lisensi: BSD

untuk pengenalan:
1. argument parsing menggunakan package `flag`.
2. http server menggunakan package `http`.
3. penggunaan struct.
4. penggunaan fungsi map dan make.
5. pengenalan dan penggunaan fungsi `defer`.

kompilasi: (contoh menggunakan GO compiler ARCH amd64/x64)
$ 6g test.go
$ 6l -o test test.6

hasil / output adalah native binary
identifikasi jenis file pada MacOS SL 64bit mode:
$ file test
test: Mach-O 64-bit executable x86_64
*/

package main

import (
"fmt"
"http"
"io"
"flag"
)

var test = flag.String("test","{test}","Jalankan test: http-server | struct | map | defer")


type Test struct {
a, b int
}


func HelloServer(c *http.Conn, req *http.Request) {
io.WriteString(c, "anvie is here!!\n");
}

func test_http_server() {
fmt.Printf("http://localhost:2194/hello\n");
http.Handle("/hello", http.HandlerFunc(HelloServer));
err := http.ListenAndServe(":2194", nil);
if err != nil {
panic(fmt.Sprintf("ListenAndServe: %s", err.String()))
}
}



func main(){

flag.Parse()

switch *test{
case "http-server":
test_http_server()
case "struct":
// test structure
func (){
t := new(Test)

t.a = 1
t.b = 2

fmt.Printf("t.a: %d, t.b: %d\n",t.a,t.b)
}()

case "map":
// test map
a_map := make(map[string] string)
a_map["ansav"] = "keren"
a_map["anvie"] = "gak kalah keren"

// let's iterate a_map...
for a := range a_map{
fmt.Println(a," --> ",a_map[a])
}

case "defer":

fmt.Println("Test defer... mulai menghitung...")
func(){
defer fmt.Println("selesai coy..!")

for i:=0;i<10;i++{
fmt.Println(i)
}

fmt.Println("Apakah sudah selesai?")
}()
}

}

Output:


Robin$ ./test -test=struct
t.a: 1, t.b: 2
Robin$ ./test -test=map
ansav --> keren
anvie --> gak kalah keren
Robin$ ./test -test=defer
Test defer... mulai menghitung...
0
1
2
3
4
5
6
7
8
9
Apakah sudah selesai?
selesai coy..!
Robin$
Untuk contoh selanjutnya akan aku perlihatkan kehebatan bahasa ini; `goroutine` untuk melakukan paralel processing, karena dari awal bahasa ini emang didesain untuk aplikasi back-end server, dan berita terbaru dari The Register kemarin; konon bahasa ini akan menjadi bahasa wajib untuk komunikasi mega server-nya Google, dan menariknya lagi... akan menjadi bahasa bawaannya OS Android B)
beritanya bisa dibaca sendiri dari The Register: http://panjang.in/anvuqaike

Bener-bener Python & C++ crossbeerd....

Happy coding ;)