piątek, stycznia 21, 2011

Goto Go ;-)

Od jakiegoś czasu szukam jakiegoś nowego języka do zabawy, a może i do specjalizacji.
Myślałem o C++, Pythonie i Go. I dziś wygrywa Go ;-)

Np. najprostszy "serwer" HTTP w Go (taki, który zwraca zawsze ten sam tekst) wygląda tak:
package main

import (
"fmt"
"http"
)

func Hello(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, world!")
fmt.Print(r)
}

func main() {
http.HandleFunc("/", Hello)
http.ListenAndServe(":8080", nil)
}


Czyż to nie jest genialne?
Niby w Pythonie wygląda podobnie, ale to tutaj jakoś do mnie przemawia.

Ciekawe kiedy doczekamy się oficjalnego portu dla Windows (btw. nie jestem pewien, ale gdy pisałem sobie w Go wysyłanie dokumentów do Google Docs to coś mi chyba na Windows nie działało, z najnowszą wersją portu Go dla Windows już działa :-), choć nadal nie ma 64 bitowej wersji), a później zapowiadanych wersji dla Androida i NaCl (Native Client).

Już to tu pisałem, ale Go mi się zaczyna coraz bardziej podobać.

Przy okazji, ten serwerem u góry jest z bardzo ciekawej prezentacji (video, slajdy z prezentacji), w której adwokat czy ewangelista Go pokazuje jak można szybko zbudować skracacz linków w Go... pomija niestety dość ciekawie brzmiący kawałek o RPC, ale sama prezentacja fajna.


Podobne postybeta
Język Go dla Windows :-)
Wysyłamy pliki do Google Docs przy pomocy Go :-)
Go dla Java'owca ;-) odcinek 2 "kontenery dwa ;-)"
Komputery są naprawdę stare ;-)
strictfp sierota po x87 ;-)

1 komentarz:

  1. Go, jest stworzony z myślą o serwerach, dla tego windowsowy port ciągnie się w ogonie.

    Będąc szczerym najchętniej zobaczył bym wersję na NaCl, ta bowiem ma szansę zmienić sposób dystrybucji oprogramowania. Podejście NaCl przypomina bardziej virtual appliances.

    ps.
    Tak w ramach kolejnego przykładu.. Swojego czasu popełniłem miniserwer udostępniający dowolny katalog przez http (http://blog.szsz.pl/2010/10/golang-serwer-http.html)

    OdpowiedzUsuń