Go

Aktualizacja: 10.12.2024

Zobacz polecane:

Polecane kursy video Kursy Polecane książki Książki

Zastosowanie

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.

Top 10 projektów na Github wykorzystujących Go

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

Poziom skomplikowania

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ść.

Składnia

Przykładowa implementacja wyszukiwania binarnego:

BinarySearch.go
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
}

Statystyki

Dane aktualne na dzień: 01.04.2025

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.

Przyszłość języka

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.

Inne kursy video na UdemyZobacz inne kursy video na Udemy

Najlepsze książki do nauki Go

od wydawnictwa Helion:

Zobacz inne książki w kategorii Go