W dżungli technologii- z czym kojarzyć poszczególne języki programowania i frameworki? #2 aplikacje webowe


IT, IT-DLA-ZIELONYCH / czwartek, 12 września, 2019

W pierwszej części dżungli technologii skoncentrowaliśmy się na aplikacjach mobilnych, a  więc tych dedykowanych smartfonom i tabletom. Dzisiaj przyjrzymy się aplikacjom webowym. 

Pamiętajcie, że celem tej serii jest uporządkowanie pojęć i technologii, które spotykacie na co dzień w branży, nie wystraszcie się więc, jeśli na pozór ich liczba wyda Wam się przytłaczająca.

W przypadku aplikacji webowych w przeciwieństwie do aplikacji mobinych wachlarz możliwości jest trochę szerszy, co nie znaczy, że trudniejszy. Aplikację webową bardzo często opisujemy z rozgraniczeniem na część frontendową i backendową (jeśli nie do końca wiecie, czym jest frontend i backend, przeczytacie o tym tutaj ).

Zaczniemy od jednego z pierwszych pytań, które stawia programista programiście odnośnie aplikacji, czyli „w czym piszecie?”, „w czym ją robicie?”. Tutak pojawiają się rozmaite odpowiedzi: Angular, React, Vue, Spring, Express..

Frontend:

Przygotowując aplikację webową tworzymy jej strukturę, treść strony internetowej. Przygotowujemy ją w html, języku znaczników. Nie jest on nazywany językiem programowania, gdyż odpowiada za tworzenie zaledwie struktury i nie wykonuje żadnych operacji funkcjonalnie. Opisujemy więc, jak będzie ustrukturyzowana nasza aplikacja webowa, ale nie określamy, co będzie robić.

Za wygląd odpowiedzialne są kaskadowe arkusze styli, a więc CSS. To one mówią aplikacji, jak ma się prezentować w różnych przeglądarkach. Dodatkowo potrzebujemy narzędzi, aby określić zachowanie aplikacji i tutaj z pomocą przychodzą nam takie frameworki jak Angular, Vue.js oraz biblioteka React.js.

Angular, React.js, Vue.js

Odnośnie Angulara warto zapamiętać jedno- istnieje bardzo duża różnica pomiędzy Angularem.js a zwykłym Angularem, który nota bene jest jego następcą. Angular.js to wersje Angulara z „jedynką” z przodu (1.x) i są to wersje stosunkowo stare, które zazwyczaj możecie spotkać jeszcze w projektach maintenance’owych, a więc już głównie utrzymywanych, a nie wzbogacanych o nowe funkcjonalności. Nowe wersje Angulara to zupełnie inna bajka i programista znający Angular.js nie będzie automatycznie znał się również na Angularze.

React.js i Vue.js to inne najbardziej popularne alternatywy dla Angulara. Każde z nich ma swoje charakterystyki i zalety, w które w tym artykule nie będziemy się zagłębiać. Co jednak istotne- wszystkie one służą do implementacji zachowania strony.

Słysząc Angular albo React może nie być jednak oczywiste, w czym (w jakim języku programowania) programujemy. Do wyboru mamy tutaj Java Script (skrót: JS) lub Type Script (skrót: TS). Typescript mimo, że jest osobnym językiem można określić jako nakładkę na JS i jest do niego transpilowany (zamieniany na Java Script w procesie transpilacji), zanim zostanie uruchomiony w przeglądarce.

Jeśli chcielibyście zobaczyć, jak na ten moment wygląda popularność wszystkich frameworków Javascriptowych zarówno na frontendzie jak i na backendzie, zajrzyjcie pod stateofjs.

Backend:

Przejdźmy teraz do części backendowej. Jeśli wiesz już czym jest backend, z pewnością rozumiesz, że aplikacja webowa w dużej mierze nie byłaby w stanie funkcjonować bez bazy danych i logiki jej działania. Oczywiście nie mówimy tutaj o statycznej stronie internetowej typu read-only. Jednak i ona gdzieś musi być umieszczona.

Języki programowania i frameworki

Jeśli myślimy o backendzie, to z pewnością warto wiedzieć, w jakich językach programowania ten backend programujemy. Tutaj pojawia nam się między innymi takie języki jak Java, Kotlin, PHP, C#, Python, Java Script. Z każdym z nich kojarzymy inne frameworki.

Jak już wiecie frameworki stanowią szkielet aplikacji i znacząco ułatwiają jej budowę. Jednym z nich jest Spring, a jego ulepszeniem w kontekście aplikacji webowych jest Springboot. W języku programistów powiemy, że Springboot jest instancją Springa zoptymalizowaną pod kątem aplikacji webowych i wymagającą mniejszej ilości konfiguracji. Zarówno jeden jak i drugi jednak to frameworki, w których przez długi czas pisało się tylko w Javie, natomiast od ostatniej wersji (5.x) Spring ma również wsparcie dla Kotlina.

Frameworkiem charakterystycznym dla C# będzie przykładowo Asp.Net, dla języka PHP Laravel lub Symphony. Więcej informacji znajdziecie tutaj.

Zupełnie inna bajka to język Python ze swoją kolekcją farmeworków, z których jednym z bardziej popularnych jest Django.

Java Script? Czyżby nie był to główny bohater frontendu? Co wobec tego robi na backendzie? Otóż JS jest bardzo uniwersalny, możecie spotkać go również na backendzie, wówczas środowiskiem uruchomieniowym dla niego będzie Node.js, a nie przeglądarka (chyba, że headless- zignorujcie, ale musiałam dodać dla merytorycznej poprawności 😉 ). Jednym z popularnych frameworków wykorzystywanych na backendzie dla JS jest Express.js. Oczywiście w użyciu jest wiele innych, mały zarys ich liczby zyskacie spoglądając na ten artykuł.

Wsparcie, dużo wsparcia dla przeglądarek!

Zwróćcie uwagę, że w przeciwieństwie do aplikacji mobilnych, pisząc o aplikacjach webowych nie wspominamy już o systemie operacyjnym. Dlaczego aspekt ten ich nie dotyczy przeczytacie w podsumowaniu podstawowych rodzajów aplikacji. Co jednak istotne, bardzo często przy dyskusjach o wymaganiach projektowych pojawiać się będzie pojęcie wsparcia dla przeglądarek. Wsparcia, a więc obsługi określonych ich wersji.

Nie jest również w większości istotne, na jakim fizycznie sprzęcie użytkownik będzie korzystał z aplikacji webowej. W większości, ponieważ to, co ma znaczenie, to rozmiar ekranu, a co za tym idzie również fakt, czy aplikacja jest responsywna. Nie zastanawiamy się natomiast nad systemem operacyjnym, nie jest istotne, czy będzie to Windows, Linux, Android czy na przykład iOS. Aplikacje webowe żyją w przeglądarce i mało je to obchodzi 😉

One Reply to “W dżungli technologii- z czym kojarzyć poszczególne języki programowania i frameworki? #2 aplikacje webowe”

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.