Go vs The World

Well, folosesc limbajul de cativa ani si am dezvoltat o multime de proiecte de la utilitare diverse, servere, microservicii, sisteme de monitorizare, scada, iot, aplicatii cu baze de date, etc (o mica parte din ele sunt disponibile la mine pe github). Ce vreau sa spun e ca poti dezvolta o paleta foarte mare de aplicatii.

Un topic in care am vorbit mai mult despre asta e aici:

https://devforum.ro/t/my-trivial-experience-with-go-language/7019

In general in Go esti orientat mult pe server programming asta insemnand si aplicatii web selfhosted. Totusi daca vrei ceva complex gen Wordpress probabil ca o sa ai de munca pentru ca zona nu este atat de dezvoltata si cel putin eu nu am auzit de CMS-uri sau framework-uri de nivel atat de inalt.

Pentru o categorie de aplicatii web la un moment dat am facut un skeleton tocmai pentru ca nu am gasit ceva de la care sa plec.

Castigi totusi la capitolul descentralizare si performanta. Daca esti un fan al microserviciilor si iti doresti implementari la scara mare Go este exact ce iti trebuie. De asemenea poti face infrastructuri scalabile de cloud ceea se iti extinde posibilitatile unei aplicatii in materie de performanta si spatiu (cu alte cuvinte te poti intinde cu o aplicatie pe N servere).

De asemenea mai castigi la capitolul securitate pentru ca o aplicatie in Go sefhosted e greu de atacat ea nefiind supusa exploiturilor web care dau in aplicatii well known.

Partea de GUI si desktop programming nu e dezvoltata dar cu interfete web se poate lucra foarte usor datorita faptului ca foloseste template-uri html.

Legat de limbaj el aduce cateva concepte noi. In primul generalizeaza notiunea de OOP dar si anumite elemente de limbaj (eg. buclele). OOP nu exista numai in forma clasica ci poate fi orice constructie care respecta regulile OOP (eg. un pachet poate fi vazut ca o clasa). La fel, generalizand nu ai nevoie de exemplu de o bucla while cand de fapt e un for reinterpretat.

Conceptele avansate gen interfete si concurenta sunt mai greu digerabile dar cu aplicatii foarte interesante si utile.

Cursurile si prezentarile lui Bill Kennedy sunt un standard in domeniu dar personal apreciez mai mult cartile si prezentarile lui Caleb Doxsey (mi se par mai usor digerabile).

Una peste alta limbajul Go poate fi o experienta buna. Recomand.

7 Likes