HKS 27D Posted March 14 Posted March 14 Descoperirea limbajului Go Atunci cand am descoperit Go, am fost sceptic. Eram mult mai familiar cu limbaje de programare caracterizate de sintaxa din familia de limbaje C si nu am dorit cu adevarat sa ofer o sansa alternativelor. De fapt, chiar daca alte limbaje impartasesc caracteristici similare cu C, C++, C# sau Java, nu am fost gata cu adevarat sa aprofundez altceva. Asta pana cand am intalnit cazuri in care limbajele din familia C pe care le cunosteam la acel moment nu erau potrivite pentru problemele pe care incercam sa le rezolv. Partea de concurrency este de asemenea unul dintre aspectele cheie care m-au determinat sa caut altceva. Aici abordarea mea a trebuit sa se schimbe. A trebuit sa invat mai mult. Research limbaje de programare Mi-am facut propriul research, la fel ca majoritatea programatorilor din lume. Am comparat limbaje de programare populare pentru: use cases, CPU consumption, RAM overhead, compile time, programming paradigms, readability, software maintainability. Apoi, am decis sa incerc altceva. Care a fost prima alegere? Go. Multe persoane de pe Medium vorbeau despre Go, asa ca i-am oferit o sansa. Cat timp a durat pana la scrierea primelor programe care realizau intr-adevar ceva util? Mai putin de 30m. Am migrat cateva aplicatii mici cu documentatia in fata (https://go.dev/learn/) si alte 30 de tab-uri de browser deschise pentru a ma asigura ca fac lucrurile corect. Evolutie ulterioara De cand am descoperit Go, nu am privit vreodata inapoi catre alte limbaje de programare pentru majoritatea muncii mele din backend. Go mi-a transformat in intregime experienta de backend development. Pare solutia perfecta pentru ceea ce am cautat, cel putin pentru moment. Asta inseamna ca voi renunta la invatarea altor limbaje daca e necesar? Nu chiar. Inseamna ca am descoperit avantajele unei minti deschise in loc sa raman limitat in propria lume. Utilizarea uneltei potrivite pentru scopul propus este de fapt ceea ce trebuie sa faci in domeniul IT (partea de programare). Si da, Go merita incercat cel putin cateva luni. Partea de concurrency nu doar ca e uimitoare, ci remarcabila. Am reusit sa rezolv majoritatea problemelor pe care le intampinam mai usor ca niciodata, totul in timp ce nivelul de productivitate a crescut, iar graficele pentru software readability si maintainability cresteau de asemenea. Am obtinut performanta CPU din plin si consum RAM redus pentru solutiile backend dezvoltate pana acum, iar lucrurile au devenit din ce in ce mai bune overall. Ce aduce limbajul Go? Mentionez cateva caracteristici generale mai jos. Nevoi de performanta? Esti acoperit. Consum mic de memorie RAM? Got it. Built-in modern concurrency? Desigur. Code readability and maintainability? Verifica de unul singur. Developer experience? I-as da nota 9.5/10. Low level manipulation of backend stuff? Yep. Pointers? Sunt acolo, asteptandu-te sa lucrezi cu ei. Sa continui? Ok. Go te forteaza sa gandesti partea de error handling mai bine decat alte limbaje, intrucat sintaxa este verbose si error oriented. Sintaxa este minimala, destul de prietenoasa si usor de inteles daca aloci un timp minim, avand in vedere dorinta de invatare a limbajului. Ofera performanta si consum redus de RAM pentru majoritatea, daca nu chiar pentru toate proiectele de backend. Nu ai JVM (sau implementari similare), ceea ce il face de obicei mai rapid decat Java sau C#. Nu exista OOP in acelasi mod in care exista in C# sau Java, ceea inseamna ca aveti un cod cu mai putine abstractizari high level. Puteti trata multe lucruri ca microservicii sau solutii software complete cu usurinta. Exista un release cycle stabil care prioritizeaza compatibilitatea dintre versiuni. Si asa mai departe... Incercati Go cateva luni si spuneti-mi povestea voastra! Unii dintre voi s-ar putea sa spuneti 'pass', iar ceilalti s-ar putea ca intr-adevar sa ramaneti pe Go pentru ceea ce ofera in backend. Am sa las un clip video useful pentru cazul de fata. Desi nu agreez in totalitate ce spune omul in video (intrucat imi place sa scriu lucruri de la 0, fara prea multe dependente externe), punctul de vedere exprimat in clip este unul pertinent. 2
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now