POIT #028: Trendy w IT na rok 2019

Witam w dwudziestym ósmym odcinku podcastu „Porozmawiajmy o IT”. Tematem dzisiejszej rozmowy są trendy w IT na rok 2019.

Dzisiejszy odcinek jest wyjątkowy. Spotkaliśmy się z Adrianem z podcastu Dev:Cast by porozmawiać o trendach, które według nas zdominują IT w tym roku.

Rozmawialiśmy o:

  • Cloud Native
  • Progressive Web Apps
  • Internet of Things
  • wzmocnieniu znaczenia takich języków programowania jak JavaScript czy Python
  • technologiach głosowych
  • sztucznej inteligencji
  • big data
  • web APIs


Subskrypcja podcastu:

Linki:

Pozostańmy w kontakcie:

Transkrypcja podcastu

Krzysztof: Cześć! Witają Was Krzysztof z podcastu Porozmawiajmy o IT.

Adrian: Oraz Adrian z podcastu Dev:cast.

Krzysztof: Dzisiaj w bardzo nietypowych składach dla naszych podcastów, ale postanowiliśmy się spotkać, żeby porozmawiać o temacie trendów, które według nas będą wiodącymi w roku 2019. Rok 2019 wystartował już z pełnego kopyta. Pełno jest jakichś podsumowań, pełno jest prognoz. My też postanowiliśmy według nas wskazać te technologie, które będą widoczne, które będą się umacniały jeszcze w tym roku 2019. No i właśnie Adrian, od czego zaczniemy?

Adrian: Dobra, to od czego ja bym zaczął? Zacząłbym od takiego pojęcia, jak cloud native, czyli podejścia do wytwarzania oprogramowania w koncepcie wykorzystywania zalety architektury właśnie cloud computingu. Jakich zalet? No takich zalet chociażby, skalowalności, ale z uwzględnieniem faktu, że nie uzależniamy się od jednego dostawcy usługi chmurowej. Cloud native bazuje na takich czterech konceptach. Koncepcie devopsów, conitnous delivery, mikroserwisów i konteneryzacji. Aplikacje, które działają właśnie w modelu cloud native, przede wszystkim muszą być statelessowe, czyli mikroserwisy, które możemy łatwo, szybko postawić, nie trzymają stanu wewnętrznego, możemy szybko je ubić i tak naprawdę nasza aplikacja, czy cały ekosystem naszego systemu, działa bez zarzutów. Ten stan aplikacji jest utrzymywany na zupełnie innym poziomie. Jakie zalety widzimy w takim rozwiązaniu i dlaczego warto w to rozwiązanie tak naprawdę podążać? Zalety są takie, że my skupiamy się na tworzeniu aplikacji jako programiści, nie skupiamy się na tym, żeby przy najbliższym migrowaniu na innego dostawcę usług chmurowych, czy na migrację gdziekolwiek, do jakiegoś innego centra danych, nie skupiamy się na migracji danych, te dane powinny być wyodrębnione w zupełnie inne zasoby, które tak naprawdę możemy przenieść w inny sposób, a nasze aplikacje możemy przenieść w innym miejscu. Dlaczego widzę w tym potencjał? Głównie bazując też na doświadczeniu innych, bardziej doświadczonych osób w naszej branży, w listopadzie 2018 roku opublikowany został technology radar firmy Thoughtworks, gdzie dostrzegają, że ten vender lock, na poziomie dostawcy usług chmurowych jest problemem, dlatego firmy podążają w takim kierunku, żeby zapewnić teraz abstrakcję nad tymi usługami, czasem taką bardzo siermiężną, żeby tylko i wyłącznie odciąć się od tych bezpośrednich usług chmurowych, a co najwyżej korzystać tylko z tych części wspólnych w chmurze. Jakie jest zalecenie firmy Thoughtworks w kwestii takiego podejścia? To to jest ta strategia multicloudu, separacji czy odcinania się od tych usług na rzecz konteneryzacji i rozwiązań open source. Takich rozwiązań jak systemy do zarządzania monitoringiem, zbierania zdarzeń, logów z uruchomionych aplikacji, ale też idąc dalej w kierunku kubernetesa, który tak naprawdę zaczyna nam zarządzać tą infrastrukturą, to on odpowiada za to, żeby odpowiednie aplikacje nam działały. My kodzimy, my tworzymy aplikacje, które rozwiązują problem biznesowy, a co raz mniej zaczynamy się martwić o uruchomienie tego w kontekście infrastruktury.

Krzysztof: Widzę tutaj sporo takich zalet, które wymieniłeś, właśnie unikanie vendor locka, dla programisty z kolei nie myślenie o tym, w jaki sposób zostanie zdeployowana ta aplikacja, to też jest plus, ale nie ma takiego rozwiązania idealnego w przyrodzie i nie wszystko złoto, co się świeci, dlatego zastanawiam się, jakie wady tutaj widzisz? Mi np.  przyszło do głowy coś takiego, że skoro chcemy mieć jakąś abstrakcję, chcemy tworzyć oprogramowanie, które w teorii miało być uruchamiane w różnych chmurach, u różnych dostawców tych usług, to siłą rzeczy nie korzystamy z jakichś specyficznych dla danej chmury rozwiązań, które w jakimś tam zakresie mogą nam dawać pewne przewagi, czy myślisz, że to jest jakiś minus, o którym możemy rozmawiać?

Adrian: Wiesz, co wydaje mi się, że to też zależy od kontekstu i od tego w jakim kierunku zmierza nasza organizacja, bo jeżeli faktycznie jesteśmy organizacją, która bardzo mocno bazuje na technologiach, powiedzmy Microsoft i wykorzystuje w swoim ekosystemie aplikacje oparte o framework dotnetowy, to siłą rzeczy, wykorzystanie Azura i specyficznych usług ażurowych, które wspierają tak naprawdę rozwiązywanie problemów, to rozważanie cloud native, wydaje mi się troszkę takie bezpodstawne, albo może nawet niebezpodstawne, ale zaciera się ta granica, kiedy faktycznie możemy zacząć wykorzystywać tutaj te pozytywne aspekty. Patrząc na cały gdzieś taki ekosystem programistyczny, to troszkę właśnie ten Microsoft nas tak uzależnia od samego początku, kiedy zaczynamy wybierać ich technologię dostarczając nam specyficzną bazę danych, dostarczając nam specyficzny cloud, który ma właśnie dedykowane rzeczy pod konkretne rozwiązania. Z drugiej strony popatrz na to tak, że staramy się wykorzystywać te rzeczy open sourcowe. Dużo rzeczy, które powstaje jest opublikowana jako ta aplikacja o otwartym kodzie i tak naprawdę, cała ta idea cloud native’u bazuje na tym, że otwieramy kod, pokazujemy, że coś można modyfikować , coś można wziąć, uruchomić bezpośrednio w kontenerze i niech to sobie żyje swoim specyficznym życiem. Tu głównie rozchodzi się o to, żeby zapewnić właśnie tą infrastrukturę, te wszystkie aspekty infrastruktury, które daje nam chmura. Niekoniecznie usługi, które się pojawiają, choć w momencie kiedy myślimy o storage, myślimy o przechowywaniu jakichś plików, przechowywaniu jakichś informacji, to co stoi na przeszkodzie, żebyśmy potraktowali dostęp do tej specyficznej usługi za pomocą np. jakiegoś mikro serwisu, który dzięki jakimś adapterom, w ogóle mikro serwis jest specyficznym adapterem na konkretną usługę.

Krzysztof: Jestem ciekaw, jak ci duzi gracze, najwięksi dostawcy usług chmurowych, czy oni w ogóle będą sabotować te podejścia, bo powiedzmy w jakiś sposób może to uderzać w ich interesy, jestem ciekaw czy może już teraz coś takiego się dzieje, że niezbyt przychylnym okiem patrzą na takie działania?

Adrian: Wiesz co, czy nieprzychylnym okiem? Na pewno konkurencja dużych graczy, którzy serwują nam tutaj właśnie tą chmurę, patrzy na siebie chyba tak troszkę złowrogo. Patrząc na przychody Amazonu, za usługi AWS’owe, to są już miliardy teraz. Zauważ, że ażur tak naprawdę można powiedzieć, że tak troszkę goni AWS’a w pewnych kwestiach, ale też sama firma Microsoft dostrzega ogromny potencjał w sprzedaży właśnie takich usług, usług chmurowych, co też jak popatrzysz na model biznesowy całej tej firmy, to on się zmienił w przeciągu ostatnich lat, czyli firma, która bazowała na swoich produktach w postaci systemu operacyjnego, całego pakietu Office, tak naprawdę bardzo mocno skupia się na tych rozwiązaniach chmurowych, więc ja myślę, że tu konkurencja na pewno, być może nawet jakaś zawiść, może podglądanie pewnych rozwiązań, szukanie potem w nich jakichś usprawnień, to na 100% będzie miało miejsce.

Krzysztof: Jestem ciekaw, w którym kierunku to pójdzie. Z pewnością będzie to rosnący trend w 2019. Myślę sobie, że też taka konsekwencja tego trendu, to zwiększone zapotrzebowanie na devopsów, bo tutaj niebagatelne będzie właśnie ich znaczenie na podstawie powstawania oprogramowania.

Adrian: Krzysztofie, twoim zdaniem, kolejny temat, na który warto zwrócić uwagę, to?

Krzysztof: To z pewnością Progressive Web Apps. PWA, to jest taki trend, który już gdzieś tam w 2018 mocno wystartował, a myślę, że w 2019 jeszcze bardziej się pokaże, jeszcze bardziej zaznaczy swoją pozycję. Tylko krótko, czym są właściwe Progressive Web Apps? Są to aplikacje webowe, które mają symulować aplikacje natywne. Gdzieś tam około roku 2005, przeszliśmy od takich statycznych stron html’owych do takich bardziej generowanych dynamicznie za pomocą takich języków jak PHP czy ASP NET i później taki etap rozwoju aplikacji webowych, to jest zwiększenie znaczenia HTML, CSS, Java Scriptu poprzez zwiększenie możliwości, jakie dawały te rozwiązania dla użytkownika końcowego, ale gdzieś koło roku 2010, zwłaszcza pod wpływem pojawienia się iPhone’a, na znaczeniu zyskały aplikacje natywne, które dawały lepszy user experience, które dawały dostęp do takich urządzeń jakichś, które naturalnie były w telefonach widoczne, typu aparat, typu jakiś GPS itd., coś, co nie było możliwe do uzyskania w przeglądarkach. Progressive Web Apps, to jest trend, który ma za zadanie symulację aplikacji natywnej w aplikacjach webowych. Tak naprawdę, nie jest to jakaś szczególna technologia, czy jakiś język programowania, framework, raczej jest to zestaw pewnych dobrych praktyk, które aplikacja webowa powinna spełniać, aby mogła być zakwalifikowana jako Progressive Web Apps. Ten termin, został ukuty gdzieś około roku 2015 w Google. Google tak naprawdę żyje z sieci, żyje z wyszukiwarki, żyje z analitycs tego typu narzędzi, więc naturalnie w ich interesie leży, żeby zwiększać ruch właśnie webowy, a nie ten, który pochodzi z aplikacji natywnych, aplikacji mobilnych. Stąd może właśnie rozwój Progressive Web Apps zapoczątkowany właśnie w Google. To progressive pochodzi od działania aplikacji niezależnie od browsera, niezależnie od przeglądarki. Teoretycznie w każdej przeglądarce powinna być taka aplikacja możliwa do uruchomienia, a tak ściślej jeszcze mówiąc, to progressive, to jest sposób ładowania tej aplikacji, gdzie najpierw ładuje się jakiś taki core, to może być nawet element, który jest w cashu przeglądarki, żeby przyspieszyć działania, a później doładowywane są progresywnie inne elementy, jakiś kontent mniej znaczący itd. W związku z tym, moglibyśmy spojrzeć jako na takie regularne aplikacje webowe, które mają za zadanie polepszyć user experience poprzez symulowanie, poprzez dostęp do pewnych rozwiązań wcześniej dostępnych dla aplikacji webowych. Taki istotny element aplikacji PWA, to jest działanie offline, czyli teoretycznie, jeśli nawet nie mamy dostępu do internetu, to w jakiś  sposób powinna ta aplikacja działać i to oczywiście może być bardzo szerokie spektrum, bo to może być coś takiego, że nadal działamy z tą aplikacją, ale wszystkie dane tak naprawdę nie są wysyłane do serwera celowego, ale gdzieś tam składowane w powiedzmy jakimś tymczasowym storage’u i wysyłane dopiero, gdy ta łączność zostanie nawiązana, to jest jakby z jednej strony i to by było najbardziej pożądane zachowanie, a z drugiej strony, może być to jakaś taka osobna strona, która jest odpalana w momencie, kiedy nie ma dostępu do internetu, która właśnie nam mówi, że niestety aplikacja nie może dalej działać. Istotne cechy Progressive Web Apps, to jest właśnie szybkie działanie poprzez mocne wykorzystanie cache’a, to jest symulowanie takiego user experience, które użytkownik może mieć korzystając z aplikacji mobilnych , np. poprzez różnego typu push notifications. I tutaj, kolejny element, to jest działanie właśnie offline, możliwość działania offline, przynajmniej częściowego. Google stworzyło taką listę cech, które powinny te aplikacje spełniać, aby mogły być zakwalifikowane jako aplikacje progresywne, ale przy czym należy tutaj powiedzieć, że to nie jest w żaden sposób jakiś standard przemysłowy czy coś takiego, to są jakieś wytyczne stworzone, spisane w Google, i te wytyczne wyglądają mniej więcej tak, taka aplikacja powinna posiadać pewien swój manifest, czyli de facto od strony takiej technologicznej po prostu plik Jason, który wskazuje na ikonę takiej aplikacji, nazwę, jakiś url, od którego aplikacja rozpoczyna swoje działanie, kilka takich niezbędnych metadanych opisujących aplikację. Kolejna cecha, to jest korzystanie z tzw. serwis workerów. To są pewnego rodzaju małe fragmenty kodu, które działają niezależnie od aplikacji, mogą nawet działać w momencie, kiedy nie ma dostępu do internetu, przykładem może być np. obsługa push notifications, czyli coś, co sobie działa w background, co nie koniecznie jest bezpośrednio, ściśle związane z tym, co użytkownik widzi, natomiast jest integralną częścią. Kolejna taka cecha, to jest posiadanie ikony i po prostu serwowanie, czy też współpraca z serwerem poprzez https. Dodatkowo powiedzmy jest jeszcze szereg takich pomniejszych wymagań typu bycie aplikacją responsywną, czyli taką, która może działać i na tabletach, i na telefonach, i na desktopie, właśnie tak jak mówiłem https, możliwość zainstalowania, o tym jeszcze za chwilę powiem, bo to jest bardzo ciekawy aspekt, oraz bycie aplikacją tzw. fresh, czyli ta aplikacja, którą instalujemy, PWA, może sama siebie zupdateować, czyli to jest kolejny taki fragment, czy kolejna cecha, która ma zbliżać ten experience aplikacji webowej do aplikacji takiej natywnej, jaką znamy z platform mobilnych. Od strony takiej technologicznej, jak sobie spojrzymy na PWA, to tak jak mówiłem, to są zwyczajne aplikacje webowe, mocno korzystające z HTML, z Java Scriptu, zwłaszcza z CSS i z takich technologii, które całkiem niedawno dopiero pojawiły się w nowoczesnych przeglądarkach, typu web assembly, czyli możliwość wykonywania, czy możliwość dołączania do aplikacji takiego wstępnie prekompilowanego kodu, który powiedzmy zwiększa wydajność wykorzystania. Kolejna rzecz, to jest korzystanie z indeks database, czyli takiej nowej, sql’owej bazy danych, która jest wbudowana w większość nowoczesnych przeglądarek . Local storage, czy session storage, to są takie key value storage, które mówi się, że mogą zastąpić cookies. I ten aspekt progresywności, czyli taka architektura, może za dużo powiedziane, że architektura, ale takie podejście application shell architecture, oznacza to, że jest pewien taki shell, taki core, zupełnie podstawowy interfejs, który jest ładowany na początku, a reszta jest dopiero później gdzieś tam doładowywana, w zależności od tego, jak szybkie jest łącze, jakie mamy zasoby itd. Tutaj właśnie Google dosyć mocno w te technologie inwestuje, więc skoro taki gigant jest tutaj widoczny, to myślę, że będziemy widzieć rozwój tej technologii w najbliższym czasie zwłaszcza postępujący. Istotny taki aspekt, może nie technologiczny, ale związany z naszą branżą, dotyczy kosztu, bo koszt wytworzenia takiej aplikacji PWA działającej w webie jest znacznie niższy, niż stworzenia takiej dedykowanej aplikacji natywnej, oczywiście możemy dywagować czy upowszechnienie się PWA jest jakimś zagrożeniem dla developerów mobilnych, pewnie nie, natomiast ten aspekt kosztowy może jakoś tutaj zmienić pewne proporcje na rynku. Dodam też, że Microsoft mocno inwestuje w PWA, do tego stopnia, że w Microsoft Store, o ile nie już, to niedługo pojawią się właśnie takie aplikacje PWA możliwe do zainstalowania, że będzie to po prostu obok klasycznych aplikacji, będą też funkcjonowały aplikacje PWA, które Microsoft ma zamiar wyszukiwać poprzez jakieś tam swoje boty, można powiedzieć, że obecnie już sporo takich aplikacji jest dostępnych, bo swoje aplikacje PWA posiada Instagram, Twitter, Uber, Starbucks i mnóstwo innych znanych serwisów, większość przeglądarek tych nowoczesnych, łącznie z Microsoft Edge już to wspiera. Powiedziałbym, że  jeszcze może taką ostatnią może rzeczą, o którą warto tutaj zahaczyć jest wszelkiej maści appstores, czyli wszelkiego typu sklepu, gdzie możemy sobie kupować aplikacje. W momencie, kiedy PWA upowszechniał się na tyle, że big trend będzie na tyle rosnący, że co raz częściej będziemy je instalować zamiast natywnych aplikacji, to takie klasyczne firmy, czy klasyczne sklepy, w których kupujemy aplikacje, będą musiały troszeczkę inaczej do nich podejść, również w kontekście rozliczeń, np. w tej chwili w appstore IOS’owym, Apple, 30% kosztów idzie do Apple, natomiast w przypadku właśnie takich aplikacji PWA, które są de facto aplikacjami webowymi, czyli można się do nich dostać przez url, ciężko mi sobie wyobrazić, jak Apple miałby uzasadnić np. tutaj ten zysk dla siebie czy te profity dla siebie, to dosyć ciekawa sprawa, którą się rozwinie. Na początku jeszcze wspomniałem, że powiem coś o tej instalowalności tych aplikacji. Polega to na tym, że możemy tak de facto na urządzeniu mobilnym taką aplikację zainstalować, będzie ona działać czy też będzie widoczna jako ikona, a tak de facto, pod spodem to będzie pewna bardzo ograniczona przeglądarka, która otwiera nam ten url wskazany w manifeście i w ten sposób rozpoczyna aplikację. Także wiele tutaj aspektów, nie tylko technicznych, poruszyłem, skoro tak duże firmy jak Microsoft, Google i Apple interesują się tym trendem, to wydaje mi się, że jeszcze nie raz o nim usłyszymy.

Adrian: Ja myślę, że wręcz bardzo szczegółowo omówiłeś ten temat. Ja mam natomiast do ciebie takie pytanie, kiedy rozważałbyś właśnie tworzenia aplikacji jako takiego PWA, a kiedy zaczął zwracać się w kierunku tych cross platformowych frameworków, typu React Native, gdzie też tak naprawdę operujemy Java Scriptem, operujemy HTML, CSS’em? Czy jest jakaś taka granica, czy eurystyka, która pozwala nam określić, kiedy dany typ aplikacji, może są konkretne typy aplikacji, które sprawdzają się w takim, albo w drugim przypadku?

Krzysztof: Myślę, że tutaj są takie dwa aspekty, które warto wziąć pod uwagę dokonując takiego wyboru. Pierwszy, to jest koszt i czas. Tak jak powiedziałem, posiadając np. już developerów na pokładzie, którzy tworzą aplikacje z wykorzystaniem Java Scriptu, w bardzo prosty sposób można, czy  w krótkim czasie można taką aplikację stworzyć PWA, bez zatrudniania dodatkowych developerów mobilnych i bez, tak naprawdę, projektowania tej aplikacji, bo to nie jest tak, że posiadając aplikację webową tworzymy jeden do jeden aplikację mobilną, także jest ten efekt kosztu i czasu, który może mieć znaczenie w przypadku startupów, firm, które chcą z tym pomysłem wyjść, w prosty sposób nisko kosztowy sprawdzić na rynku, czy coś z ich pomysłów może się przyjąć i później ewentualnie idąc dalej rozwijać to o bardziej takie natywne rozwiązania, które oczywiście dają więcej możliwości, ale też pociągają dłuższy czas developmentu, czy też większe koszty itd. Także, jedna sprawa to jest ten koszt i czas wykonania, a druga kwestia, to jest to, jakie możliwości daje nam ta technologia, bo tak jak powiedziałem, posiadając taką aplikację PWA, możemy ją w prosty sposób zainstalować i może ona działać nawet w sposób taki niezależny od sieci, niezależny od stanu sieci, więc być może jest to jakaś alternatywa dla tych firm, które w przypadku działania takiego offlinowego, chciałyby dać cokolwiek swoim użytkownikom, chociażby informacje jak mogą skontaktować się z supportem, czy gdzie mogą poszukać pomocy, więc to może być lepsze niż strona internetowa, która w przypadku braku sieci po prostu się nie załaduje. Także myślę, że to są takie dwa najważniejsze tematy tutaj.

Adrian: Ja bym jeszcze dorzucił do takich aspektów pozytywnych właśnie wytwarzania PWA, to na pewno to, że takie aplikacje, po prostu są indeksowane przez Google, więc pojawiają się w wynikach wyszukiwania w bardzo fajny i przystępny sposób, czyli jeżeli w naszej aplikacji zawrzemy jakiś dodatkowy kontent, który się wyświetla użytkownikowi, to ten kontent będzie też zaindeksowany. To tak w kontekście takich biznesowych aspektów, gdzie tworząc aplikację mobilną, to my nie zaindeksujemy tego, co się w niej tak naprawdę znajduje, a może faktycznie będą tam ważne treści, które warto po prostu pozycjonować, bezpośrednio łącząc z aplikacją.

Krzysztof: Tak jest, dlatego pewnie Google jest mocno zainteresowany właśnie rozwojem tych technologii, bo to jest core ich biznesu tak de facto indeksowanie po prostu stron.

Adrian: Tak, wyobraź sobie, że w tym momencie łamiesz tą barierę między aplikacją mobilną, która jest zamkniętą paczką zainstalowaną na jakimś telefonie i, żeby zbierać informacje na temat zachowania użytkownika, to co trzeba zrobić? Trzeba znowu w tej aplikacji zrobić jakiś system zbierania kliknięć, przesuwania, żeby wiedzieć, co ten użytkownik de facto w tej aplikacji klika. A teraz idąc w kierunku PWA i wrzucenia tak naprawdę zwykłego kodu Google Analytics, jesteśmy w stanie przeanalizować wszystko, co użytkownik robi w tej aplikacji. Możemy ustawiać sobie cele na konwersje, przeglądać faktycznie jakiś lejek sprzedażowy, czy patrzeć pod kątem reklam, czy nasze reklamy de facto wpływają na odbiór naszej aplikacji, czy faktycznie gdzieś tam zakup jakiegoś produktu przez tą aplikację PWA jest finalizowany.

Krzysztof: Myślę, że jeszcze nie raz usłyszymy o tej technologii. A co dalej Adrian? Jakie trendy jeszcze widzisz na 2019?

Adrian: Przy tym temacie PWA, poruszyłeś dużo tematów związanych z przeglądarką. Z przeglądarką i z API, które pojawia się w przeglądarce. Ja bym chciał nawiązać do takiego tematu właśnie, tematu API dostępnego w przeglądarkach, czyli tego, co zaczęło się pojawiać w momencie, kiedy pojawił się HTML 5 i zaczęliśmy dostawać dostępy do różnego rodzaju nowych interfejsów. Wspomniałeś o local storage, pojawia się gdzieś tam session storage, pojawiają się obiekty audio, czy obiekty, które umożliwiają nam czytanie tekstu za pomocą API, które jest dostępne poziomie przeglądarki natywnie, nie potrzebujemy dociągania kolejnych bibliotek gdzieś tam z jakiegoś repozytorium, po prostu dostajemy interfejs, dzięki któremu możemy przeczytać tekst, który podamy i ja bym chciał zacząć od tego, że kiedyś naszym środowiskiem uruchomieniowym aplikacji był tak naprawdę system operacyjny. Ściągaliśmy jakiegoś Excela, instalowaliśmy oprogramowanie, korzystaliśmy z niego w taki sposób natywny na desktopie, tak samo jak w przypadku tych aplikacji mobilnych i to, co zaczynam dostrzegać od dłuższego czasu, myślę, że większość naszych słuchaczy też to widzi, że dążymy w tym trendzie do tego, że wszystkie aplikacje, z których korzysta na co dzień użytkownik, stają się aplikacjami dostępnymi przez przeglądarkę. Rozwiązanie saasowe, czy model saasowy, który tak naprawdę sprzyja rozwojowi właśnie tego typu oprogramowania. Dzisiaj, żeby zedytować video, zedytowąć fotografię, nie potrzebuję zainstalować specjalnego programu dedykowanego na moim systemie operacyjnym. Tak naprawdę, mogę skorzystać z dowolnego edytora online i dzieje się to naprawdę szybko i nie muszę nic kombinować, więc taki trend który zmierza, to trend tego, że my chyba za niedługo będziemy mieć wszystko w przeglądarce. Nie wiem, czy się z tym zgodzisz, ale jak popatrzę na listę moich zainstalowanych aplikacji, to mam ich co raz mniej. Za każdym razem jak formatuję jakiś tam komputer, albo po prostu zmieniam te komputery, to tych aplikacji mam naprawdę dużo, dużo mniej, a podstawową aplikacją, którą instaluję, jest jedna ze słusznych przeglądarek, wybierz sobie dowolną, ale tak naprawdę, to jest przeglądarka, bo to jest okno gdzieś tam na świat, na całą resztę, której potrzebuję do pracy.

Krzysztof: Dokładnie, myślę, że tutaj spotykają się trzy rzeczy. Po pierwsze, tak jak powiedziałeś, co raz więcej fajnego oprogramowania jest dostępnego w modelu saas, możemy sobie wykupić nawet taki dostęp, który nie kosztuje nas zbyt dużo, a nie płacić jednorazowo bardzo dużą cenę za markowe oprogramowanie. Z drugiej strony, te przeglądarki są co raz mocniejsze, co raz więcej pozwalają użytkownikom i developerom, a z trzeciej jeszcze strony, co raz więcej takich technologii, o których wcześniej tutaj powiedzieliśmy, powstaje, co jeszcze bardziej napędza to koło, więc tak wydaje mi się, że ten trend będzie się zdecydowanie umacniał i przeglądarki będą jeszcze stawały się silniejsze i co raz więcej oprogramowania właśnie w takim modelu będzie działało.

Adrian: Żeby nie być też tutaj takim goło słownym, to chciałbym się skupić na wymienieniu kilku takich interfejsów, które w całkiem niedawnym czasie zostały dołączone do naszych przeglądarek, a zaczynamy wykorzystywać ich potencjał. Wspomniałeś o Web Asambli, przybliżyłeś tak naprawdę te rozwiązanie, czy ten język programowania, który jest finalnie kodem Java Scriptowym, ale to, co chciałbym dodać od siebie, to cały koncept tych push api i notification api, czyli tych notyfikacji, które dostajemy bardzo często ze wszelakiego rodzaju serwisów. Pojawia się koncept nawet sterowania przez przeglądarkę urządzeń, które się połączą po blue tooth do naszego komputera. To jest w ogóle też świetne. Miałem okazję bawić się takim dronem, on chyba nazywał się Carbon. I dlaczego o nim wspominam? Dlatego, że można go było obsługiwać właśnie za pomocą przeglądarki i natywnego API, które w tą przeglądarkę jest wbudowane, czyli mieliśmy komunikację na poziomie protokołu bluetooth, wysyłaliśmy odpowiednie komendy, polecenia i ten dron zaczynał np. startować, mógł przelecieć na wprost, obrócić się, wylądować i to wszystko działo się po prostu dzięki temu, że zakodziliśmy sobie coś w Java Script, który był natywnie po prostu uruchomiony w przeglądarce. To była rewelacyjna zabawa. Taka for fun. Podpatrzyłem to na konferencje Front Trends, chyba w 2017 roku, wtedy to było coś, co tak naprawdę dopiero wchodziło. Ja widzę, że to API też od tamtego czasu troszkę ewoluowało i to jest bardzo fajne. Co jeszcze chciałbym dorzucić? To to, że nad tymi wszystkimi specyfikacjami, czuwa gdzieś tam organizacja, która sprawia, że specyfikujemy jakieś konkretne API, jakieś konkretne rozwiązanie i ono jest potem sukcesywnie implementowane w identyczny sposób w różnych przeglądarkach i takim standardem, który całkiem niedawno tak naprawdę zobaczyłem, że powstaje, bo to też jest coś, co jest w fazie tak naprawdę jeszcze takiej koncepcji, rozwiązania i próby standaryzacji, to jest standard web of things, WOT. Na czym to polega? Polega na tym, że w świecie IOT, mamy wiele różnych urządzeń, mamy wielu różnych dostawców tych urządzeń i każdy z nich próbuje zaimplementować jakiś sposób komunikacji z tym swoim urządzeniem. Najbardziej takim powszechnym, który gdzieś tam w IOT się przewija, jest protokół MQTT i teraz wyobraź sobie, że to jest jeden z popularnych, ale oprócz tego mamy kilka innych, które zupełnie wyglądają inaczej. Odpowiedzią tej organizacji W3C jest to, żeby stworzyć uniwersalny protokół, uniwersalny standard, który będzie dostępny na każdym poziomie, czy mówimy tu o jakichś językach programowania typu Python, ale mówimy też o takich językach jak Java Script, które też jest dostępne z poziomu przeglądarki. Teraz wyobraź sobie, że cała komunikacja z dziesiątkami, tysiącami itd. urządzeń IOT, nie wymaga od ciebie żadnego back endu, wszystko dzieje się po stronie przeglądarki, masz protokół, który zbiera tak naprawdę to, co już znamy w taką spójną całość, czyli nadaje takich ram, w jaki sposób powinna wyglądać komunikacja z tymi urządzeniami, jest to protokół http, pojawia się rest api, pojawia się format jason i ta komunikacja jest właśnie też na zasadzie requestu, responsu, czyli wysyłamy jakieś żądanie, oczekujemy odpowiedzi i komunikacja też może być prowadzone przez web sockety i wszystko to jest specyfikowane jako kolejna część, kolejny element, który ma się natywnie pojawić w przeglądarkach, więc nie potrzebuję pisać czegoś dodatkowo, jakiegoś proxy, żeby teraz z poziomu interfejsu użytkownika, móc się komunikować gdzieś dalej. Po prostu może dziać się to bezpośrednio. Fajne jest to, że myślenie nad tym standardem, też zahacza o takie tematy, jak bezpieczeństwo komunikacji z tymi urządzeniami, że to też już jest na tym poziomie przemyślane.

Krzysztof: Myślę, że to jest właśnie coś, co otworzy, czy to już otwiera możliwości, o których wcześniej nawet nie myśleliśmy, bo nie wyobrażaliśmy sobie, że w tym kierunku to może iść, a fakt, że ktoś nad tym trzyma jakąś pieczę i, że właśnie w tych wiodących przeglądarkach, w końcu prędzej czy później wsparcie tych natywnych API się pojawi, myślę, że też jest tutaj nie bez znaczenia, więc z pewnością będzie to trend na 2019 przynajmniej. Wiele razy tutaj w tych wcześniejszych trendach mówiliśmy o Java Script. Ale to nie tylko Java Script jako język obecnie się umacnia, bo to samo moglibyśmy powiedzieć o Pythonie, czy nawet o PHP, albo innych językach webowych czy mobilnych, ale myślę, że na pierwszy rzut powiedziałbym o Java Script, bo i PWA, o których mówiliśmy wcześniej, i szeroko rozumiany front end opiera się właśnie na Java Script, w takim indeksie TOP, który powiedzmy jakoś tam charakteryzuje, czy też mówi nam jak popularny jest język, na dzień dzisiejszy zdaje się, że Java Script jest na miejscu 7, ale ten trend jest cały czas idący ku górze, to nawet widać po rynku pracy, co raz więcej jest właśnie ofert dla frontendowców, co raz więcej jest ofert dla programistów Java Script. Czy myślisz, że ten język nadal będzie się rozwijał?

Adrian:  Wiesz co, mi się wydaje, że rozwój tego języka jest nie unikniony. Przede wszystkim ma szerokie zastosowanie, bo to zastosowanie jest i właśnie w tej kwestii frontendowej i części backendowej. Ja jakiś czas temu miałem taką transformację z programisty PHP’owego, na bardziej programistę Java Scriptu, gdzie faktycznie weszliśmy w back end pisany w Note JS i to się sprawdza. Naprawdę, w kwestii gdzieś tam mikroserwisów rozproszonego systemu, tworzenie oprogramowania w oparciu o ten język jest naprawdę bardzo przystępne, przede wszystkim ze względu na koszt wytworzenia takiego oprogramowania. Niski próg wejścia w ten język. Druga rzecz, silne parcie też różnych fundacji, organizacji na rozwój i standaryzację samego Java Scriptu. Wydaje mi się też patrząc, tak jak wspomniałeś o tych ofertach pracy, że bardzo często pojawiają się front end developer, jakiś tam react developer, angular developer, już schodząc na ten poziom właśnie frameworków, to też przeglądając ankietę, która się nazywała developers skills report, wypełniło ją około 70 tysięcy różnych programistów ze 100 krajów i framework, który wypadł jako framework, którego chcą uczyć się programiści, to jest react, on zyskał tam niesamowite poparcie, że wszyscy chcą uczyć się tego reacta, react jest napisany w Java Script. Patrząc na tren programistów, to tu jest bardzo mocne pchanie tego języka do przodu, popatrz na ilość bibliotek, które powstają dookoła tego ekosystemu Java Scriptowego, popatrz na ilość konferencji, która się dzieje, popatrz na to, w jaki sposób organizacje podchodzą do właśnie wytwarzania oprogramowania opartego na Java Script i rozwiązania bliskie Java Scriptowi, czyli gdzieś tam nakładki typu tape script, CoffeeScript itd., więc wydaje mi się, że rozwój tego języka jest nieunikniony.

Krzysztof: Właśnie, powiedziałeś o tym szerokim zastosowaniu, nawet słyszałem takie opinie, że to jest dobry język, żeby zacząć swoją przygodę z programowaniem, bo tak naprawdę w przeglądarce dosłownie w parę minut możemy sobie taki kod uruchomić, możemy się z nim bawić i na bieżąco patrzeć jak te zmiany wpływają nam na efekt finalny, więc myślę, że ten niski próg wejścia i przydatność do różnych zastosowań też przyczynia się do wzrostu popularności. Właśnie, a taki drugi język, który najczęściej jest wymieniany jako język, od którego można zacząć swoją przygodę z programowaniem, to jest Python. On obecnie znajduje się na 3 miejscu w tym indeksie TOP. Powiedzmy zawsze gdzieś w miarę był popularny, ale ostatnie dwa lata i taki silny wzrost Pythona w Machine Learningu wydaje mi się, że mocno wpłynął na wzrost popularności Pythona. Jakie tutaj masz zdanie na temat tego języka?

Adrian: Ja myślę, że nie tylko w kwestii samego ML’a, bo tak naprawdę Python bardzo mocno wyszedł, przynajmniej z mojej perspektywy jak obserwuję ten rynek, jako język, który równie dobrze znajduje swoje zastosowanie jako ten back end dla aplikacji webowych. Mamy frameworki, które świetnie tutaj wspomagają pracę, ostatnio właśnie robiłem sobie taką analizę, co tam nowego w Pythonie, pojawiają się kolejne, bardzo wyspecjalizowane, np. specjalnie tylko i wyłącznie w kwestii mikroserwisów, zapewniając warstwę transportu i patrząc na ten rynek pracy, tutaj u mnie na Śląsku, to nawet te oferty pracy na Pythonowców się pojawiają, a to, że fajnie bawić się ML’em, czy wykorzystywać już produkcyjnie, z tego, co widziałem i rozmawiałem, to Python jest rewelacyjny. Wcześniej, jak powiedzmy tam parę lat wstecz, my wykorzystywaliśmy Pythona de facto do obsługi open CV, to jest taka biblioteka do detekcji różnych rzeczy na obrazach i Python wtedy dla nas głównie był postrzegany pod kątem tych rozwiązań uniwersyteckich, gdzie faktycznie mamy tych profesorów, którzy programują jakieś skomplikowane algorytmy itd., to Python był właśnie językiem, który był najczęściej wykorzystywany przez nich do implementacji jakichś takich rozwiązań i są nawet dedykowane platformy, typu Jupiter, właśnie napisana platforma w Pythonie, która umożliwia wykonywanie nawet kodu Pythonowego na rzecz właśnie jakichś obliczeń matematycznych, więc wywodzi się to może gdzieś tam z środowiska takiego bardzo naukowego, ale mocno wchodzi też właśnie w ten świat takiego „normalnego” developmentu, bo w sumie, co to jest „normalny” development? Ciężko powiedzieć, ale faktycznie przebija się na to światło dziennie w zastosowaniach takich komercyjnych.

Krzysztof: Tak, zgadza się. Kiedyś nagrywałem podcast o tym, jak się uczy dzieci programowania, jak robiłem sobie research do tego odcinka, to tak naprawdę zaskoczyło mnie to, że większość szkół programowania dla dzieci ma gdzieś tam Pythona. To jest po prostu standard de facto.

Adrian: Ja chyba nawet widziałem książkę właśnie, „Nauka Pythona dla 5-6 latków”, tak więc musiałbym poszukać, czy akurat w tym przedziale wiekowym, ale właśnie znalazłem i mówię, kurczę, świetnie, dzieci nauczyć Pythona. W sumie ta składnia tego języka jest dość prosta, łatwo też wejść w niego i de facto coś uruchamiać. Pytanie, czy dzieci będą zainteresowane uruchomieniem scriptów z poziomu jakiegoś CLI.

Krzysztof: Tak, to już jest pewnie inna kwestia. Jasne. A takim kolejnym językiem, który w TOP jest na miejscu 8, jest PHP. Nie dawno wersja 7.3 się pojawiła i mam wrażenie, że ten język tak co raz bardziej dojrzewa i co raz bardziej powraca do mainstreamu. Kiedyś tak właśnie jak wspomniałem przy PWA w 2005, to był taki okres, kiedy PHP się pojawił właśnie jako przejście z takich statycznych html’i do tych html’i generowanych w sposób dynamiczny. Później miał tam różne etapy swego rozwoju, w których mniej lub bardziej nadążał za tym jak inne języki się rozwijały, ale obecnie mam wrażenie, że co raz szybciej się do tego takiego poziomu rynkowe zbliża, o ile już tam dawno jest. Czy myślisz, że PHP jeszcze będzie święcił swój taki triumf?

Adrian: Nie. A tak serio, ja mam właśnie z PHP pewien problem, bo język był bardzo popularny, bardzo mocno wykorzystywany w momencie kiedy nie było żadnych standardów, wszystko się robiło jak się chciało i ja też właśnie zaczynałem swoją taką programistyczną przygodę w momencie, kiedy brało się PHP, mieszało się go z HTML, wszystko było w porządku, nikt nie krzyczał. Żaden tech lead ci nie powiedział, że to jest złe i masz to teraz przepisywać, ale patrząc na dalszy rozwój tego PHP, on w pewnym momencie jak gdzieś tam wspomniałeś właśnie tak troszkę przystopował, był w takiej nostalgii, nie wiadomo było, co dalej z tym językiem. Dopiero później zaczęły się organizować wokół tego języka społeczności, które stwierdziły, brakuje nam tutaj standardu, i zaczęły się pojawiać dokumenty PSR standaryzujące i składnię, i nazewnictwa, pojawił się autoloading, zaczęto wykorzystywać system zarządzania pakietami, tak naprawdę, pojawił się compuser i wtedy ja widziałem taką jasność, tak jak patrzysz w tunel i widzisz na końcu te światełko, to właśnie wtedy mi się wydawało, że ten PHP świetnie idzie w tym kierunku, że coś z tego będzie. I teraz patrząc na dalszy rozwój PHP, przekroczeniu tej wersji 7, bardzo dużo się zmieniło. Pojawiło się stare typowanie, teraz w wersji 7.4 w RFC jest informacja, że wprowadzony będzie type properties, czyli właściwości klasy będą miały przepisywany bezpośrednio typ. Ten język wygląda jak cała reszta języków typu Java, typu C Sharp i zastanawiam się, jak dalej będzie wyglądał rozwój tego języka, bo zastosowanie w praktyce, zastosowanie w takich komercyjnych projektach, ja myślę, że tutaj kwestia tego, że pracę programiści znajdą jeszcze przez długi czas, bo tych projektów jest naprawdę multum, które powstały i wcześniej, i troszkę później, i są utrzymywane, i są świetne, duże skalowalne, jednak ja cały czas nie wiem, co dalej z tym językiem będzie. Ja byłem trochę zmartwiony właśnie wprowadzeniem tego silnego typowania do PHP, które niby nie jest obowiązkowe, bo dalej nie musisz wykorzystywać typów, definicji typów, jednak ja byłem wychowany w tym PHP’ie takim bardzo surowym, takim jak widzimy teraz Java Script. Też nie operujemy typami, typy pojawiają się w momencie, kiedy zaczynamy wykorzystywać tą nakładkę w postaci tape scriptu i, o ile sam rynek, na pewno będzie żył, programiści będą zarabiać fajne pieniądze i coś więcej będzie się pojawiało wokół tego języka, kolejne standardy, bo PSR’ów teraz chyba mamy powyżej 10, o tyle moja opinia w kwestii tego języka jest taka, totalnie nie wiem, co dalej. Ja nawet przestałem programować w nim de facto tak na co dzień, robię w zupełnie innym stacku technologicznym, teraz się poruszam, albo przynajmniej staram się poruszać i nie mam zdania, naprawdę.

Krzysztof: Ja jestem ciekaw. Jednak rynek i czas pewnie pokaże. Dobrze, to mamy języki za sobą. Teraz może pomówmy o nieco innych technologiach, z nieco innego obszaru, a takimi technologiami są technologie głosowe. Tutaj myślę, że Adrian Ciebie podobnie jak i mnie ten temat interesuje, ponieważ oboje tworzymy podcasty, więc audio mamy do czynienia, ale myślę, że technologie głosowe, jako pojęcie mogą być trochę nieznane, o ile nie enigmatyczne dla sporej ilości słuchaczy, dlatego może wyjaśnię, że jest to po prostu kolejny interfejs. Nieco inny niż klawiatura, niż myszka, niż może ekran dotykowy, ale po prostu kolejny interfejs. Sposób wymiany informacji z komputerem i to w obydwie strony, o czym za chwilę powiem. Jego znaczenie z pewnością będzie się umacniało, ponieważ takie firmy jak Amazon, jak Google, Apple, Microsoft mocno inwestują w tym kierunku i oczywiście trzeba powiedzieć, że to nie jest technologia, czy też nie jest to interfejs, który zastąpi nam jakąkolwiek interakcję, czy też całościową interakcję z komputerem, ponieważ jest on dobry tylko w pewnych zastosowaniach, przykładowo możemy zapytać się takiego urządzenia, które wspiera właśnie technologie głosowe, jaka będzie dzisiaj pogoda, ale pewnie dosyć ciężko by nam było przejrzeć jakiś raport finansowy, do tego jest potrzebny inny interfejs. Na rynku mamy obecnie takie urządzenia jak np. Amazon – Alexa, Google Assistant, który nawiasem mówiąc kilka dni temu zyskał wsparcie dla języka polskiego, Apple Siri, to są główni gracze. Technologie głosowe są też co raz mocniej wykorzystywane w e-commerce’ie i w biznesie B2C, np. możemy to wykorzystywać będąc sklepem do tego, żeby nasi klienci mogli rozmawiać z takim wirtualnym asystentem, dokonując zakupów, pytając o pewne rzeczy czy też prosząc o wsparcie, zatem w obszarze obsługi klienta jest tutaj dosyć mocne pole do popisu. Od strony technologicznej, sporo Machine Learningu i deep learningu jest tutaj zawarte, bo z jednej strony, jeśli mówimy do takiego urządzenia, to musi być jakaś warstwa rozpoznania tego języka i to zarówno od strony przełożenia tego na tekst, jak i zrozumienia sensu tego, co chcemy przekazać. Z drugiej strony, gdy urządzenie mówi do nas, musi ten proces następować w drugą stronę, zatem Machine Learning tutaj jest i mocno się rozwija. Od strony właśnie tych urządzeń, o których mówiłem, to z jednej strony to są smart speakrs, najczęściej takie bezprzewodowe głośniki posiadające asystenta, reagujące na polecenia głosowe i tutaj się mówi, że w Stanach już prawie 24% populacji powyżej 18 roku życia takie głośniki posiada, z drugiej strony, myślę, że nawet większy rynek, to są smartphony, które pewnie już większość ludzi posiada, to też jest de facto urządzenie głosowe do którego możemy mówić i ono może mówić do nas. W domach to też może być jakiś rodzaj home automation, jakieś wyszukiwanie w sieci, tego typu zastosowania. Właśnie, tutaj ciekawą sprawą od strony też technologicznej, od strony user experience jest tzw. voice user interfaces, czyli to jest taki odpowiednik graficznego interfejsu użytkownika, który tak de facto musi być zaprojektowany, czyli musimy tą interakcję użytkownika i urządzenia po prostu zaprojektować. Trzeba powiedzieć, że istotny fragment, istotny aspekt tych technologii, to jest właśnie rozpoznawanie głosu, od strony technologicznej, możemy tworzyć nasze aplikacje na takiego asystenta, np. Google Assistant, wtedy to rozpoznawanie głosu jest najczęściej realizowane w chmurze, my się tym  w naszej aplikacji nie zajmujemy, tak samo nie zajmujemy się odpowiedzią, czy też generowaniem tej odpowiedzi, to też dostawca usługi nam umożliwia, my de facto realizujemy tą logikę biznesową. Już na polskim rynku powstają firmy, które w takich zastosowaniach technologii głosowych od strony projektowania takich aplikacji się specjalizują, tutaj łatwo pewnie można sobie skojarzyć jakieś call center, jakieś banki, jakieś e-commercy, które już korzystają z tych technologii, z dużym z resztą powodzeniem, więc myślę, że w 2019 te technologie jeszcze mocniej nam się będą pokazywać i umacniać.

Adrian: Wspomniałeś o tym, że całkiem niedawno w Google Assistant pojawiło się wsparcie dla języka polskiego. Tak patrząc wstecz, jakieś półtora roku temu byliśmy na Hackchatonie, gdzie rozpoznawanie polskiego głosu i też czytanie polskiego tekstu, było czymś naprawdę wyrafinowanym, bo na x różnych zespołów, podczas brania udziału w Hackchatonie, tylko my zrobiliśmy komunikację w języku polskim, bo wykorzystaliśmy wtedy zupełną nowość, czyli API, które zostało udostępnione w przeglądarkach, speach recognition i ono umożliwiało już wtedy właśnie tą komunikację w języku polskim. Cała reszta, która wykorzystywała gdzieś tam Alexę, no niestety, ale ta komunikacja była tylko w języku angielskim. Ja bym chciał podać tylko jeden przykład, który ja wykorzystuję na co dzień, który pozwala mi się komunikować z oprogramowaniem za pomocą głosu, jest to rewelacyjne zastosowanie podczas jazdy samochodem, mam taki przycisk, że sobie klikam i mogę powiedzieć zadzwoń do żony, tylko oczywiście po angielsku, i wtedy nie muszę wybierać żadnego numeru, nie muszę nigdzie cykać po konsoli, którą mam tam w moim samochodzie, czy po telefonie, po prostu dzwoni mi do mojej żony i mogę z nią na spokojnie rozmawiać, nie przejmując się tym, że tracę skupienie na jeździe samochodem. Dla mnie to jest świetne rozwiązanie. To jest takie ułatwienie właśnie tego sposobu komunikacji, nie narzucania, że teraz wszystko musi być dostępne pod postacią tego interfejsu głosowego, ale żeby ułatwić tą dostępność pewnych rzeczy podczas naturalnych rzeczy, które na co dzień wykonujemy.

Krzysztof: Myślę, że to właśnie w tym kierunku pójdzie i w momencie kiedy Alexa czy Apple Siri, zacznie wreszcie mówić i rozpoznawać język polski, to na naszym rodzimym rynku zobaczymy ten boom właśnie na smart spikery, na różne aplikacje, które będą nam umożliwiały np. zamówienie pizzy mówiąc do Alexy i tego typu rzeczy. Ciekawa przyszłość przed nami. Wspomniałeś już kilka razy tutaj o IOT, internet of things, to też jest taki trend, który od jakiegoś czasu się rozwija i wydaje się, że w 2019 będzie jeszcze mocniej się rozwijał.

Adrian: Zdecydowanie wydaje się, że będzie się rozwijał, a nawet na pewno będzie się rozwijał. Nawet patrząc gdzieś po raportach, chęć zainteresowania taką gałęzią technologii jest bardzo wysoka i z roku na rok to zainteresowanie rośnie, IOT. Druga rzecz, w tym roku czeka nas wejście sieci 5G, czyli następcy 4G, gdzie dostajemy tak naprawdę niesamowitą przepustowość łącza i w górę, i w dół, bo to jest 20 GB/s pobierania i 10 GB/s wysyłki danych, i przede wszystkim opóźnienia w tej sieci, które mają być nie wyższe niż 4 milisekundy, więc komunikacja z tymi sensorami różnego rodzaju z systemami, które monitorują nam czy to samochód, czy to w domu, czy coś się nie rusza, czy po prostu sensory, które są montowane we wszelkiego rodzaju inteligentnych miastach, to będzie niesamowita ilość danych, która będzie do przetworzenia, więc będzie to trzeba szybko wysłać i szybko reagować na pewne zachowania. Patrząc też na kierunek, to właśnie ten smart city, ja miałem właśnie możliwość udziału w takich dwóch projektach IOT, które dotyczyły detekcji, anomalii wycieków wody w sieciach wodociągowych i to takich wyciekach, których nie widać gołym okiem, one, to są wycieki ukryte do ziemi, które tak naprawdę pojawiają się po paru tygodniach, gdzie tak naprawdę sieć, czy przedsiębiorstwo wodociągowe traci niesamowitą ilość pieniędzy na to, że po prostu ta woda gdzieś tam uciekła, i wyobraź sobie, że zamontowanie odpowiednich czujników i stworzenie takiej sieci wodociągowej i jej późniejsza analiza, analiza tych danych, które są zbierane z czujników, powoduje, że my, jako społeczeństwo, przede wszystkim zaoszczędzamy i pieniążki, i wodę, która jak słyszymy z roku na rok jest co raz bardziej ważna dla nas wszystkich, tak samo jak ekologia, więc tutaj ta świadomość wykorzystania właśnie technologii IOT powoduje, że nam też zaczyna się żyć lepiej, czy ułatwiamy sobie życie. Tak jak w przypadku właśnie powiedziałeś tutaj urządzeń głosowych. Takim drugim projektem, to też coś, czego my de facto wykorzystujemy. Teraz jesteśmy uczuleni na stężenie pyłów zawieszonych i też mieliśmy okazje tworzyć rozwiązanie takie, które robiło analizę zanieczyszczeń powietrza, a finalnie udostępniało to w postaci wykresów na mapie, historycznych wykresów, właśnie pokazując jak faktycznie to powietrze w naszym rejonie, czy w rejonie, gdzie są zainstalowane czujniki wygląda. To jest jedno z zastosowań, które można wykorzystywać. Byłem też na konferencji związanej ze smart city, gdzie ten kierunek IOT, był bardzo mocno podkreślony i była bardzo fajna prelekcja, która omawiała właśnie kwestię wymiany akumulatorów w lampach, które stoją przy ulicy. Mamy lampy, które zasilane są energią słoneczną, ładują akumulatory, w odpowiednich porach po prostu się załączają, świecą. Teraz, w momencie kiedy, ten akumulator traci swoją żywotność, to w normalnym świecie trzeba by było wysłać specjalistów, którzy tam wejdą, wyciągną akumulator, podmienią go na nowy, a już myśląc o takim pełnym zautomatyzowaniu właśnie takiego inteligentnego miasta, z wykorzystaniem czujników całej sieci komputerowej, Machine Learningów, algorytmów i tak dalej, wystarczyłoby posłać drona, który podmieni te baterię, i to było pokazywane, że to faktycznie można tak zrealizować i tak zostało to zrealizowane, wyciągamy baterię, wkładamy nową, dron sobie odlatuje na miejsce z którego wystartował, więc IOT to jest dopiero początek, bo to jest zbieranie danych, ale co my z tymi danymi zrobimy, w jaki sposób zaczniemy je analizować, w jaki sposób zaczniemy je wykorzystywać, mam nadzieję, że pójdzie w tym kierunku właśnie ułatwienia nam pracy, ułatwienia nam codziennego życia.

Krzysztof: Tak, brzmi to dosyć futurystycznie, tak naprawdę, to jest takie przybliżenie tej technologii bardzo blisko nas i podłączenie tych urządzeń, które nas otaczają do jednej sieci. Niektórzy widzą w tym pewne zagrożenia, niektórzy widzą szanse, z pewnością jest to trend na najbliższe lata i pewnie co raz więcej otaczającego nas sprzętu będzie wysyłało dane, co też jest jakimś wyzwaniem od strony technologicznej, bo tak jak wspomniałeś, jest to olbrzymia ilość danych do przełożenia, do przeanalizowania. Myślę sobie, że to też jest jakiś tam napęd, który pozwoli rozwijać technologię. Jestem przekonany, że właśnie w tym kierunku to pójdzie.

Adrian: Też wydaje mi się, że jeszcze w aktualnym momencie ten internet rzeczy, to jest coś, co zaczyna raczkować. Nie mamy rozwiązań do wszelkiego rodzaju problemów, z którymi spotykamy się na co dzień. Branża automotive, jest też branżą bardzo rozbudowaną i zastosowanie czujników w transporcie, telemetryka kontenerów na statkach, czy nawet obserwacja w jaki sposób te kontenery poruszają się po porcie, to wszystko możemy zawdzięczać tym czujnikom. Jeżeli wykorzystamy to dobrze, to będzie to tylko i wyłącznie benefit, optymalizacja pewnych kosztów produkcji, przemysłowych, a jeżeli zaczniemy wykorzystywać wszystkie te informacje w sposób nieodpowiedni, to wiadomo, jak ze wszystkim, co robimy w internecie. Też klikamy, zostawiamy bardzo dużo śladów po sobie, a dokładając do tego czujniki, które mamy w telefonie, bo tam tak naprawdę możemy zmieścić teraz wszystko, zostawiamy tych informacji co raz więcej, a co się z tym stanie dalej, czas pokaże. Mam nadzieję, że to nie będzie wyglądało zbyt negatywnie.

Krzysztof: No właśnie, jak już uderzyliśmy w ten ton futurystyczny, to taką klamrą, myślę, spinającą wszystkie te trendy, o których mówiliśmy jest AI, jest sztuczna inteligencja. To jest pewien koncept, w sensie łatwo mówić o sztucznej inteligencji, natomiast trzeba sobie zdawać sprawę, że to jest pewien teoretyczny koncept, do którego dązymy, do którego niektórzy chcą dążyć, niektórzy niekoniecznie, natomiast na obecnym rozwoju technologii, próbujemy powiedzmy realizować ten koncept stosując takie techniki jak Machine Learning, Big Data, Data Science i temu pokrewne, trzeba sobie zdawać sprawę z tego, że AI ogólnie rozumiane, to nie jest jakaś wizja przyszłości, to jest coś, co bardzo mocno już weszło w nasze codzienne życie i tak naprawdę ciężko znaleźć taką dziedzinę rozwoju ludzkości w tej chwili, w której sztuczna inteligencja jakoś by nie istniała, albo do której by nie miała zamiaru wejść, bo to jest tak naprawdę wszystko, od Facebooka poprzez samochody skończywszy na e-commerce i wszelkiego typu działań biznesowych, więc sztuczna inteligencja już jest, jej znaczenie będzie rosło. Jakiś czas temu miałem okazję rozmawiać z Vladimirem Alekseichenko, który jest dosyć, myślę w Polsce, rozpoznawalną osobą i kojarzoną właśnie z zagadnieniami AI i pytałem go jak to będzie w kontekście programistów, bo jest taki …

Adrian: … tak, taki trend, który pojawia się ostatnio w mediach i artykuły wszędzie latają, że już za dwa lata nie będziemy mieli pracy, bo kod będzie się sam pisał.

Krzysztof: Dokładnie, dokładnie. Tym się właśnie straszy programistów. Tymczasem Vladimir mówi o czymś takim, jak Programista 2.0, czyli możemy sobie przypomnieć, co się działo w momencie pierwszej rewolucji przemysłowej, kiedy podobne obawy właśnie robotników się pojawiały, że maszyny ich wyprą, że nie będą mieli pracy, i to oczywiście po części jest fakt, bo maszyny przejęły wiele powtarzalnych takich czynności wykonywanych przez robotników, natomiast dały inne możliwości, czyli pojawiła się konieczność zatrudnienia ludzi, którzy potrafią te maszyny obsługiwać, i to jest właśnie taki trend, który być może w przypadku programistów będzie miał miejsce, to znaczy będziemy musieli rozumieć w jaki sposób korzystać z tej sztucznej inteligencji, żeby tworzyć nowego rodzaju rozwiązania, nowego rodzaju soft, natomiast na tą chwilę nie wygląda, nie zanosi się, żeby sztuczna inteligencja i roboty zastąpiły człowieka w pisaniu tego kodu, raczej zastąpią nas tam, gdzie tworzymy zupełnie powtarzalne i odtwórcze rzeczy, natomiast pojawi się też konieczność zatrudniania ludzi, którzy potrafią z tej sztucznej inteligencji korzystać, którzy potrafią ją zastosować w przypadku jakichś konkretnych rozwiązań biznesowych. Z resztą to widać teraz na rynku, bo mnóstwo jest ofert dla ludzi, którzy znają się na Machine Learning i Data Science, Big Data, myślę, że to będzie jeszcze bardziej postępujący trend. Co raz częściej sztuczna inteligencja jest wartością intelektualną startupów, właśnie wiele firm poprzez wdrożenie mechanizmów Machine Learning oszczędza czas, oszczędza pieniądze, daje jakąś wartość dla swoich użytkowników. Tutaj widać bardzo dużo kapitału na rynku, który chce inwestować w AI, mówi się nawet, że portfele inwestorów otwierają się, kiedy przychodzi jakiś startup i w swojej nazwie ma powiedzmy AI, albo Machine Learning, więc to jest taki trend, czy też taka dziedzina, w której inwestorzy chcą obecnie mocno inwestować i duzi gracze z obszaru cloud tacy jak np. Amazon, dają jakieś gotowe komponenty, czy serwisy do wykorzystania, takie zamknięte skrzynki realizujące pewne algorytmy i myślę, że to jest właśnie ten kierunek, w którym będziemy zmierzać, czyli nie będziemy musieli rozumieć, co tam w środku siedzi, jak ten algorytm działa, jak on został zaimplementowany, musimy natomiast wiedzieć jak go użyć, czy jak go wykorzystać z innymi mechanizmami. To jest tak jak w przypadku programistów w dzisiejszych czasach, niekoniecznie musimy rozumieć jak tam pod spodem dany algorytm czy dana funkcja została powiedzmy zaimplementowana w danym języku, my musimy wiedzieć jak ją użyć, dlatego nie należy, według mnie, obawiać się, że sztuczna inteligencja wyprze programistów, raczej otworzy nowe możliwości. Właśnie tutaj powiedziałeś o IOT. Wydaje mi się, że upowszechnienie się IOT, sprawia, że pojawia się wiele danych. Jest ten obszar Big Data, co prawda on jest co chwilę przedefiniowywany, ponieważ różnie się mówi, od kiedy zaczyna się Big Data, czyli konieczność przetwarzania dużej ilości danych, na tą chwilę powiedzmy to są jakieś tam setki giga bajtów, inni mówią, że to jest taka ilość danych, którą nie da się pomieścić w ramie jednocześnie, natomiast fakt jest, że to Big Data, przetwarzanie i składowanie dużej ilości danych będzie wymagane i na tych danych robimy pewne operacje korzystając właśnie z algorytmów Machine Learning, po to, żeby czegoś się dowiedzieć, po to, żeby jakieś trendy zobaczyć, po to, żeby móc przewidzieć, jak te trendy będą następować. Na tą chwilę, takie kraje, jak Stany Zjednoczone, Chiny przodują właśnie w rozwoju AI, inwestują bardzo dużo w rozwój tych technologii. Tak jak mówiłem, jest to temat dość kontrowersyjny społecznie, niektórzy biją na alarm, żeby powstrzymać albo przynajmniej bardzo mocno kontrolować rozwój sztucznej inteligencji, po to, żeby ona nie przejęła nad nami kontroli. Niektórzy widzą to jako naturalny i nieunikniony etap rozwoju ludzkości, tym nie mniej sztuczna inteligencja mocno weszła w nasze życie, a będzie wchodziła jeszcze mocniej i ten trend myślę, że z roku na rok będzie się umacniał.

Adrian: Wspomniałeś o Big Data i o definicji Big Data kiedy się zaczyna. Jest taki model 3V, który opisywał Big Data, czyli ta właśnie duża ilość danych. Jak duża? Ja bym tu szedł w giga bajty, tera bajty, albo po prostu w określenie, że nie jesteśmy w stanie tych danych przetworzyć w sposób konwencjonalny, który znamy z takiego normalnego programowania, że piszemy kawałek oprogramowania i on teraz nam przetworzy wszystkie te dane, raczej tutaj to podejście rozproszonego systemu przetwarzania informacji właśnie tego modelu samego MapReduce, który się pojawia, ale też duża prędkość przetwarzania tych danych, czyli jesteśmy w stanie w ciągu jednej sekundy przetworzyć nie tysiąc rekordów, które nam napłynęły, tylko jesteśmy w stanie przetworzyć miliard tych informacji w ciągu jednej sekundy. I przede wszystkim duża różnorodność danych, danych, które nie są ustrukturyzowane, które tak naprawdę mogą być tylko i wyłącznie wyrywkiem słów, które wpisywaliśmy w wyszukiwarkę, mogą być informacjami o tym, że użytkownik klikał po danej stronie. Idąc dalej, te rzeczy można agregować i na podstawie ich wnioskować, co nas interesowało w sklepie internetowym. Dzięki temu dostarczać bardziej odpowiednie rekomendacje produktowe, które być może zachęcą nas do zakupów w tym sklepie. Takim przykładem właśnie zastosowania Machine Learningu i tego, co robimy w danej aplikacji, tu akurat mam na myśli aplikację Netflix, wygląda w taki sposób, że te wszystkie covery filmów, które nam się pojawiają, one są dostosowane do naszych preferencji, do naszego odbioru, co nas najbardziej interesuje. Ja np. wiesz, przeglądając dany film, dostanę zupełnie inny cover niżeli ty, bo mnie interesują zupełnie inne sceny i ta scena akurat bardziej zachęci mnie do obejrzenia tego filmu, niżeli cover, który otrzymałeś ty. I to też jest na podstawie jakiegoś tam wnioskowania naszego zachowania na Netflixie, naszych filmów, które przeglądamy, momentów, które pomijamy itd., zapewne jest tam brane wszystko, czego nie jestem w stanie wymienić teraz. Tak więc nawet w takich przyziemnych aspektach, jak codzienne wykorzystanie aplikacji, która służy tylko do streamowania jakiegoś kontentu video, ten Machine Learning się pojawia, ten Big Data się pojawia, że to nie są aż tak futurystyczne powiedzmy technologie, tylko to jest coś, co też dzieje się wokół nas.

Krzysztof: Dokładnie. Potencjał jest olbrzymi i tak jak powiedziałeś, to jest coś, co już nas otacza, coś, co już jest w serwisach, z których korzystamy. Pewnie będzie się ten trend umacniał. Myślę, że nie ma się tutaj czego bać. Większość tych rzeczy jest robiona po to, żeby nam ułatwić życie.

Adrian: Super Krzysztof. Tak nakreśliliśmy troszkę tych trendów, ja myślę, że nawet nie na sam 2019 rok, ale opowiedzieliśmy o rzeczach, które będą toczyły się też później w 2020, 2021. Myślę, że te tematy dalej będą żyły. Część może z nich gdzieś troszkę może straci na tej swojej wartości, ale te koncepty takie futurystyczne, ja myślę, że to się będzie działo, dalej będzie rozwijane i być może za rok, jakbyśmy spotkali się na podobnym podcaście, pojawią się nowe rzeczy, o których na dzień dzisiejszy nawet nie myślimy.

Krzysztof: Dokładnie Adrianie. Ja ci bardzo dziękuję, fajnie się rozmawiało i tak jak powiedziałeś, myślę, że te trendy, to nie jest 2019, ale pewnie dwudziesty któryś. Życzę tobie i sobie, żebyśmy przynajmniej za rok mogli się spotkać i jeszcze raz porozmawiać, co tam na 2020 nam się szykuje. Ja też jestem ciekaw, co nasi słuchacze myślą, bo to jest nasza subiektywna lista trendów, dlatego zachęcamy słuchaczy do tego, żeby w różnych postach towarzyszących publikacji właśnie tego odcinka szeroko komentowali, jakie trendy w ich mniemaniu będą dominowały w IT. I co? Jeszcze raz wielkie dzięki i do usłyszenia.

Adrian: Ja również dziękuję i do usłyszenia.

Tags:
mm
Krzysztof Kempiński
krzysztof@porozmawiajmyoit.pl

Jestem ekspertem w branży IT, w której działam od 2005 roku. Zawodowo zajmuję się web-developmentem i zarządzaniem działami IT. Dodatkowo prowadzę podcast, kanał na YouTube i blog programistyczny. Moją misją jest inspirowanie ludzi do poszerzania swoich horyzontów poprzez publikowanie wywiadów o trendach, technologiach i zjawiskach występujących w IT.