Golang

Go (golang) proqramlaşdırma dilinə giriş #1

Go dili, Google Go və ya ən çox bilinən adı ilə Golang, Google tərəfindən ortaya çıxarılmış açıq qaynaq kodlu bir dildir. Go dilinin GitHub səhifəsində dilin bütün kodlarını görə bilərsiniz.
Golang 2007-ci ildə Ken Thompson, Rob Pike və Robert Griesiemer tərəfindən hazırlanmağa başlayıb və 2009-cu ilin noyabr ayında yayımlanmışdır. Qurucularına görə bu dil Google’daki problemləri həll etmək üçün hazırlanmış, C++’a alternatif bir dildir.

“Go’nun məqsədi: proqramlaşdırma dili dizaynı haqqında araşdırma aparmaq yox, dil dizaynerlərinin və iş yoldaşları üçün iş ortamını yaxşılaşdırmaqdır. Go,proqramlaşdırma dili araşdırmalarından daha çox proqramlaşdırma mühəndisliyi ilə əlaqəlidir. Və ya başqa cür ifadə etmək lazımdırsa: proqramlaşdırma mühəndisliyi xidmətində dil dizaynı ilə əlaqəlidir”

Rob Pike

2012-ci ildə 1.0 versiyası yayımlnana bu dil bu məqalənin yazıldığı tarixdə 1.13-cü versiyadadır. Unix təməlli Linux, macOS, FreeBSD və eyni zamanda Windows-da işləyə bilən bu dil, 1.4 versiyasından etibarən Android platformlarda da işləyə bilir.

Golang proqramlaşdırma dili təməldə digər dillərin müsbət tərəflərini özündə cəmləyib və hər yeni versiyada əlavə etməyə davam edir. Golang eynən C və C++’da olduğu kimi debug olmadan işləyə (run) bilir. Bu səbəblə performans cəhətdən Java və Python kimi dillərdən çox üstündür deyə bilərəm. Az öncə dediyim kimi C və C++ kimi dillərin mənfi cəhətlərinə özündə yer verməyən Golang, syntax barədədə belədir. Öz syntax qanunları və standartlarına sahibdir. Beləliklə kod oxunurluğu daha rahatdır. Digər dillərdə bir proqramı yazmağın bir neçə yolu olur lakin Go’da yalnızca bir yol olur və istisnalar qəbul edilmir. Bu səbəblə eyni kod üzərində onlarla proqramist eyni vaxtda rahatca işləyə bilər. Golang’ı digər dillərdən ayıran bir cəhət isə OOP tərəfində siniflər, irsiyyət və interfeyslər yerinə yalnızca struct’lar (quruluş) istifadə edir.

Bununla bərabər Go’da real vaxtlı (real time) və paralel kodlama üçün, kanallar və goroutine’lar istifadə edilir. Bir maşın (cihaz) üzərində yüz minlərlə real vaxtlı goroutine istifadə edilə bilər. Go’nun ən yaxşı tərəfi isə bu qədər goroutine və kanalların işləməsinə baxmayaraq prosessoru məhsuldar olaraq istifadə edə bilir.

Bəs kimlər işlədir bu Golang’ı?

Golang birçox dil ilə bir yerdə işlədiyi üçün hər şirkətdə fərqli bir problemi həll etmək üçün istifadə edilir. Bu şirkətlər arasında Google, Apple, Twitter, Amazon, GitHub, Ubuntu, Dropbox, Facebook, Netflix kimi şirkətlər yer alır.

Go dilinin diqqət çəkən bəzi özəllikləri aşağıdakılardır:

1.1 Go dokumentasiyası

Go proqramlaşdırma dili kod dokumentasiyalarına ciddi bir şəkildə önəm verir. Bunu isə godoc adlı alətlə yerinə yetirir. Godoc, sizin yazdığınız koddan dokumentasiya hazırlayan statik kod analiz alətidir. Burda diqqət etməli olduğunuz tək şey açıqlama sətrlərini düzgün bir şəkildə istifadə etməkdir. Godoc bu haqda olan yeganə alət olduğu üçün bütün dokumentasiyalar eyni standarta sahibdir. Buda proqramistlər üçün zaman və göz alışqanlığı yaradır.

1.2 Statik kod analizi

Golang bir çox statik kod analiz alətinə sahibdir. Bunlara örnək olaraq: godoc, gofmt, golint alətlərini göstərmək olar.

1.3 Hazır test və profil çərçivəsi

Proqramlaşdırma dillərinin çoxu hazır (built-in) bir test çərçivəsinə sahib deyil. Bu səbəblə proqram yazanda test mərhələsində uyğun bir framework istifadə etmək lazım olur. Saysız framework’lar içərisində araşdırma aparmaq belə ayrı dərddir. Bu profilləmə (profiling) mərhələsində də belədir.
Golang digər dillərdən fərqli olaraq hazır test aləti ilə birlikdə gəlir. Bu test aləti ilə eyni zamanda profilləmə etmək də mümkündür.

1.4 Real zaman (real time)

Gələk mənim ən sevdiyim özəlliyə. Golang dilinin ən diqqət çəkən tərəfi real zaman çərçivəsində işləyə bilməyidi. Golangda “real time” işləyən proqram yazmaq üçün Go Routinies və ya Channels istifadə edə bilərsiniz.

1.5 Obyekt yönümlü proqramlaşdırma

Son zamanlar çox rəğbət görən OOP proqramlama Go ilə də yazıla bilir. Lakin Go’nun OOP yazı tərzi alışıq olduğunuzdan çox fərqlidir. Özünə xas yazılış qaydası var.

1.6 Garbage collector

Garbage collector (zibil toplayıcı), istifadə edilməyən yaddaş (ram) hissəsini boşaltma vəzifəsini yerinə yetirir. Bir başqa deyişlə garbage collector, referansı olmayan obyektləri tapır və istifadə etdiyi yaddaş hissəsini boşaldır. Bu prosses, go ilə yazılan proqram başlayan zaman və ya sonlandırılan zaman yox, proqram işlək halda olduğu zaman gerçəkləşir.

Golang yükləmə səhifəsinə keçid üçün klikləyin

Go ilə “Hello World”

package main

import "fmt"

func main() {
  fmt.Println("Hello World")
}

Bu məqalədən bu qədər 🙂 Gələcək məqalədə dəyişkənlər və operatorlardan bəhs edəcəm. Bura qədər oxudğunuz üçün təşəkkür edirəm 🙂

Bir cavab yazın

Sizin e-poçt ünvanınız dərc edilməyəcəkdir. Gərəkli sahələr * ilə işarələnmişdir