Go si Python

Categorii: Programare

02-May-2020 22:16 - 64 vizionari

Paradoxul Cunoasterii: cu cat cunosti mai mult dintr-un anumit domeniu, cu atat realizezi ca stii mai putin.

Lao Tzu: Cine stie, nu vorbeste si cine vorbeste nu stie ce spune.

Impresionat de limbajul go, prin 2015, doar 3 luni ca nu am putut suferi mai mult sintaxa nepamanteana a limbajului, si incepand cu 2019, pentru ca am decoperit LiteIDE, am testat diverse solutii in go (webserver, SQL, NoSQL, RPC, gRPC, servere tcp, multicast, aplicatii embedd javascript si lua), solutii inspirate de proiectele mele in Python.

Anul trecut am aflat de Android Studio si, pentru cateva luni, mi-a reinviat pasiunea pentru Java (ma ajuta IDE-ul mult), am construit cateva aplicatii Android, testand solutii de stocare preferinte, coduri de bare, comunicare http cu servere Python, abtibilduri “swipe refresh” si “recyclerview”, etc.

Desi am in limbajul Python multe solutii software si multe proiecte implementate, am realizat ca stiu foarte putina programare in Python si am realizat asta in ultimele saptamani, dupa ce am fost contactat de o firma de “Head Hunting” care imi promitea joburi de programator Python.

Ca sa nu ma fac de ras in domeniul programarii Python, am urmarit cateva filme educative pe Youtube si majoritatea prezentatorilor foloseau Visual Studio Code ca IDE.

Asa am descoperit ca Visual Studio Code  este un IDE rapid (porneste foarte repede), portabil (merge pe Windows, macOS si Linux x64) si prietenos.

Nu stiu de ce unii se lauda ca editeaza programe in notepad sau vi sau oricare alt editor spartan (fara autocompletare si fara colorarea cuvintelor cheie), pentru ca eu prefer un IDE bun sau nimic. Acum IDE-ul meu preferat este Visual Studio Code, alaturi de LiteIDE, Android Studio si IntelliJ IDEA Community Edition.

Un alt aspect interesant care imi tine creierul antrenat: De peste 15 ani programez intr-un limbaj cu libertate totala (Python) si de o simplitate extrema (aplicatii functionale si/sau pe obiecte in cateva linii de cod si variabile fara declaratie de tip), apoi am descoperit golang, unde variabilele au tip si tipul variabilei este specificat la final si nu exista programare pe obiecte (dar exista structuri si interfete si goroutine si canale), apoi mi-a reinviat pasiunea pentru Java (dupa 10 ani), care este un limbaj opus lui golang: variabilele au tip, dar tipul este specificat la inceput si este un limbaj pur orientat pe obiecte si exagerat de descriptiv.

Nu stiu prea multe in Java (ma ajuta IDE-ul si Internetul), dar in golang restrictiile impuse de comunitate sunt maxime (cum sa formatezi codul, cum sa-l organizezi, cum sa dai denumiri la variabile, cum sa testezi codul) si asta duce la eficienta maxima, eliminare aproape completa a bug-urilor si lizibilitate foarte buna, adica citesti codul si intelegi usor ce trebuie sa faca, dar in Python este invers: comunitatea doar sugereaza reguli, IDE-ul nu impune formatul codului si nu formateaza automat, IDE-ul implicit este slab si nu are autocompletare, nu exista reguli clare in comunitate pentru robustetea implementarii unei solutii sau regulile nu sunt impuse printr-o campanie activa, etc.

Dar vina este a mea: am inceput sa folosesc Python-ul prin 2001-2003 (Eu si Zope) cu serverul Zope, cand Python era la versiunea 2.2 si, din diferite motive, nu am tratat profesional situatia, intre timp limbajul a evoluat si a adaugat schimbari, iar programele mele au evoluat odata cu limbajul Python. Dar acum, incercand sa tratez programarea in Python ca programarea in golang, realizez limitarile limbajului Python.

TLDR: Sunt multe diferente, dar ce vreau sa subliniez este ca golang repara toate limitarile limbajelor C, C++, Java si Python la un loc, iar frustarea mea este ca nu pot sa construiesc aplicatii la fel de robuste, de rapide si de elegante in Python asa cum se poate in golang.



Ultimele pagini: RSS

Alte adrese de Internet

Categorii

Istoric


Atentie: Continutul acestui server reprezinta ideile mele si acestea pot fi gresite.