Spokojnie, to tylko MVP, więc robimy prostego PoC’a, z którym wjeżdżamy na RC. Wyślij mi, proszę, link do MR, to zrobię szybko CR i lecimy z CI.

Jeśli po przeczytaniu powyższego akapitu w Waszej głowie pojawił się olbrzymi neon wyświetlający popularny internetowy akronim: WTF?!, to znaczy, że akapity poniżej są właśnie dla Was.

Aby komunikacja była sprawna, nadawca i odbiorca muszą wytwarzać zrozumiałe dla siebie komunikaty, muszą posługiwać się tym samym kodem. W przeciwnym wypadku może dochodzić do kuriozalnych nieporozumień. W IT owym kodem, tą magiczną barierą, która oddziela ludzi z branży od… zwykłych śmiertelników, są głównie akronimy (wspomniany WTF też się czasem wśród nich pojawia, ale to akurat akronim ponadbranżowy).

Sporą dawkę akronimów branżowych zaserwowaliśmy Wam we wstępie tego tekstu, a w zanadrzu mamy ich znacznie więcej! I cykl IT po ludzku powstał między innymi właśnie po to, aby Wam te akronimy przedstawić oraz rozszyfrować ich znaczenie. Formułę artykułów oparliśmy o analizę opisów case study projektów realizowanych przez NetinsSoftware – bo przecież najlepiej uczyć się na przykładach „z życia wziętych”. Przedstawimy oraz objaśnimy Wam szereg pojęć związanych z naszymi projektami, opiszemy użytą technologię, zastosowane rozwiązania oraz ich uzasadnienie biznesowe.

 No to zaczynamy!

Nie warto mylić rumu z rumakiem i Java z JavaScript

Wyobraźcie sobie, że jesteście właścicielem stadniny koni czystej krwi arabskiej. Wasze wierzchowce na pewno będą odnosić sukcesy w największych gonitwach na świecie. Potrzebujecie jeszcze tylko doskonałego dżokeja, więc zlecacie znalezienie takiej osoby firmie specjalizującej się w rekrutacji pracowników. Mówicie, że potrzebujecie kogoś, kto ma wiele lat doświadczenia z rumakami. W odpowiedzi na Waszą potrzebę rekruter proponuje wam… pirata! Tak, takiego z zasłoniętym jednym okiem! Bo przecież ma wieloletnie doświadczenie z rumem! Zaraz, zaraz, jak to z rumem? A no właśnie… Dokładnie tak się dzieje, gdy rekruter myli Java z JavaScript. Historia powstania oraz natura tych języków sprawia, że jedyne co mają wspólnego to… słowo J-A-V-A.

Rozpoczynając analizę pierwszego projektu opisanego na stronie, trafiamy na informację o języku programowania, który w projekcie został wykorzystany. Projekt nazywa się Trans For Shippers i został napisany w JavaScript. Język ten wykorzystano zarówno do napisania części frontendowej (czyli tego, co widzi użytkownik w oknie przeglądarki po wpisaniu adresu), jak i do części backendowej (odpowiedzialnej za przechowywanie danych na serwerach). 

I w tym momencie możemy już dostrzec jedną z najważniejszych różnic pomiędzy JS (od teraz tak będziemy zapisywać JavaScript) a Java. Mianowicie, popularnym jest tworzenie zarówno części frontendowej jak i backendowej aplikacji webowej z wykorzystaniem JS. Niestety, nie można tego powiedzieć o Java.

 A teraz spójrzmy na stronę biznesową zagadnienia. Teoretycznie jeden programista, posiadający znaczną wiedzę o JS, jest w stanie napisać kompletny startup! Napisze API, wykona front aplikacji, zakoduje aplikację na telefony (zarówno te z systemem Android jak i iOS)! To ogrom możliwości, które nie do końca może nam zaoferować Java. Dlaczego nie do końca? Oczywiście wszystko jest możliwe, pytanie tylko – jakim kosztem? Nie jest popularnym (opłacalnym) tworzyć front aplikacji webowej w Java. Nie jest też popularnym pisać aplikację w Java na iOS. Natomiast język ten zdominował tzw. rynek enterprise. Stosowany jest w dużych systemach, szczególnie tych wykonujących znaczne ilości skomplikowanych obliczeń. W języku Java piszemy również natywne aplikacje na Androida.

Niech podsumowaniem będzie kilka „prawd” o obu językach:

  • język JS zdominował Internet;
  • język JS pozwala na stworzenie kompletnego rozwiązania dla firmy (serwer, aplikacja webowa, aplikacja mobilna);
  • język JS ze względu na swoją naturę jest bardziej konsystentny (potrzebujemy znacznie mniej kodu, aby osiągnąć ten sam efekt);
  • programiści JS zarabiają mniej (koszty wytworzenia projektu są mniejsze);
  • utarło się mówić, że Java jest przeznaczona dla rozwiązań enterprise, jednak obecnie bardzo wiele dużych firm zdecydowało się na wykorzystywanie JS, stąd warto się zastanowić, czy mój biznes jest większy, niż takie „małe” rozwiązania jak Netflix, LinkedIn, PayPal czy Medium;
  • Java jest językiem typowanym statycznie, dzięki czemu unikamy wielu błędów związanych z typowaniem;
  • JS wspiera typowanie z wykorzystaniem TypeScript;
  • Java to język kompilowany i dlatego jest szybszym rozwiązaniem przy skomplikowanych obliczeniach;
  • JS jest językiem skryptowym, mniej wydajnym przy skomplikowanych obliczeniach.

W kolejnych artykułach jeszcze niejednokrotnie będziemy wracać do języków programowania (szczególnie do JS).

Natomiast przekaz dnia brzmi: Java i JavaScript nie mają ze sobą wiele wspólnego – koniec, kropka.

Michał Krupka

React Developer, CTO

Poznajmy się bezpośrednio.
Zapraszam Cię do kontaktu.
praca@netins.it