Go (często nazywany Golang) to stosunkowo nowy, statycznie typowany język programowania opracowany przez Google w 2009 roku. Został zaprojektowany z myślą o prostocie, wydajności oraz łatwości tworzenia współbieżnych aplikacji. Dzięki tym cechom Go idealnie nadaje się do:
Jego architektura wspiera współbieżność poprzez lekkie wątki zwane gorutynami oraz mechanizm komunikacji poprzez kanały, co znacząco ułatwia skalowanie aplikacji. Dodatkowo, szybka kompilacja dostarczająca jednoplikowe binarki znacznie przyspiesza proces wdrażania.
Go znajduje zastosowanie w wielu globalnych firmach technologicznych, w tym:
Więcej przykładów i szczegółową listę zastosowań znajdziesz w artykule na Wikipedii.
Github to system kontroli wersji. Możesz znaleźć tam projekty open source w każdej technologii. Zobacz jakiego typu projekty wykorzystują język Go oraz jak wygląda Go od strony kodu. Zwróć uwagę na pliki z rozszerzeniem .go.
1# | awesome-go | 140,768 |
2# | ollama | 135,260 |
3# | go | 126,815 |
4# | kubernetes | 114,057 |
5# | frp | 91,992 |
6# | gin | 81,147 |
7# | hugo | 79,109 |
8# | moby | 69,474 |
9# | fzf | 69,013 |
10# | syncthing | 68,975 |
Go został stworzony z myślą o uproszczeniu procesu programowania. Jego cechy sprawiają, że nauka i codzienna praca są wyjątkowo efektywne:
Czym jest idiomatyka? Idiomatyką nazywamy zestaw zasad, konwencji i wzorców charakterystycznych dla danego języka programowania, które pozwalają pisać kod w sposób zgodny z jego “filozofią”. Idiomatyczny kod w Go jest prosty, spójny i czytelny.
Narzędzia takie jak gofmt (automatyczny formater kodu) i golint (analityk dobrych praktyk) pilnują, aby kod był zgodny ze standardami Go. Dzięki temu:
Mimo że Go różni się od tradycyjnych języków obiektowych (np. brak dziedziczenia, klas, wyjątków czy generyków), takie uproszczenia sprawiają, że język jest bardziej przystępny. Go kładzie nacisk na przejrzystość kodu i minimalizm.
Programowanie współbieżne w Go jest znacznie łatwiejsze niż w większości innych języków, dzięki:
Dla początkujących programistów Go to świetny wybór ze względu na prostotę, wsparcie w budowaniu dobrych praktyk i dużą społeczność.
Przykładowa implementacja wyszukiwania binarnego:
import "fmt"
func binarySearch(array []string, x string) int {
start := 0
end := len(array) - 1
for start <= end {
middle := (start + end) / 2
if array[middle] == x {
return middle
}
if array[middle] > x {
end = middle - 1
} else {
start = middle + 1
}
}
return -1
}
func main() {
library := []string{"Algorytmy", "Czysty kod", "Harry Potter", "Illuminati", "Wzorce projektowe", "..."}
// Dla wyszukiwania binarnego tablica musi być posortowana rosnąco
x := "Illuminati"
foundXAt := binarySearch(library, x)
fmt.Printf("Znaleziono \"%s\" na pozycji %d\n", x, foundXAt)
// Znaleziono "Illuminati" na pozycji 3
}
Według TIOBE index, język Go jest na 7 pozycji pod względem popularności. W ubiegłym roku był na pozycji 8.
Na Stack Overflow jest 13 najczęściej tagowanym językiem z 74,811 zapytaniami.
Na Github zajmuje 8 pozycję z liczbą 441,739 projektów, z których 3,322 ma więcej niż 1000 gwiazdek.
Jeśli chodzi o organizowane spotkania to według Meetup.com jest to 8 co do wielkości społeczność z liczbą 167 grup, w skład których wchodzi 154,038 członków na całym świecie. W Polsce mamy odpowiednio 3 grup, w skład których wchodzi 1,906 członków.
Popularność Go stale rośnie, co wynika z zapotrzebowania na wydajne rozwiązania chmurowe oraz mikroserwisy. Wsparcie i rozwój ze strony Google zapewniają językowi stabilność i dalsze innowacje.
Jego ostatnia wersja 1.24.1 została wydana 4 marca 2025, co świadczy o aktywności społeczności oraz twórców w rozwijaniu ekosystemu. Coraz większa liczba narzędzi opartych na Go (np. Docker, Kubernetes) potwierdza, że język ten zyska jeszcze większe znaczenie w przyszłości. Dla osób planujących naukę nowoczesnego języka, Go to doskonały wybór.
(W języku polskim niżej)
Go - The Complete Guide
Learn Go ("Golang") from the ground up & in great depth by building multiple demo projects, incl. a REST API
Czas trwania: 15.5 total hours 32647 zapisanych uczestnikówGo: The Complete Developer's Guide (Golang)
Master the fundamentals and advanced features of the Go Programming Language (Golang)
Czas trwania: 9 total hours 184906 zapisanych uczestnikówLearn How To Code: Google's Go (golang) Programming Language
The Ultimate Comprehensive Course - Perfect for Both Beginners and Experienced Developers
Czas trwania: 29 total hours 155373 zapisanych uczestnikówBuilding Modern Web Applications with Go (Golang)
Learn to program in Go from an award winning university professor
Czas trwania: 29.5 total hours 36753 zapisanych uczestnikówProgramowanie w języku Go - od A do Z
Rozwijaj umiejętności, które liczą się na rynku pracy: odkryj techniki wysokowydajnego kodowania w języku Go (Golang)
Czas trwania: 10 total hours 147 zapisanych uczestników