W początku można było używać tylko Python z Google App Engine, usługa online, która pozwala uruchamiać aplikacje na szczycie słynnej rozproszonej infrastrukturze Google. Potem, po wielu wniosków od deweloperów, Google dodał Javy do serwisu. A teraz firma jest dodanie runtime dostosowane do tej usługi. Trzeć jest to, że czas pracy jest wykorzystywany przez prawie nikt. Ale to może się zmienić. W tym tygodniu na dorocznej konferencji deweloperów w San Francisco firma Google ogłosiła, że App Engine wkrótce oferta „experimental” runtime na swój własny język programowania Go, a mniej niż dwóch lat tworzenia, który ma na nowo programowania w Najbardziej praktyczny sposób. Idź narodził się w 2007 r. przez trzy duże nazwy Google: Unix współtwórca Ken Thompson, Rob Pike, który pracował na systemie Unix w Bell Labs z Thompsonem, a Robert Griesemer, który pomógł zbudować kompilator Java HotSpot w firmie Sun.
Ideą było stworzenie budynku języku dostosowane do rodzaju aplikacji rozproszonych, że Google buduje. „Zdaliśmy sobie sprawę, że tego rodzaju oprogramowania budujemy w Google nie zawsze jest dobrze służył przez języki mieliśmy dostępne,” Rob Pike niedawno powiedział nam. „Robert Griesemer, Ken Thompson i ja postanowiłam stworzyć język, który byłby bardzo dobry do pisania rodzaju programy piszemy w Google”. Oznacza to, że jak Erlang, Go oferuje wbudowane narzędzia dla współbieżności. „Świat jest jednoczesne i równoległe Ale języków programowania użyjemy do współpracy ze światem zewnętrznym -. Przez użytkowników w sieci oraz myszy i klawiatury na komputerze lokalnym – nie zdają się potwierdzać, że sposób myślenia o rzeczach bardzo dobrze . Było wiele interesujących prac z teorii na ten, ale bardzo niewiele praktycznych języków. ” I tak, jak C, Go jest statycznie wpisane, język kompilowany. Ale to również na celu „czuć” jak dynamicznie wpisany język na wzór Python. „W przypadku dużych programowania – programowanie w dużych, jak my w Google, za pomocą dużych systemów z wielu programistów pracuje nad nimi – statyczne [pisania] jest ogromna sieć bezpieczeństwa połowy to mnóstwo rzeczy na początku, że nie będzie złapany z wszystkie. dynamiczne typowanie, „Pike powiedział nam. „Go jest językiem systemów, język kompilowany. Możesz napisać naprawdę wydajnego kodu, który uruchamia się bliżej metalu.
Ale można korzystać z tych pomysłów na wyższym poziomie do budowania serwerów z elementów można umieścić razem.” W tym tygodniu konferencji, reporterów wydawało zaskoczeni przez dodanie Idź do App Engine. Ale Peter Magnusson, kierownik ds. technicznych w Google App Engine, który nadzoruje, wyjaśnił, że Go jest szczególnie odpowiedni do stosowania na „platformy-as-a-service” jak App Engine, która działa w bardzo różny sposób z „chmury infrastruktury” jak Amazon EC2. Podczas gdy chmura infrastruktury naraża surowego maszyn wirtualnych, „chmury platformy” działa na wyższym poziomie, starając się dzielić zasoby z jeszcze większą wydajność. „Kiedy patrzysz na platformie-as-a-service w porównaniu z infrastrukturą-as-a-service, jest podstawowym wyzwaniem w prowadzeniu dowolnych plików binarnych. Można to zrobić na infrastrukturę-as-a-service, ale nie możesz t naprawdę robię to w wysokim poziomie, wielu dzierżawców, wspólne środowisko platformy. Mamy więc do kontroli języków bieg. Mamy setki i tysiące aplikacji, a musimy mieć bardzo surowe gwarancje, że nie ma przecieków i nie ma wpływu między nimi, „powiedział.
„Ale w tym samym czasie, istnieje potrzeba język programowania niskiego poziomu do zadań wymagających dużej mocy obliczeniowej. Jest to język Go. Jednym z jej głównych atutów, gdy działa na platformie-as-a-service, Magnusson powiedział, że został przeznaczony do szybkiej kompilacji. „Go zostało zaprojektowane od początku być szybko skompilować. … To naprawdę szybko kompiluje nawet aplikacji naprawdę duże. To pozwala na uruchomienie go na platformie-as-a-service jak App Engine, gdzie wgrać kod źródłowy i skompilować i link i uruchom go „, powiedział „Opracowanie powiązanie jest tak szybki, że to tak szybko jak przesyłanie binarne, lub prawdopodobnie szybciej. Więc to pozwala na dostarczenie język programowania niskiego poziomu, na platformie-as-a-service. Dlatego Go to ciekawy Ponadto, w przeciwieństwie do wielu innych języków, które możemy dodać w przyszłości. Go stanowi podstawową zaletę, że Python i Java nie „. Ale Go nie tylko szybko w czasie kompilacji. Jest szybki w czasie wykonywania, jak również. Google twierdzi, że prędkość jest porównywalna do C. Martin Odersky – twórcy Scala, inny język, który koncentruje się na współbieżności – mówi nam, że papier badań w pracach pokazano, że C, Scala, and Go uzyskanie porównywalnych prędkości przy starcie. Google twierdzi, że na App Engine, Go nadaje się szczególnie do aplikacji mocno obciążających procesor, bo kompiluje do kodu. Google wydała Go na App Engine SDK, ale nie można jeszcze wdrożyć Go aplikacje na usługi. To „wkrótce” być rozwiązaniem dla ograniczonej liczby testerów wersji beta. Runtime Go przybywa z nową wersją 1.5.0 App Engine. To także debiut wspomagająca przypadki, które nie mają ograniczenia rozmiaru lub terminów wniosku. Są one przeznaczone do zastosowań, które wymagają długotrwałego i wysokiej pamięci procesów, używając między 128MB a 1GB pamięci i „proporcjonalne” ilość mocy procesora. Magnusson wzywa wspomagająca „potencjalnego zmieniarka gra” do App Engine. „Wcześniej przypadki miały ograniczone zasoby przy starcie. Byli bardzo dobry do biegania skalowalnych aplikacji. Ale nie zapewniają długą skalowalne kończy z powrotem, że były dobre dla obliczenia intensywne lub długotrwałe aplikacji stanu”, powiedział.
„Kiedy trzeba długą kodu lub obliczeniowe natężenie lub trwałym stanie i nie odpowiada bezpośrednio na połączenie lub memcache przechowywania danych, a nawet żądania HTTP, wówczas staje się bardzo uciążliwe to wyrazić. Z wspomagająca, można bardzo łatwo – w rzeczywistości, uroczo łatwo – kod, który się „. Nowa wersja poprawia również w aplikacji Silniki „Task Kolejki” poprzez wprowadzenie „Pull kolejek”, które pozwalają wyciągnąć zadania z kolejki jak aplikacje są gotowe do nich zamiast czekać na remis. Ale prawdziwe nowości jest pojawienie Go. Dziennikarze mogą być zaskoczeni, ale poruszają się tylko ma się rozumieć. App Engine jest narzędziem budowania i uruchamiania aplikacji na infrastrukturę zaplecza Google. And Go jest specjalnie zaprojektowany do tego celu bardzo plecy. Google korzysta już Go za „kilka” systemów wewnętrznie, choć nie będzie określić, które.