piątek, marca 30, 2012

Takie sobie ciekawostki

Początki języka GO firmy Google – jest już wersja 1.0. Tutoriale są tutaj - https://developers.google.com/appengine/docs/go/gettingstarted/helloworld?hl=pl. Jest to trzeci język obok Java i Python który potrafi obsłużyć Google Apps Engine. Co można powiedzieć o tym kierunku? Idzie o uproszczenie programowania trudnych i powtarzalnych fragmentów kodu, np. pisanie obsługi strony www sprowadza się do utworzenia tzw. handler’a danego zapytania (podobnie jak w WCF_, który nakierowywał by dane żądanie ( wg. wzorca URL w adresie) do odpowiedniej funkcji obsługi. Kiedyś musiało to być szybkie i efektywne (najlepiej w C/C++), potem jak moc komputerów wzrosła i pojawiła się Java to dominujące znaczenie miała prostota – dlatego powstały frameworki do uproszczenia i zwiększenia niezawodności obsługi np. AXIS, REST. Podobnie było w C# i cała technologia REST/WCF.Ale i to nie było dobre ponieważ działały one zanurzone w dość skomplikowanym języku Java. Dalsze, radykalne uproszczenie pojawiło się z nastaniem Pythona wyposażonego w różne “baterie”. Ale Google to za mało – wymyśliła jeszcze bardziej prosty język to jest GO. Język ten jest uniwersalny i można w nim pisać różne rzeczy. Przykład prostego handlera:

package hello

import (
    "fmt"
    "net/http"
)

func init() {
    http.HandleFunc("/", handler)
}

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

Z GO jest podobnie jak z NODE.JS – idealnie upraszcza sprawę oprogramowania strony serwerowej aplikacji internetowych, ale gorzej jeżeli chodzi o wydajność. Mało firm może sobie pozwolić na eksperymenty z tymi nowymi skryptowymi językami w sytuacji kiedy nie dysponuje zasobami sprzętowymi jak Google, ciągle liczy się wydajność a nie elegancja kodu.

Inny temat związany z Google – zapewnienie prywatności i jej monitorowanie. W odpowiedzi na liczne uwagi na ten temat Google udostępni nowy monitor prywatności użytkownika - https://www.google.com/settings/general?hl=en.

Brak komentarzy: