De ce programarea?    Sa progresez continuu...

Java - probleme existențiale

În momentul cînd am finisat primul meu proiect pe Laravel și eram uimit cît de simplu pot funcționa instrumentele care îți sunt disponibile în acest framework am primit propunerea de a lucra la un proiect în Java. Evident pentru asta aveam nevoie de a studia intrumentele din acest limbaj și să abandonez temporar limbajul meu preferat de programare. Cunoștința cu Java am făcut-o din cursul 2 la colegiu fiind interesat de dezvoltarea pe Android, apoi am făcut și ceva mărunțușuri pentru a ușura viața mea.

Problema era în faptul că nu ador limbajele tipizate cu toate că iubesc în php să tipizez unele lucruri și recomand tuturor să facă asta.

Deci cîteva motive de ce după o lună de dezvoltare a proiectului nu prefer acest mediu:

  1. Compilarea și rularea proiectului îmi fură mult timp din viață. Eu idee nu am avut că acest proces poate dura chiar atît de mult, la mine pe i7 și 8Gb ram aceasta durează 15-30 sec. Aici sa prăbușit stilul meu de programare din php și anume am făcut – am verificat. Acum înțeleg de ce colegii mei care programează pe Delphi atît de tare iubesc să scrie 300 rînduri de cod și apoi să își execute aplicația.
  2. Tomcat pornește un proces Java de la care șuieră răcirea calculatorului. El crapă 1gb ram și uneori utilizează la 70% procesorul, cînd lucrez la proiect am deschis Task Manager și cu el fac Shutdown la Tomcat cînd cred că nu trebuie să ruleze serverul, și da – Eclipse rău o duce cu închidere acestui proces, de lansat lansează, dar de stîns nu mereu.
  3. Dacă cînd lucram în php mă criticam de ce eu scriu atît de mult cod, atunci în Java nu mai are sens să fac asta, insuportabil de mult cod, chiar cînd căutați o problemă pe stackoverflow deobicei găsiți soluții cu sute de rînduri.
  4. Am o productivitate mică în acest limbaj, sper să fie din cauză ca am puțină experiență cu el, dar de nenumărate ori am spus că ”eu acest task în php îl făceam în 10 min iar eu aici am scris o oră”, bine o oră, dar erau probleme a căror soluționare o găseam ore întregi. Idee nu aveți cît de mult am lucrat ca să fiu performant în php, și aici vine un limbaj în care mă simt lamer.
  5. În timp de o lună am ajuns la concluzia că limbajul nu e atît de bine documentat. Da, documentație este, dar felul în care oferită e diferit față de php. Eu nu doresc să citesc sute de cuvinte despre chestia care o caut, vreau simplu: forma generală, dependențe și un exemplu de implementare. Mulțumesc că este stackoverflow și de multe ori salvează.
  6. Analiza erorilor se face într-un mod interesant, în consolă se aruncă o sumedenie de erori iar tu frumușel trebuie să cauți care eroare e de bază. Unii îmi spun ca să citesc de jos în sus, ațlii invers, rezultat același. Uneori pur și simplu ai pagină albă și consolă curată și trebuie să ghicești sau să îți amintești ce ai făcut ultima dată înainte să vezi că nu lucrează nimic.

 

La sigur mai sunt, dar sunt fleacuri.

Acum cîteva motive de ce îmi place acest limbaj și cred că php nici nu se compară:

  1. Cod cu mult mai clar, de obicei funcțiile și variabilele au denumiri depline, de exemplu: getAllAttributesAndValues, getProductsCountByShop, setTotalDisplayRecords. Imediat înțelegi pentru ce și cum, evident asta deseori se exagerează ajungînd la denumiri gigantice. 
  2. Autocomplete-ul știe tot. Deacord, sunt IDE-uri în php bune care la fel scanează bine codul și îți spune ce proprietăți are acest obiect dar cu Java nu se compară. Aici problema dată doar cînd folosești Generic Types, în restul cazurilor tu știi tot.
  3. În sfîrșit un Debugging ușor accesibil, oprești procesul și vezi tot ce se întimplă în interior, fiecare variabilă ce valoare are și ce se modifică, faci înainte, sari, urmăreși, pe scurt tot ce este nevoie pentru un proces de debuggind deplin. Și uiți că cea mai utilizată funcție în trecut era var_dump.
  4. Spring MVC, un instrument de nota 10, stabil, rapid și deplin customizabil. Consider arhitectura lui de lucru cu datele bazată pe Controller – Service – DAO – Model perfectă, aici nu vei putea face un db query direct în View sau în controller, aici tot e pus la punct, aici lucrezi doar cu același nivel la care ești la moment, DAO cu DAO și View cu View.
  5. În sfîrșit am posibilitatea să folosesc un adevărat ORM, dar nu variante de gen Active Records sau Eloquent. Totul e strict, totul e stabil.
  6. Lumea se uită altfel cînd le spui că lucrezi pe Java, asta nu e php, Java nu orice mucos o poate însuși, trebuie cunoștințe de OOP, tipuri de date, metode de lucru cu datele, etc.
  7. Proiecte mari, o da ce le place companiilor să bage o mulține de bani în proiecte pe Java. Java cumpără clientul și îl cumpără la un preț bun.

cred că cu timpul o să mai adaug...

 

Cred că e o prostie să compari acest două limbaje, nici nu vreau, cred că voi programa în ambele, transportînd experiența din unul în altul.


Ți-a plăcut articolul? Apasă Like:

Tag-uri: Java, php

Comentarii: