Tym razem trochę moich przemyśleń na temat rozwoju oprogramowania. Mamy do wyboru kilkadziesiąt / kilkaset różnych języków programowania, technologii i rozwiązań, a czy zastanawialiście się co będzie przyszłością? Na co developerzy położą szczególny nacisk? Myślę że będzie to Web i wszystko co z nim związane.
Coraz więcej powstaje aplikacji dostępnych z poziomu przeglądarki, a ich natywne odpowiedniki odchodzą do lamusa. Kiedyś jak instalowałem nowy system ( a zdarzało mi się to często robić ) to miałem standardową płytkę z aplikacjami bez których ani rusz. Obecnie nigdzie już nie instaluję odtwarzacza muzyki ( usługi streamingowe oraz YouTube ), odtwarzaczy wideo ( YouTube i „alternatywne” serwisy z filmami ), pakietu Office ( Dokumenty Google, Office Online ), komunikatora ( Facebook ) oraz klienta poczty ( Gmail ). Oczywiście przykładów jest o wiele więcej, a tym bardziej zależy to od preferencji użytkownika. Dlaczego jednak tak się dzieje? Już odpowiadam.
Web jest wieloplatformowy, a co za tym idzie koszta produkcji oprogramowania są kilkukrotnie mniejsze. Jest ten sam kod, na wszystkich systemach operacyjnych. Każda aktualizacja dotyczy tylko jednego obszaru. Tyle i aż tyle. Nie trzeba wprowadzać oddzielnych aktualizacji dla Apple, MS, Linux, ponieważ każdy korzysta z tego samego klienta. Programiści mogą się skupić na ulepszaniu rozwiązań, a nie przystosowaniu go do systemu operacyjnego. Oczywiście są różne przeglądarki, ale to i tak mniejszy nakład pracy niż w przypadku natywnych aplikacji.
A jak ma się sprawa z mobilkami? Wiele aplikacji oferuje responsywne wersje dzięki czemu możemy w wygodny sposób z nich korzystać. Gdyby nie pasek przeglądarki to nie wiedziałbym czy korzystam z dedykowanej aplikacji, czy rozwiązania webowego.
Stale rozszerzalne interfejsy API przeglądarek ( Chrome w szczególności ) pozwalają na dostęp do lokalnych plików znajdujących się na komputerze, wyświetlania powiadomień nawet po zamknięciu karty, oraz wielu innych ciekawych dodatków o których kiedyś nie było mowy żeby były wbudowanym rozwiązaniem. Trzeba było męczyć się z np. Javą lub innymi rozwiązaniami. To wymagało posiadania od klienta zainstalowanego odpowiedniego oprogramowania na komputerze. Obecny Web omija tego typu przeszkody. W pięknym stylu zostaje eliminowany Flash Player z wielu stron, a zastępowany jest elementami HTML5.
Pojawia się problem wspierania najnowszych standardów przez przeglądarki. Oczywiście jest to szybko nadrabiane i nawet Internet Explorer potrafi obsłużyć niektóre elementy HTML5 ( mam nadzieję że Edge lepiej i szybciej sobie z tym poradzi ). Kiedy jednak będziemy mogli powiedzieć o pełnym wsparciu HTML5? Pełna specyfikacja jest już od 2014 roku, ale to od przeglądarek zależy kiedy w pełni sobie poradzą z nowymi rozwiązaniami. Dlatego jedynym wymogiem od klienta będzie posiadanie aktualnej przeglądarki wspierającej najnowsze standardy.
Czas na cios w plecy do tego festiwalu pochwał. Wydajność. Przed aplikacjami i standardem jeszcze długa droga aby dorównać rozwiązaniom natywnym. Chwila, chwila… Operacje na plikach w chmurze? To nowa ideologia która może rozwiązać ten problem. Wyobraźcie sobie obróbkę filmu w przeglądarce. Przesyłacie materiał wideo i możecie szybko go wyeksportować tylko dlatego, że nie wasz komputer będzie go renderował. Brzmi fajnie? Photoshop z czymś takim kombinuje, ale oni stosują zdalny dostęp do aplikacji przez przeglądarkę. Tutaj pojawia się problem łącza. Na wolnym kabelku nie zdziałamy dużo. Z moich obserwacji zauważyłem, że ceny łącza są coraz mniejsze i nawet my teraz mamy 250 Mb/s za 85 zł. Myślę że to nie jest wiele. No dobra, Rafał nie ma bo ma za wolną kartę sieciową 😛
Tak prezentuje się moja wizja Web-u. Co o tym myślcie? Zachęcam do pisania aplikacji w przeglądarce, ponieważ to fajny sposób na naukę, a poza tym i tak niedługo JavaScript będzie najczęściej używanym językiem ( PhoneGap ).
Trzymajcie się i do następnego 🙂