2017 JS Jak się uczymy JavaScriptu? A raczej czym jest dzisiaj JavaScript. To jest dobre pytanie, ponieważ w ostatnich latach znowu dużo się zmieniło i, mimo iż staram się śledzić nowinki mam wrażenie, że zaspałem jakieś 2 lata.

Jak się okazuje 2 lata to bardzo dużo w tej branży i jak się okazuje, znam na tyle dobrze JavaScript, by wykonywać swoją pracę, ale czy znam na tyle dobrze JavaScript, aby nie zgubić się w dzisiejszym świecie. Nie jestem futurystą (nie mam tego demona), ale co robić, gdy przyszłość zlewa się z teraźniejszością bez przerwy w świecie programowania w JavaScript.

Programuję w C# i strony internetowe nie są moją główną działką, ale jestem w szoku z faktem co się obecnie dzieje.

Zadaję sobie pytanie czy ty jesteś web developer na czasie. Ja piszę ten wpis w  grudniu w roku 2016, ale dla JavaScriptu technicznie jest już 2017. Szkoda, że to nie może biec jeszcze szybciej.

Czym jest dokładnie web developer dzisiaj? Kim jest dzisiaj programista front-end? Czy jesteś jakimś programistą widmo?

Programista front-end w teorii dzisiaj robi:

  • Wizualizacje
  • Buduje strony internetowe
  • Przy użyciu Node.js robi logikę serwerową
  • Pyta bazę danych o określone tabele
  • Tworzy listę operacji na plikach w systemach operacyjnych
  • Tworzy gry…, jak chcesz możesz pograć w piłkę nożną i w Doom w JavaScript
  • Tworzy odtwarzacze muzyczne
  • Tworzy animacje
  • Komunikuje się z robotem
  • …a nawet nie z kawałkiem plastiku, którego nazywamy robotem tylko latającym dronem, ponieważ dlaczego kur*** nie.

Czy tym teraz zajmują się programiści JavaScript? Ja chcę tylko stworzyć stronę internetową, która wyświetla dane dla użytkownika w postaci jakiejś tabeli HTML.

Tylko tyle - myślałem, że programista front-end robi trochę więcej.

Zaraz wam pokaże jak się robi strony interentowe

Jak więc to robimy.

Gdyby był rok 2012

W roku 2012 ściągnąłbyś bibliotekę jQuery. Za jej pomocą odpaliłbyś zapytanie HTTP do serwera, wciągnął dane w formacie JSON i potem w pętli umieścił dane w tabelce.

Gdybyś chciał jakieś super animacje i efekty przejścia, wtedy ściągnąłbyś jakieś pluginy i metodą prób i błędów stworzyłbyś swoją piękną stronę internetową.

To było akceptowalne i nikt wtedy na to nie narzekał. Oczywiście jednak teraz żyjemy w roku 2017 i już jQuery się nie używa.

Czego więc używamy? AngularJS?

AngularJS rzeczywiście wprowadził wiele ciekawych zmian. Mamy przecież tam wzorzec MVC i wszystko jest ładnie wydzielone i niezależne od siebie. AngularJS w wersji 1.X.X to dobra biblioteka, stworzona przez ludzi w Google. Nawet nie wiem po co stworzyli następna wersję. Zaraz, no tak mamy teraz dwie różne biblioteki, to, z której mam skorzystać?

Przy okazji czy powinienem tworzyć strony w czystym JavaScript? Czy może w pośredniczącym kompilatorze, który mi wypluje JavaScript jak np. TypeScript? JavaScript nie jest w końcu przyjaznym językiem? Czy to jednak jest dobry pomysł?

Te pytania nie mają znaczenia, bo mamy rok 2017, a nie rok 2015. W czym więc teraz dzieciaki programują? Słyszałem coś o React.js.

Co ty piszesz strony internetowe w HTML? To dobre dla dzieci.

Jeśli o tym nie słyszałeś, to znaczy, że przespałeś rok 2016. Idziemy więc z tym React.js? Czym on jest? Zapytajmy się kolesia, który pisze szarym tekstem.

Gdy przyszłość rozmawia

==>
React.js to super, fajowa biblioteka stworzona przez kolesi od Facebook. Daje ona ci kontrolę i wydajność w twojej aplikacji. Zarządzasz każdym widokiem bez problemu dzięki niej.

Zacznijmy więc pracę.

==>
Musisz najpierw ściągnąć React i ReactDOM.

Zaraz po co mi aż dwie biblioteki.

==>
Jedna biblioteka manipuluje stroną, tylko ta strona jest opisana w JSX.

JSX? Co to jest do cholery? Po co to powstało?

==>
JSX jest rozszerzeniem składni JavaScript. Wygląda jak XML. Jest to inny sposób opisania struktury strony internetowej. Jest to lepsze niż HTML. Pamiętaj mamy rok 2017 nikt już nie tworzy stron HTML? HTML zabawka dla gimnazjalistów.


Mam więc te dwie biblioteki, ale nic mi jeszcze nie działa. O czym zapomniałem?

==>
Musisz jeszcze dodać bibliotekę Babel aby używać React-a. Normalnie nie musisz tego robić, ale to twoja wina, że piszesz strony EcmaScript 5, a nie w dalszej wersji EcmaScript 2016+.

EcmaScript 2016+ co jest? Dlaczego nie korzystamy z wersji EcmaScript 6? Skoro już wybiegamy w przyszłość.

==>
Używając innej wersji nie możesz skorzystać z funkcjonalności async i await. Nikt już nie pisze bloków kodu, aby to ogarniać. Jest rok 2017.

Dobra. Potrzebuje więc dwie biblioteki, aby wyświetlić tabelę. Jak mogę je ściągnąć. Z jakiej strony internetowej?

==>
Ściągasz biblioteki ze strony internetowej. Słuchaj najpierw instalujesz NPM, a potem system paczek Bower. Visual Studio 2015 ma to wbudowane, więc wiem, że się nie zgubisz.

Dobra zobaczę jakiś tutorial i dodam tę paczkę do projektu. Boje się, aż zapytać po co mi do tego NPM. Całe szczęście zainstalowało mi się to z Visual Studio.

Nadal wydaje mi się to zbyt skompilowane, aby pobrać jakąś bibliotekę.

==>
Dlatego potrzebujesz menadżera zadań jak Grunt lub Gulp tak aby zautomatyzować swoją pracę z Browserify. Możesz skorzystać także Broccoli i Mimosa, ale słyszałem, że Visual Studio wspiera Grunt i Gulpa więc trzymaj się tych rozwiązań.


==>
Swoją drogą menadżery zadań były dobre w 2015 teraz wszyscy powoli korzystają z Webpack.

Zaraz, to czym jest  Webpack?

==>
Ktoś wpadł na pomysł aby scalić menadżer zadań i systemem paczek. W pewnym sensie jest to lepsza wersja Browserify.

Mam nadzieje, że to koniec. Stwórzmy tę stronę internetową. Paczki, zadania przed kompilacyjne, Babele, TypeScripty…, dobra jakoś to ogarnę przeczytam sobie mnóstwo tutoriali jak mam to zrobić.

==>
W sumie zapomniałem ci powiedzieć, że react.js pomoże ci z wyświetlaniem danych, ale do pobrania danych potrzebujesz czegoś innego. Przykładowo biblioteka Request,BlueBird albo Axios powinna ci pomóc z tym. One mają wbudowane funkcje async i await oparte na obietnicach.

 

Pamiętasz to są te odlotowe funkcjonalności z EcmaScript2016+. Chcesz przecież wysłać zapytania HTTP 2.0 mamy rok 2017.


Zaraz skąd nagle wzięło się tyle tych bibliotek. Te nazwy mi nic nie mówią. Ja chcę tylko stworzyć stronę internatową, która wyświetli mi tabelkę. Wiesz co walę to, ściągam jQuery ze STRONY INTERNETOWEJ.

Ta część wpisu została zainspirowana tym wpisem i tym (jest przyszłość)

Czy JavaScript powędruje jeszcze dalej

Być może granice zostały już przekroczone. JavaScript nigdy nie był wybitnym językiem do programowania, tymczasem jest on wciskany wszędzie. Coś poszło moim zdaniem nie tak w momencie, gdy powstał Node.JS i od tej pory można było tworzyć logikę serwerową i nie tylko w kodzie JavaScript.

Potem ktoś to zaczął rozszerzać do granic absurdu. 

Ten pociąg nigdy się nie zatrzyma. Swoją drogą ludzie od Angulara 2.0 właśnie ogłosili, że pominą wersję 3.0 i następna wersja będzie 4.0.

Angular 4

Jaki to ma sens. No cóż z marketingowego punktu widzenia czasem łatwo coś wcisnąć ludziom - technologię gdy ma wyższy numer.

Jednym słowem w środowisku JavaScript jest burdel. Nie ma żadnej gwarancji, czy nowy trend nie umrze za 4 miesiące. Osobiście mnie to trochę martwi, ponieważ przegapiłem rok 2016 i w ogóle nie mam pojęcia co się dzieje.

Początkujący programiści też nie mają łatwo. W końcu jak dzisiaj tworzy się strony internetowe i przy pomocy czego.

Ja w 2010 roku mając do dyspozycji HTML, ASP.NET, C#, CSS i JavaScript czułem się już zagubiony faktem jak mam zacząć swój szkolny projekt. Jeśli więc zaczynasz swoją przygodę jako twórca stron internetowych zacznij od czegoś prostego