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 ;-)
Go, jest stworzony z myślą o serwerach, dla tego windowsowy port ciągnie się w ogonie.
OdpowiedzUsuń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)