Go proqramlaşdırma dilinə giriş

Elnur Mammadli
PASHA Bank
Published in
4 min readMar 25, 2020

Yeni bir texnologiya öyrənən zaman proqramçıların etmək istədiyi ilk şey həmin texnologiyaya yuxarıdan bir nəzər yetirməkdir. Bu məqalədə Go proqramlaşdırma dilinə kiçik bir baxış keçirəcəyik. Burada demək olar ki, kod hissəsi görməyəcəksiniz, sadəcə nəzəri olaraq dili incələyəcəyik.

Go və ya Golang Google-da Google-un mühəndisləri və digər proqramçılar tərəfindən yaradılmışdır. Bu proqramlaşdırma dili pulsuz və açıq mənbə kodludur. Hal-hazırda Google tərəfindən dəstək alır. Go bu 3 şəxs tərəfindən dizayn olunmuşdur: Robert Griesemer, Rob PikeKen Thompson. Go-nun yaradıcılarından ikisi Unix əməliyyat sisteminin inkişafına verdiyi töhfələrlə tanınan Ken Tompson Rob Pike-dir. Go-nun yaradılmasına 2007-ci ildən başlanılmışdır. İlk versiyası isə 2009-cu ilin noyabr ayında işıq üzü görmüşdür. Go sintaksis olaraq C dilinə bənzəsə də C-yə nəzərən çox az açar sözə (keyword) sahibdir. Go-da cəmi 25 açar söz vardır, məlumat üçün bildirim ki, bu rəqəm C-də 37, C++ -da isə 84-ə bərabərdir. Go aşağıdakı açar sözlərə sahibdir:

break      default        func      interface  select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var

Gördüyünüz kimi Go-da çox az açar söz vardır. Go-nun əsas qayəsi “az qayda, elastiklik və sürətdir”. Buna görə də, Go kodunun oxunması və dilin öyrənilməsi asandır. Go-da az qayda ola bilər, amma mövcud qaydalar çox sərtdir. Məsələn, koda daxil (import) edilmiş kitabxana və ya təyin edilmiş dəyişən istifadə olunmursa bu zaman kompilyator xəta verəcəkdir.

Go kompilyatoru ilk öncə C proqramlaşdırma dilində tərtib edilsə də, hal-hazırda Go-nun özündə Go kompilyator tərtib olunur.

Bəs Go-nu bu qədər özəl edən amillər hansılardır?

  • Go statik tipli kompilyasiya olunan dildir.
  • O, GoRoutine-lərin köməyi ilə daxili paralelizmi dəstəkləyir.
  • O, daxili garbage collectoryaddaş təhlükəsizliyinə sahibdir.
  • Go-da sətrlər susmaya görə UTF-8 ilə kodlaşdırılmışdır.
  • Digər kompilyasiya olunan dillər ilə müqayisədə Go daha sadə sintaksisə malikdir.
  • Go-da proqram təminatı bir fayla kompilyasiya olunur.

Go-nun yaradılmasının arxasında duran əsas səbəblər hansılardır?

Günümüzdə seçə biləcəyimiz çoxlu proqramlaşdırma dilləri mövcuddur və hər bir proqramlaşdırma dilinin sahib olduğu üstünlüklər vardır. Qarşıya qoyulan tapşırıqdan aslı olaraq doğru texnologiyanın seçilməsi bəzən heç də asan olmur.

Sual oluna bilər ki, illərdir daxili proqram təminatlarını Java, Python, C, C++ və s. kimi dillərdə inkişaf etdirən Google niyə yeni proqramlaşdırma dilinə ehtiyac duydu? Qeyd etdiyimiz kimi hər bir proqramlaşdırma dilinin malik olduğu müsbət və mənfi cəhətləri vardır. Bunlar kiçik proqram təminatlarında özlərini büruzə verməsələr də, ancaq böyük layihələrdə mütləq özünü hiss etdirir. Bunları performans, kompilyasiya, təhlükəsizlik, resurs kimi bir çox başlıq altında yığmaq olar. Go layihəsi ilk başlarda Google-un öz daxili problemlərini həll etmək üçün başladılmışdır. Ona görə də, Go proqramlaşdırma dilində olan və ya əlavə olunmayan bütün funksionallıqlar illərin “qanla” yazılmış təcrübələrinə əsaslanır. Məsələn, Go-nu bir qədər araşdırdıqdan sonra sizdə sual yarana bilər ki, niyə Go-da jenerik-lər yoxdur. Bu suala Go-nu inkişaf etdirən proqramçıların cavabının xülasəsi belədir: Jenereriklər sürətli deyildir, biz də buna bir həll tapa bilmədik, tapanda əlavə edərik”.

C C++ kimi proqramlaşdırma dillərinin JavaPython-a nisbətən sürətli olmasının əsas səbəbi bu dillərdə virtual maşınların olmamasıdır. Go-da CC++ kimi virtual maşınlara ehtiyac duymadan kodu birbaşa maşın dilinə kompilyasiya edir.

Go komandasının təməl prinsiplərindən biri də “bir tapşırığın həllinin ən yaxşı üsulunu tapmısansa, onda digər həllərə ehtiyac yoxdur” fikri üzərinə quruludur. Bu səbəblə digər proqramlaşdırma dillərində bir tapşırığın həlli üçün çox vaxt bir neçə həll yolu mövcuddur, amma Go-da həmin tapşırığın əsasən bir həlli vardır.

Niyə Go-dan istifadə edim?

Go proqramlaşdırma dili ilk zamanlarda sistem proqram təminatlarının inkişafı üçün yaradılsa da, son zamanlarda veb proqramlaşdırmada da geniş istifadə olunur. Günümüzdə bir neçə Golang veb framework-u vardır ki, siz onlardan rahatlıqla istifadə edə bilərsiniz. Nümunə olaraq Gin, Echo və s adını çəkə bilərəm. Mobil proqramlaşdırmada da Go dilinin istifadəsi Google tərəfindən nəzərdə tutulur. Github-da Golang də tərtib edilmiş bir neçə mobil layihə tapa bilərsiniz.

Go proqramçıya Python və Javascript kimi skriptiv dillərdə yazırsanmış kimi bir effekt verir. Amma bununla yanaşı sizi aşağı səviyyəli kompilyasiya olunan dillərə məxsus funksionallıqlarla da təmin edir.

Golang yeni yaranmış dil olmasına baxmayaraq Docker, Google, Apple, Twitter, Amazon, Github, Dropbox və s kimi böyük şirkətlər aktiv olaraq öz proqram təminatlarının inkişafında ondan istifadə edirlər.

Məsləhət görünən mənbələr:

--

--

Elnur Mammadli
PASHA Bank

I am Software Developer at PASHA Bank OJSC. I am autodidact.