SlideShare a Scribd company logo
1 of 19
www.atena.pl




                Łukasz Spandel
JAVASCRIPT ROŚNIE W SIŁĘ




              Atena Usługi Informatyczne i Finansowe S.A.
Co chcę przekazać ?
                                                                               www.atena.pl




    1   JavaScript jest językiem z przyszłością

    2   Jest czymś więcej niż ładnymi animacjami w przeglądarce
        Zapotrzebowanie na programistów jest duże (488 ofert, C#
    3
        400, PHP 306, JAVA 612)
    4   Można tworzyć złożoną logikę biznesową w JS
        Firmy informatyczne muszą być świadome zapotrzebowania
    5
        na kompetencje związane z JavaScriptem




2
                                            Atena Usługi Informatyczne i Finansowe S.A.
Popularność
                                                                                   www.atena.pl




     Źródło: Raport z sierpnia 2012, bazujący na danych z github i StackOverflow
     http://redmonk.com/sogrady/2012/09/12/language-rankings-9-12/
3
                                                Atena Usługi Informatyczne i Finansowe S.A.
Zarzuty
                                                                             www.atena.pl




    1   Prymitywny

    2   Kłopotliwy w utrzymaniu

    3   Kłopotliwy w szukaniu błędów

    4   Różnice pomiędzy przeglądarkami

    5   Niebezpieczny

    6   Asynchroniczny



4
                                          Atena Usługi Informatyczne i Finansowe S.A.
Rzeczywistość
                                                                                  www.atena.pl



        Nie ma klas i dziedziczenia, są prototypy i metody konstrukcyjne
    1

        Organizowanie kodu w biblioteki,
    2
        namespace’y, moduły, pakiety

    3   Chrome, Firebug, Firefly, WebStorm, VisualStudio2012

    4   jQuery ukrywa przed nami różnice w przeglądarkach

        Świadomość niebezpieczeństwa, krytyczny kod wykonywany po
    5   stronie serwera
        Pozwala wykonywanie zadań w tle
    6




5
                                               Atena Usługi Informatyczne i Finansowe S.A.
Dojrzałość
                                                               www.atena.pl




jQuery                                  Frameworki, ORMy, Szablony



Testowanie
                                                              Wydajność

Zarządzanie zależnościami




Społeczność                                                      Node.JS


6
                            Atena Usługi Informatyczne i Finansowe S.A.
Najpowszechniejszy język programowania
                                                                                www.atena.pl




    1   Aplikacje internetowe, w tym tzw. Single Page Sites

    2   Aplikacje mobilne (iOS, Android, Windows Phone)

    3   Aplikacje desktopowe (Windows 8)

    4   Aplikacje serwerowe bazujące na Node.JS

        Funkcje MapReduce w bazach NoSql (MongoDb, CouchDb, Hadoop,
    5   Azure)

    6   Aplikacje w telewizorach (SmartTV, GoogleTV)

    7   Aplikacje Office 2013

7
                                             Atena Usługi Informatyczne i Finansowe S.A.
Główni rywale
                                                                                                        www.atena.pl




    CoffeScript                            TypeScript                             Dart
    ■ Zarządzanie należnościami
       Kompilowany do JavaScriptu          ■ Kompilowany do JavaScriptu           ■ Język stworzony od nowa,
    ■ iUpraszcza składnie poprzez
         procesem windykacji               ■ Składnia prawie niezmieniona           podobny składniowo do JS
    ■ Zarządzanie strategią firmy
       usunięcie nawiasów, średników,      ■ Wprowadza silne typowanie            ■ Posiada własną VM, niezgodną z
    ■  itp..
      Model obiegu dokumentów              ■ Rozszerza JavaScript o klasy i         JavaScriptem
    ■ Zarządzanieklasy i sprzedaży
       Wprowadza siecią dziedziczenie        dziedziczenie, wraz z interfejsami   ■ Można go kompilować do JS
    ■ Organizacja biura zarządzania jest
       Istnieje relatywnie długo czas i    ■ Młody projekt, nie do zastosowań     ■ Posiada wiele funkcji
       stabilny
      projektami                             produkcyjnych                          nowoczesnego języka
    ■ Architektura korporacyjna                                                     programowania m.in.: silne
    ■ IT Governance                                                                 typowanie, klasy i dziedziczenie,
                                                                                    typy generyczne, kolekcje.
                                                                                  ■ Posiada manager pakietów
                                                                                    pozwalający importować
                                                                                    potrzebne biblioteki
                                                                                  ■ Młody projekt, nie do zastosowań
                                                                                    produkcyjnych




8
                                                            Atena Usługi Informatyczne i Finansowe S.A.
Trendy w aplikacjach internetowych
                                                                    www.atena.pl




                                 Dynamiczne aplikacje typu „Single
                                 Page Site”. Logika prezentacji jest
                                  renderowana po stronie klienta.
                               Aplikacje budowane na podobieństwo
    Aplikacje renderowane po
                                  serwerowych, z wykorzystaniem
         stronie serwera
                                   powszechnie znanych praktyk.
                                     Tworzenie abstrakcji nad
                                   mechanizmem trwałego zapisu
                                danych(Ajax, Webstorage, WebSql)


9
                                 Atena Usługi Informatyczne i Finansowe S.A.
Trendy w aplikacjach mobilnych
                                                                    www.atena.pl




 Tworzenie aplikacji w technologii HTML5, JavaScript i opakowywanie
 ich w kontenery będące aplikacjami natywnymi dla każdego systemu
 operacyjnego z osobna. Kontener dostarcza jedno wspólne API
 dostępu do natywnych metod systemów operacyjnych różnych firm.




10
                                 Atena Usługi Informatyczne i Finansowe S.A.
Node.JS, ExpressJS, TowerJS, RailwayJS, Socket.IO
                                                                               www.atena.pl



                                 ■    Node.JS jest platformą do pisania aplikacji po stronie
                                      serwera. Pozwala napisać prosty serwer http w kilku
 Aplikacje serwerowe                  linijkach kodu.
                                 ■    ExpressJS, TowerJS, RailwayJS są frameworkami
                                      pozwalającymi tworzyć aplikacje MVC
                                 ■    Socket.IO pozwala na łatwą implementację
                                      komunikacji w czasie rzeczywistym




 11
                                     Atena Usługi Informatyczne i Finansowe S.A.
Npm
                                                                 www.atena.pl



                        ■    Pozwala zarządzać zależnościami zadeklarowanymi
                             w projekcie
Repozytorium pakietów
                        ■    Umożliwia odseparowanie własnego kodu od
                             zewnętrznych bibliotek
                        ■    W repozytorium znajduje się duża ilość open
                             source’owych projektów




12
                            Atena Usługi Informatyczne i Finansowe S.A.
Modernizer
                                                                    www.atena.pl



                          ■    Bardzo mała biblioteka składająca się z testów
                               sprawdzających dostępność poszczególnych funkcji
Możliwości przeglądarki        w przeglądarce




13
                              Atena Usługi Informatyczne i Finansowe S.A.
PhoneGap
                                                                www.atena.pl



                    ■    Pozwala na stworzenie aplikacji w HTML5 i JS, która
                         będzie mogła być instalowana na różnych systemach
Aplikacje mobilne        mobilnych.
                    ■




14
                        Atena Usługi Informatyczne i Finansowe S.A.
qUnit, Jasmine, Swarm
                                                                       www.atena.pl



                           ■    qUnit pozwala na pisanie prostych testów
                                jednostkowych
Testowanie i jakość kodu
                           ■    Jasmine pozwala na pisanie testów behawioralnych
                           ■    Swarm jest systemem rozproszonego testowania
                                aplikacji pod różnymi przeglądarkami w procesie
                                continuous integration




15
                               Atena Usługi Informatyczne i Finansowe S.A.
RequireJS(Asynchronous Module Definition)
                                                                    www.atena.pl




Dynamiczne ładowanie      ■    RequireJS pozwala na definiowanie zapotrzebowania
                               w kodzie na konkretne pakiety funkcjonalności,
zależności                     zwane modułami. W momencie gdy brakuje
                               zależności, są one pobierane dynamicznie.




16
                              Atena Usługi Informatyczne i Finansowe S.A.
ExtJS, Backbone.JS, Spine, Ember.JS, WinJS,
Wakanda
                                                                                       www.atena.pl




                                 ■   WinJS służy do tworzenia aplikacji pod windows 8 na desktopy i
 Frameworki po stronie klienta       wkrótce na telefony. Współpracuje z API WIN RT. Może
                                     bezpośrednio wywoływać kod C# zawarty w aplikacji.
                                 ■   ExtJS jest komercyjnym frameworkiem MVC. Posiada obszerną
                                     bazę kontrolek i dokumentację.
                                 ■   Backbone.JS i Spine to mocno rozbudowane typowe
                                     frameworki MVC o podobnej architekturze. Backbone jest
                                     starszy i bardziej dopracowany. Obydwa posiadają dużą
                                     społeczność. Spine jest napisany w CoffeScript
                                 ■   Wakanda to cały stos do tworzenia aplikacji pisanych w całości
                                     w JavaScript. Posiada własny framework, serwer, edytor i
                                     narzędzia do graficznego modelowania aplikacji.




 17
                                 Atena Usługi Informatyczne i Finansowe S.A.
AngularJS, KnockoutJS
                                                                           www.atena.pl




                        ■   AngularJS jest stworzonym przez Google dobrze przemyślanym
Pojedynek gigantów          frameworkiem MVC. Pozwala definiować własne tagi html które
                            po uruchomieniu strony są renderowane z pomocą szablonów.
                            Posiada dwukierunkowe bindowanie danych, dependency
                            injection oraz przestrzenie zmiennych związane ze strukturą
                            widoku. Mocno rozwijany.
                        ■   KnockoutJS wspierany przez Microsoft framework MVVM,
                            domyślnie dołączany do nowych projektów MVC4 w VS2012.
                            Skupia się jedynie na prezentacji i dwu kierunkowym
                            bindowaniu danych.




18
                        Atena Usługi Informatyczne i Finansowe S.A.
www.atena.pl




     dziękuję za
     UWAGĘ



19
                   Atena Usługi Informatyczne i Finansowe S.A.

More Related Content

Viewers also liked

Z zubibu.com po Polsce i Europie
Z zubibu.com po Polsce i EuropieZ zubibu.com po Polsce i Europie
Z zubibu.com po Polsce i Europie3camp
 
Od pomysłu do biznesu
Od pomysłu do biznesuOd pomysłu do biznesu
Od pomysłu do biznesu3camp
 
Kompresja stron internetowych – omówienie technik redukujących rozmiar serwis...
Kompresja stron internetowych – omówienie technik redukujących rozmiar serwis...Kompresja stron internetowych – omówienie technik redukujących rozmiar serwis...
Kompresja stron internetowych – omówienie technik redukujących rozmiar serwis...3camp
 
Jak pokochac uwiesc i porzucic bankowca
Jak pokochac uwiesc i porzucic bankowca Jak pokochac uwiesc i porzucic bankowca
Jak pokochac uwiesc i porzucic bankowca 3camp
 
Przetwarzanie BigData w chmurze z wykorzystaniem Apache Hadoop
Przetwarzanie BigData w chmurze z wykorzystaniem Apache HadoopPrzetwarzanie BigData w chmurze z wykorzystaniem Apache Hadoop
Przetwarzanie BigData w chmurze z wykorzystaniem Apache Hadoop3camp
 
Dlaczego Commerce staje się coraz bardziej „Smarter”?
 Dlaczego Commerce staje się coraz bardziej „Smarter”?  Dlaczego Commerce staje się coraz bardziej „Smarter”?
Dlaczego Commerce staje się coraz bardziej „Smarter”? 3camp
 
Wyjdź z kiosku – dystrybucja treści w sieci
Wyjdź z kiosku – dystrybucja treści w sieciWyjdź z kiosku – dystrybucja treści w sieci
Wyjdź z kiosku – dystrybucja treści w sieci3camp
 
W poszukiwaniu procesu doskonałego. Wdrożenie Scruma, Continuous Integrations...
W poszukiwaniu procesu doskonałego. Wdrożenie Scruma, Continuous Integrations...W poszukiwaniu procesu doskonałego. Wdrożenie Scruma, Continuous Integrations...
W poszukiwaniu procesu doskonałego. Wdrożenie Scruma, Continuous Integrations...3camp
 
Learn you some rx for the greater good
Learn you some rx for the greater goodLearn you some rx for the greater good
Learn you some rx for the greater good3camp
 
Jak udokumentować bazę danych
Jak udokumentować bazę danychJak udokumentować bazę danych
Jak udokumentować bazę danych3camp
 
HTTPS bez wymówek
HTTPS bez wymówekHTTPS bez wymówek
HTTPS bez wymówek3camp
 
Inwestowanie w technologie mobilne z punktu widzenia funduszu VC
 Inwestowanie w technologie mobilne z punktu widzenia funduszu VC Inwestowanie w technologie mobilne z punktu widzenia funduszu VC
Inwestowanie w technologie mobilne z punktu widzenia funduszu VC3camp
 
Współpraca w sieci. Budowanie marki poprzez social media
Współpraca w sieci. Budowanie marki poprzez social mediaWspółpraca w sieci. Budowanie marki poprzez social media
Współpraca w sieci. Budowanie marki poprzez social media3camp
 
Wprowadzenie do knockout.js
Wprowadzenie do knockout.jsWprowadzenie do knockout.js
Wprowadzenie do knockout.js3camp
 
ORM - tuningujemy podejście do mapowania
ORM - tuningujemy podejście do mapowaniaORM - tuningujemy podejście do mapowania
ORM - tuningujemy podejście do mapowania3camp
 

Viewers also liked (15)

Z zubibu.com po Polsce i Europie
Z zubibu.com po Polsce i EuropieZ zubibu.com po Polsce i Europie
Z zubibu.com po Polsce i Europie
 
Od pomysłu do biznesu
Od pomysłu do biznesuOd pomysłu do biznesu
Od pomysłu do biznesu
 
Kompresja stron internetowych – omówienie technik redukujących rozmiar serwis...
Kompresja stron internetowych – omówienie technik redukujących rozmiar serwis...Kompresja stron internetowych – omówienie technik redukujących rozmiar serwis...
Kompresja stron internetowych – omówienie technik redukujących rozmiar serwis...
 
Jak pokochac uwiesc i porzucic bankowca
Jak pokochac uwiesc i porzucic bankowca Jak pokochac uwiesc i porzucic bankowca
Jak pokochac uwiesc i porzucic bankowca
 
Przetwarzanie BigData w chmurze z wykorzystaniem Apache Hadoop
Przetwarzanie BigData w chmurze z wykorzystaniem Apache HadoopPrzetwarzanie BigData w chmurze z wykorzystaniem Apache Hadoop
Przetwarzanie BigData w chmurze z wykorzystaniem Apache Hadoop
 
Dlaczego Commerce staje się coraz bardziej „Smarter”?
 Dlaczego Commerce staje się coraz bardziej „Smarter”?  Dlaczego Commerce staje się coraz bardziej „Smarter”?
Dlaczego Commerce staje się coraz bardziej „Smarter”?
 
Wyjdź z kiosku – dystrybucja treści w sieci
Wyjdź z kiosku – dystrybucja treści w sieciWyjdź z kiosku – dystrybucja treści w sieci
Wyjdź z kiosku – dystrybucja treści w sieci
 
W poszukiwaniu procesu doskonałego. Wdrożenie Scruma, Continuous Integrations...
W poszukiwaniu procesu doskonałego. Wdrożenie Scruma, Continuous Integrations...W poszukiwaniu procesu doskonałego. Wdrożenie Scruma, Continuous Integrations...
W poszukiwaniu procesu doskonałego. Wdrożenie Scruma, Continuous Integrations...
 
Learn you some rx for the greater good
Learn you some rx for the greater goodLearn you some rx for the greater good
Learn you some rx for the greater good
 
Jak udokumentować bazę danych
Jak udokumentować bazę danychJak udokumentować bazę danych
Jak udokumentować bazę danych
 
HTTPS bez wymówek
HTTPS bez wymówekHTTPS bez wymówek
HTTPS bez wymówek
 
Inwestowanie w technologie mobilne z punktu widzenia funduszu VC
 Inwestowanie w technologie mobilne z punktu widzenia funduszu VC Inwestowanie w technologie mobilne z punktu widzenia funduszu VC
Inwestowanie w technologie mobilne z punktu widzenia funduszu VC
 
Współpraca w sieci. Budowanie marki poprzez social media
Współpraca w sieci. Budowanie marki poprzez social mediaWspółpraca w sieci. Budowanie marki poprzez social media
Współpraca w sieci. Budowanie marki poprzez social media
 
Wprowadzenie do knockout.js
Wprowadzenie do knockout.jsWprowadzenie do knockout.js
Wprowadzenie do knockout.js
 
ORM - tuningujemy podejście do mapowania
ORM - tuningujemy podejście do mapowaniaORM - tuningujemy podejście do mapowania
ORM - tuningujemy podejście do mapowania
 

Similar to Łukasz Spandel – Atena – JavaScript rośnie w siłę – najnowsze trendy w tworzeniu dynamicznych aplikacji internetowych

RIA - przyszłość aplikacji internetowych
RIA - przyszłość aplikacji internetowychRIA - przyszłość aplikacji internetowych
RIA - przyszłość aplikacji internetowychcree8tive
 
Delphi 8 .NET. Kompendium programisty
Delphi 8 .NET. Kompendium programistyDelphi 8 .NET. Kompendium programisty
Delphi 8 .NET. Kompendium programistyWydawnictwo Helion
 
Extjs & netzke
Extjs & netzkeExtjs & netzke
Extjs & netzkeGaldoMedia
 
Współdzielenie kodu aplikacji Windows Phone i Windows 8
Współdzielenie kodu aplikacji Windows Phone i Windows 8Współdzielenie kodu aplikacji Windows Phone i Windows 8
Współdzielenie kodu aplikacji Windows Phone i Windows 8Bartlomiej Zass
 
Microsoft Visual Basic .NET 2003. Księga eksperta
Microsoft Visual Basic .NET 2003. Księga ekspertaMicrosoft Visual Basic .NET 2003. Księga eksperta
Microsoft Visual Basic .NET 2003. Księga ekspertaWydawnictwo Helion
 
ASP.NET 2.0. Projektowanie aplikacji internetowych
ASP.NET 2.0. Projektowanie aplikacji internetowychASP.NET 2.0. Projektowanie aplikacji internetowych
ASP.NET 2.0. Projektowanie aplikacji internetowychWydawnictwo Helion
 
Aplikacje internetowe (2010)
Aplikacje internetowe (2010)Aplikacje internetowe (2010)
Aplikacje internetowe (2010)Adrian Kalbarczyk
 
Webinar - Podstawy Node.js
Webinar - Podstawy Node.jsWebinar - Podstawy Node.js
Webinar - Podstawy Node.jsWojciech Kaniuka
 
Konferencja Intratic Przyjazny SharePoint, Krzysztof Lis, Paweł Walczewski, N...
Konferencja Intratic Przyjazny SharePoint, Krzysztof Lis, Paweł Walczewski, N...Konferencja Intratic Przyjazny SharePoint, Krzysztof Lis, Paweł Walczewski, N...
Konferencja Intratic Przyjazny SharePoint, Krzysztof Lis, Paweł Walczewski, N...Grupa Unity
 
Konferencja Intratic Przyjazny SharePoint, Krzysztof Lis, Paweł Walczewski - ...
Konferencja Intratic Przyjazny SharePoint, Krzysztof Lis, Paweł Walczewski - ...Konferencja Intratic Przyjazny SharePoint, Krzysztof Lis, Paweł Walczewski - ...
Konferencja Intratic Przyjazny SharePoint, Krzysztof Lis, Paweł Walczewski - ...Intratic
 
Visual Basic .NET. Bazy danych. Księga eksperta
Visual Basic .NET. Bazy danych. Księga ekspertaVisual Basic .NET. Bazy danych. Księga eksperta
Visual Basic .NET. Bazy danych. Księga ekspertaWydawnictwo Helion
 
Cloud computing na bazie Windows Azure, Tomek Kopacz, Microsoft
Cloud computing na bazie Windows Azure, Tomek Kopacz, MicrosoftCloud computing na bazie Windows Azure, Tomek Kopacz, Microsoft
Cloud computing na bazie Windows Azure, Tomek Kopacz, MicrosoftBiznes 2.0
 
Tomasz Kopacz, Cloud computing na bazie Windows Azure
Tomasz Kopacz, Cloud computing na bazie Windows AzureTomasz Kopacz, Cloud computing na bazie Windows Azure
Tomasz Kopacz, Cloud computing na bazie Windows AzureWebhosting.pl
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowychTomasz Borowski
 
Artur Żarski, PHP na Windows
Artur Żarski, PHP na WindowsArtur Żarski, PHP na Windows
Artur Żarski, PHP na WindowsWebhosting.pl
 
(Polish) Integracja i wizualizacja w lumira 2.0 pga
(Polish) Integracja i wizualizacja w lumira 2.0 pga(Polish) Integracja i wizualizacja w lumira 2.0 pga
(Polish) Integracja i wizualizacja w lumira 2.0 pgaMDS ap
 

Similar to Łukasz Spandel – Atena – JavaScript rośnie w siłę – najnowsze trendy w tworzeniu dynamicznych aplikacji internetowych (20)

Projektowanie i programowanie aplikacji nowej generacji
Projektowanie i programowanie aplikacji nowej generacjiProjektowanie i programowanie aplikacji nowej generacji
Projektowanie i programowanie aplikacji nowej generacji
 
RIA - przyszłość aplikacji internetowych
RIA - przyszłość aplikacji internetowychRIA - przyszłość aplikacji internetowych
RIA - przyszłość aplikacji internetowych
 
User Experience – wpływ internetu na aplikacje enterprise - Netcamp #14
User Experience – wpływ internetu na aplikacje enterprise - Netcamp #14User Experience – wpływ internetu na aplikacje enterprise - Netcamp #14
User Experience – wpływ internetu na aplikacje enterprise - Netcamp #14
 
Prezentacja Ifs
Prezentacja IfsPrezentacja Ifs
Prezentacja Ifs
 
Prezentacja Ifs
Prezentacja IfsPrezentacja Ifs
Prezentacja Ifs
 
Delphi 8 .NET. Kompendium programisty
Delphi 8 .NET. Kompendium programistyDelphi 8 .NET. Kompendium programisty
Delphi 8 .NET. Kompendium programisty
 
Extjs & netzke
Extjs & netzkeExtjs & netzke
Extjs & netzke
 
Współdzielenie kodu aplikacji Windows Phone i Windows 8
Współdzielenie kodu aplikacji Windows Phone i Windows 8Współdzielenie kodu aplikacji Windows Phone i Windows 8
Współdzielenie kodu aplikacji Windows Phone i Windows 8
 
Microsoft Visual Basic .NET 2003. Księga eksperta
Microsoft Visual Basic .NET 2003. Księga ekspertaMicrosoft Visual Basic .NET 2003. Księga eksperta
Microsoft Visual Basic .NET 2003. Księga eksperta
 
ASP.NET 2.0. Projektowanie aplikacji internetowych
ASP.NET 2.0. Projektowanie aplikacji internetowychASP.NET 2.0. Projektowanie aplikacji internetowych
ASP.NET 2.0. Projektowanie aplikacji internetowych
 
Aplikacje internetowe (2010)
Aplikacje internetowe (2010)Aplikacje internetowe (2010)
Aplikacje internetowe (2010)
 
Webinar - Podstawy Node.js
Webinar - Podstawy Node.jsWebinar - Podstawy Node.js
Webinar - Podstawy Node.js
 
Konferencja Intratic Przyjazny SharePoint, Krzysztof Lis, Paweł Walczewski, N...
Konferencja Intratic Przyjazny SharePoint, Krzysztof Lis, Paweł Walczewski, N...Konferencja Intratic Przyjazny SharePoint, Krzysztof Lis, Paweł Walczewski, N...
Konferencja Intratic Przyjazny SharePoint, Krzysztof Lis, Paweł Walczewski, N...
 
Konferencja Intratic Przyjazny SharePoint, Krzysztof Lis, Paweł Walczewski - ...
Konferencja Intratic Przyjazny SharePoint, Krzysztof Lis, Paweł Walczewski - ...Konferencja Intratic Przyjazny SharePoint, Krzysztof Lis, Paweł Walczewski - ...
Konferencja Intratic Przyjazny SharePoint, Krzysztof Lis, Paweł Walczewski - ...
 
Visual Basic .NET. Bazy danych. Księga eksperta
Visual Basic .NET. Bazy danych. Księga ekspertaVisual Basic .NET. Bazy danych. Księga eksperta
Visual Basic .NET. Bazy danych. Księga eksperta
 
Cloud computing na bazie Windows Azure, Tomek Kopacz, Microsoft
Cloud computing na bazie Windows Azure, Tomek Kopacz, MicrosoftCloud computing na bazie Windows Azure, Tomek Kopacz, Microsoft
Cloud computing na bazie Windows Azure, Tomek Kopacz, Microsoft
 
Tomasz Kopacz, Cloud computing na bazie Windows Azure
Tomasz Kopacz, Cloud computing na bazie Windows AzureTomasz Kopacz, Cloud computing na bazie Windows Azure
Tomasz Kopacz, Cloud computing na bazie Windows Azure
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowych
 
Artur Żarski, PHP na Windows
Artur Żarski, PHP na WindowsArtur Żarski, PHP na Windows
Artur Żarski, PHP na Windows
 
(Polish) Integracja i wizualizacja w lumira 2.0 pga
(Polish) Integracja i wizualizacja w lumira 2.0 pga(Polish) Integracja i wizualizacja w lumira 2.0 pga
(Polish) Integracja i wizualizacja w lumira 2.0 pga
 

More from 3camp

Ochrona podatnych webaplikacji za pomocą wirtualnych poprawek
Ochrona podatnych webaplikacji za pomocą wirtualnych poprawekOchrona podatnych webaplikacji za pomocą wirtualnych poprawek
Ochrona podatnych webaplikacji za pomocą wirtualnych poprawek3camp
 
No pressure, no diamonds. Rzecz o łamaniu zasad w projektach.
No pressure, no diamonds. Rzecz o łamaniu zasad w projektach.No pressure, no diamonds. Rzecz o łamaniu zasad w projektach.
No pressure, no diamonds. Rzecz o łamaniu zasad w projektach.3camp
 
Wykorzystanie języka Kotlin do aplikacji na platformie Android
Wykorzystanie języka Kotlin do aplikacji na platformie AndroidWykorzystanie języka Kotlin do aplikacji na platformie Android
Wykorzystanie języka Kotlin do aplikacji na platformie Android3camp
 
Google App Engine i Google Play Services w Twoich aplikacjach
Google App Engine i Google Play Services w Twoich aplikacjachGoogle App Engine i Google Play Services w Twoich aplikacjach
Google App Engine i Google Play Services w Twoich aplikacjach3camp
 
Reakcja łańcuchowa, czyli React.js w praktyce
Reakcja łańcuchowa, czyli React.js w praktyceReakcja łańcuchowa, czyli React.js w praktyce
Reakcja łańcuchowa, czyli React.js w praktyce3camp
 
Odtwarzanie multimediów w HTML5, czyli Player przez duże „P”
Odtwarzanie multimediów w HTML5, czyli Player przez duże „P”Odtwarzanie multimediów w HTML5, czyli Player przez duże „P”
Odtwarzanie multimediów w HTML5, czyli Player przez duże „P”3camp
 
AngularJS (nie) nadaje się do dużego projektu
AngularJS (nie) nadaje się do dużego projektuAngularJS (nie) nadaje się do dużego projektu
AngularJS (nie) nadaje się do dużego projektu3camp
 
Przemysław Bartkowiak - Sam ustalasz ile za to zapłacisz – czyli nowy wymiar ...
Przemysław Bartkowiak - Sam ustalasz ile za to zapłacisz – czyli nowy wymiar ...Przemysław Bartkowiak - Sam ustalasz ile za to zapłacisz – czyli nowy wymiar ...
Przemysław Bartkowiak - Sam ustalasz ile za to zapłacisz – czyli nowy wymiar ...3camp
 
Mirek Wąsowicz - Segment jednego, dokąd zmierza marketing online?
Mirek Wąsowicz - Segment jednego, dokąd zmierza marketing online?Mirek Wąsowicz - Segment jednego, dokąd zmierza marketing online?
Mirek Wąsowicz - Segment jednego, dokąd zmierza marketing online?3camp
 
Piotr Macuk, Konfeo.com, Programista i biznes – plusy i minusy własnej działa...
Piotr Macuk, Konfeo.com, Programista i biznes – plusy i minusy własnej działa...Piotr Macuk, Konfeo.com, Programista i biznes – plusy i minusy własnej działa...
Piotr Macuk, Konfeo.com, Programista i biznes – plusy i minusy własnej działa...3camp
 
Marcin Maj, Kainos - QA – wartko, zmiennie i interdyscyplinarnie
Marcin Maj, Kainos - QA – wartko, zmiennie i interdyscyplinarnieMarcin Maj, Kainos - QA – wartko, zmiennie i interdyscyplinarnie
Marcin Maj, Kainos - QA – wartko, zmiennie i interdyscyplinarnie3camp
 
Jak przesiąść się na rower na dwóch kółkach? Od trzyosobowego startupu do spó...
Jak przesiąść się na rower na dwóch kółkach? Od trzyosobowego startupu do spó...Jak przesiąść się na rower na dwóch kółkach? Od trzyosobowego startupu do spó...
Jak przesiąść się na rower na dwóch kółkach? Od trzyosobowego startupu do spó...3camp
 
Łukasz Brzeziński - Jak zarabiać z Wikingami? Czyli monetyzacja portalu inter...
Łukasz Brzeziński - Jak zarabiać z Wikingami? Czyli monetyzacja portalu inter...Łukasz Brzeziński - Jak zarabiać z Wikingami? Czyli monetyzacja portalu inter...
Łukasz Brzeziński - Jak zarabiać z Wikingami? Czyli monetyzacja portalu inter...3camp
 
Marcin Szeląg, InnovationNest, Startup Risk Model
Marcin Szeląg, InnovationNest, Startup Risk ModelMarcin Szeląg, InnovationNest, Startup Risk Model
Marcin Szeląg, InnovationNest, Startup Risk Model3camp
 
JSON, REST API
JSON, REST APIJSON, REST API
JSON, REST API3camp
 
Ostatnia faza produktu: co się dzieję kiedy programista zakończył swoje zadanie
Ostatnia faza produktu: co się dzieję kiedy programista zakończył swoje zadanieOstatnia faza produktu: co się dzieję kiedy programista zakończył swoje zadanie
Ostatnia faza produktu: co się dzieję kiedy programista zakończył swoje zadanie3camp
 
Oculus Rift – zanurzenie w przyszłość
Oculus Rift – zanurzenie w przyszłośćOculus Rift – zanurzenie w przyszłość
Oculus Rift – zanurzenie w przyszłość3camp
 
Druk 3d w służbie medycyny i przemysłu
 Druk 3d w służbie medycyny i przemysłu Druk 3d w służbie medycyny i przemysłu
Druk 3d w służbie medycyny i przemysłu3camp
 
Bitcoin – waluta globalna
Bitcoin – waluta globalnaBitcoin – waluta globalna
Bitcoin – waluta globalna3camp
 
Is social media next waste?
Is social media next waste?Is social media next waste?
Is social media next waste?3camp
 

More from 3camp (20)

Ochrona podatnych webaplikacji za pomocą wirtualnych poprawek
Ochrona podatnych webaplikacji za pomocą wirtualnych poprawekOchrona podatnych webaplikacji za pomocą wirtualnych poprawek
Ochrona podatnych webaplikacji za pomocą wirtualnych poprawek
 
No pressure, no diamonds. Rzecz o łamaniu zasad w projektach.
No pressure, no diamonds. Rzecz o łamaniu zasad w projektach.No pressure, no diamonds. Rzecz o łamaniu zasad w projektach.
No pressure, no diamonds. Rzecz o łamaniu zasad w projektach.
 
Wykorzystanie języka Kotlin do aplikacji na platformie Android
Wykorzystanie języka Kotlin do aplikacji na platformie AndroidWykorzystanie języka Kotlin do aplikacji na platformie Android
Wykorzystanie języka Kotlin do aplikacji na platformie Android
 
Google App Engine i Google Play Services w Twoich aplikacjach
Google App Engine i Google Play Services w Twoich aplikacjachGoogle App Engine i Google Play Services w Twoich aplikacjach
Google App Engine i Google Play Services w Twoich aplikacjach
 
Reakcja łańcuchowa, czyli React.js w praktyce
Reakcja łańcuchowa, czyli React.js w praktyceReakcja łańcuchowa, czyli React.js w praktyce
Reakcja łańcuchowa, czyli React.js w praktyce
 
Odtwarzanie multimediów w HTML5, czyli Player przez duże „P”
Odtwarzanie multimediów w HTML5, czyli Player przez duże „P”Odtwarzanie multimediów w HTML5, czyli Player przez duże „P”
Odtwarzanie multimediów w HTML5, czyli Player przez duże „P”
 
AngularJS (nie) nadaje się do dużego projektu
AngularJS (nie) nadaje się do dużego projektuAngularJS (nie) nadaje się do dużego projektu
AngularJS (nie) nadaje się do dużego projektu
 
Przemysław Bartkowiak - Sam ustalasz ile za to zapłacisz – czyli nowy wymiar ...
Przemysław Bartkowiak - Sam ustalasz ile za to zapłacisz – czyli nowy wymiar ...Przemysław Bartkowiak - Sam ustalasz ile za to zapłacisz – czyli nowy wymiar ...
Przemysław Bartkowiak - Sam ustalasz ile za to zapłacisz – czyli nowy wymiar ...
 
Mirek Wąsowicz - Segment jednego, dokąd zmierza marketing online?
Mirek Wąsowicz - Segment jednego, dokąd zmierza marketing online?Mirek Wąsowicz - Segment jednego, dokąd zmierza marketing online?
Mirek Wąsowicz - Segment jednego, dokąd zmierza marketing online?
 
Piotr Macuk, Konfeo.com, Programista i biznes – plusy i minusy własnej działa...
Piotr Macuk, Konfeo.com, Programista i biznes – plusy i minusy własnej działa...Piotr Macuk, Konfeo.com, Programista i biznes – plusy i minusy własnej działa...
Piotr Macuk, Konfeo.com, Programista i biznes – plusy i minusy własnej działa...
 
Marcin Maj, Kainos - QA – wartko, zmiennie i interdyscyplinarnie
Marcin Maj, Kainos - QA – wartko, zmiennie i interdyscyplinarnieMarcin Maj, Kainos - QA – wartko, zmiennie i interdyscyplinarnie
Marcin Maj, Kainos - QA – wartko, zmiennie i interdyscyplinarnie
 
Jak przesiąść się na rower na dwóch kółkach? Od trzyosobowego startupu do spó...
Jak przesiąść się na rower na dwóch kółkach? Od trzyosobowego startupu do spó...Jak przesiąść się na rower na dwóch kółkach? Od trzyosobowego startupu do spó...
Jak przesiąść się na rower na dwóch kółkach? Od trzyosobowego startupu do spó...
 
Łukasz Brzeziński - Jak zarabiać z Wikingami? Czyli monetyzacja portalu inter...
Łukasz Brzeziński - Jak zarabiać z Wikingami? Czyli monetyzacja portalu inter...Łukasz Brzeziński - Jak zarabiać z Wikingami? Czyli monetyzacja portalu inter...
Łukasz Brzeziński - Jak zarabiać z Wikingami? Czyli monetyzacja portalu inter...
 
Marcin Szeląg, InnovationNest, Startup Risk Model
Marcin Szeląg, InnovationNest, Startup Risk ModelMarcin Szeląg, InnovationNest, Startup Risk Model
Marcin Szeląg, InnovationNest, Startup Risk Model
 
JSON, REST API
JSON, REST APIJSON, REST API
JSON, REST API
 
Ostatnia faza produktu: co się dzieję kiedy programista zakończył swoje zadanie
Ostatnia faza produktu: co się dzieję kiedy programista zakończył swoje zadanieOstatnia faza produktu: co się dzieję kiedy programista zakończył swoje zadanie
Ostatnia faza produktu: co się dzieję kiedy programista zakończył swoje zadanie
 
Oculus Rift – zanurzenie w przyszłość
Oculus Rift – zanurzenie w przyszłośćOculus Rift – zanurzenie w przyszłość
Oculus Rift – zanurzenie w przyszłość
 
Druk 3d w służbie medycyny i przemysłu
 Druk 3d w służbie medycyny i przemysłu Druk 3d w służbie medycyny i przemysłu
Druk 3d w służbie medycyny i przemysłu
 
Bitcoin – waluta globalna
Bitcoin – waluta globalnaBitcoin – waluta globalna
Bitcoin – waluta globalna
 
Is social media next waste?
Is social media next waste?Is social media next waste?
Is social media next waste?
 

Łukasz Spandel – Atena – JavaScript rośnie w siłę – najnowsze trendy w tworzeniu dynamicznych aplikacji internetowych

  • 1. www.atena.pl Łukasz Spandel JAVASCRIPT ROŚNIE W SIŁĘ Atena Usługi Informatyczne i Finansowe S.A.
  • 2. Co chcę przekazać ? www.atena.pl 1 JavaScript jest językiem z przyszłością 2 Jest czymś więcej niż ładnymi animacjami w przeglądarce Zapotrzebowanie na programistów jest duże (488 ofert, C# 3 400, PHP 306, JAVA 612) 4 Można tworzyć złożoną logikę biznesową w JS Firmy informatyczne muszą być świadome zapotrzebowania 5 na kompetencje związane z JavaScriptem 2 Atena Usługi Informatyczne i Finansowe S.A.
  • 3. Popularność www.atena.pl Źródło: Raport z sierpnia 2012, bazujący na danych z github i StackOverflow http://redmonk.com/sogrady/2012/09/12/language-rankings-9-12/ 3 Atena Usługi Informatyczne i Finansowe S.A.
  • 4. Zarzuty www.atena.pl 1 Prymitywny 2 Kłopotliwy w utrzymaniu 3 Kłopotliwy w szukaniu błędów 4 Różnice pomiędzy przeglądarkami 5 Niebezpieczny 6 Asynchroniczny 4 Atena Usługi Informatyczne i Finansowe S.A.
  • 5. Rzeczywistość www.atena.pl Nie ma klas i dziedziczenia, są prototypy i metody konstrukcyjne 1 Organizowanie kodu w biblioteki, 2 namespace’y, moduły, pakiety 3 Chrome, Firebug, Firefly, WebStorm, VisualStudio2012 4 jQuery ukrywa przed nami różnice w przeglądarkach Świadomość niebezpieczeństwa, krytyczny kod wykonywany po 5 stronie serwera Pozwala wykonywanie zadań w tle 6 5 Atena Usługi Informatyczne i Finansowe S.A.
  • 6. Dojrzałość www.atena.pl jQuery Frameworki, ORMy, Szablony Testowanie Wydajność Zarządzanie zależnościami Społeczność Node.JS 6 Atena Usługi Informatyczne i Finansowe S.A.
  • 7. Najpowszechniejszy język programowania www.atena.pl 1 Aplikacje internetowe, w tym tzw. Single Page Sites 2 Aplikacje mobilne (iOS, Android, Windows Phone) 3 Aplikacje desktopowe (Windows 8) 4 Aplikacje serwerowe bazujące na Node.JS Funkcje MapReduce w bazach NoSql (MongoDb, CouchDb, Hadoop, 5 Azure) 6 Aplikacje w telewizorach (SmartTV, GoogleTV) 7 Aplikacje Office 2013 7 Atena Usługi Informatyczne i Finansowe S.A.
  • 8. Główni rywale www.atena.pl CoffeScript TypeScript Dart ■ Zarządzanie należnościami Kompilowany do JavaScriptu ■ Kompilowany do JavaScriptu ■ Język stworzony od nowa, ■ iUpraszcza składnie poprzez procesem windykacji ■ Składnia prawie niezmieniona podobny składniowo do JS ■ Zarządzanie strategią firmy usunięcie nawiasów, średników, ■ Wprowadza silne typowanie ■ Posiada własną VM, niezgodną z ■ itp.. Model obiegu dokumentów ■ Rozszerza JavaScript o klasy i JavaScriptem ■ Zarządzanieklasy i sprzedaży Wprowadza siecią dziedziczenie dziedziczenie, wraz z interfejsami ■ Można go kompilować do JS ■ Organizacja biura zarządzania jest Istnieje relatywnie długo czas i ■ Młody projekt, nie do zastosowań ■ Posiada wiele funkcji stabilny projektami produkcyjnych nowoczesnego języka ■ Architektura korporacyjna programowania m.in.: silne ■ IT Governance typowanie, klasy i dziedziczenie, typy generyczne, kolekcje. ■ Posiada manager pakietów pozwalający importować potrzebne biblioteki ■ Młody projekt, nie do zastosowań produkcyjnych 8 Atena Usługi Informatyczne i Finansowe S.A.
  • 9. Trendy w aplikacjach internetowych www.atena.pl Dynamiczne aplikacje typu „Single Page Site”. Logika prezentacji jest renderowana po stronie klienta. Aplikacje budowane na podobieństwo Aplikacje renderowane po serwerowych, z wykorzystaniem stronie serwera powszechnie znanych praktyk. Tworzenie abstrakcji nad mechanizmem trwałego zapisu danych(Ajax, Webstorage, WebSql) 9 Atena Usługi Informatyczne i Finansowe S.A.
  • 10. Trendy w aplikacjach mobilnych www.atena.pl Tworzenie aplikacji w technologii HTML5, JavaScript i opakowywanie ich w kontenery będące aplikacjami natywnymi dla każdego systemu operacyjnego z osobna. Kontener dostarcza jedno wspólne API dostępu do natywnych metod systemów operacyjnych różnych firm. 10 Atena Usługi Informatyczne i Finansowe S.A.
  • 11. Node.JS, ExpressJS, TowerJS, RailwayJS, Socket.IO www.atena.pl ■ Node.JS jest platformą do pisania aplikacji po stronie serwera. Pozwala napisać prosty serwer http w kilku Aplikacje serwerowe linijkach kodu. ■ ExpressJS, TowerJS, RailwayJS są frameworkami pozwalającymi tworzyć aplikacje MVC ■ Socket.IO pozwala na łatwą implementację komunikacji w czasie rzeczywistym 11 Atena Usługi Informatyczne i Finansowe S.A.
  • 12. Npm www.atena.pl ■ Pozwala zarządzać zależnościami zadeklarowanymi w projekcie Repozytorium pakietów ■ Umożliwia odseparowanie własnego kodu od zewnętrznych bibliotek ■ W repozytorium znajduje się duża ilość open source’owych projektów 12 Atena Usługi Informatyczne i Finansowe S.A.
  • 13. Modernizer www.atena.pl ■ Bardzo mała biblioteka składająca się z testów sprawdzających dostępność poszczególnych funkcji Możliwości przeglądarki w przeglądarce 13 Atena Usługi Informatyczne i Finansowe S.A.
  • 14. PhoneGap www.atena.pl ■ Pozwala na stworzenie aplikacji w HTML5 i JS, która będzie mogła być instalowana na różnych systemach Aplikacje mobilne mobilnych. ■ 14 Atena Usługi Informatyczne i Finansowe S.A.
  • 15. qUnit, Jasmine, Swarm www.atena.pl ■ qUnit pozwala na pisanie prostych testów jednostkowych Testowanie i jakość kodu ■ Jasmine pozwala na pisanie testów behawioralnych ■ Swarm jest systemem rozproszonego testowania aplikacji pod różnymi przeglądarkami w procesie continuous integration 15 Atena Usługi Informatyczne i Finansowe S.A.
  • 16. RequireJS(Asynchronous Module Definition) www.atena.pl Dynamiczne ładowanie ■ RequireJS pozwala na definiowanie zapotrzebowania w kodzie na konkretne pakiety funkcjonalności, zależności zwane modułami. W momencie gdy brakuje zależności, są one pobierane dynamicznie. 16 Atena Usługi Informatyczne i Finansowe S.A.
  • 17. ExtJS, Backbone.JS, Spine, Ember.JS, WinJS, Wakanda www.atena.pl ■ WinJS służy do tworzenia aplikacji pod windows 8 na desktopy i Frameworki po stronie klienta wkrótce na telefony. Współpracuje z API WIN RT. Może bezpośrednio wywoływać kod C# zawarty w aplikacji. ■ ExtJS jest komercyjnym frameworkiem MVC. Posiada obszerną bazę kontrolek i dokumentację. ■ Backbone.JS i Spine to mocno rozbudowane typowe frameworki MVC o podobnej architekturze. Backbone jest starszy i bardziej dopracowany. Obydwa posiadają dużą społeczność. Spine jest napisany w CoffeScript ■ Wakanda to cały stos do tworzenia aplikacji pisanych w całości w JavaScript. Posiada własny framework, serwer, edytor i narzędzia do graficznego modelowania aplikacji. 17 Atena Usługi Informatyczne i Finansowe S.A.
  • 18. AngularJS, KnockoutJS www.atena.pl ■ AngularJS jest stworzonym przez Google dobrze przemyślanym Pojedynek gigantów frameworkiem MVC. Pozwala definiować własne tagi html które po uruchomieniu strony są renderowane z pomocą szablonów. Posiada dwukierunkowe bindowanie danych, dependency injection oraz przestrzenie zmiennych związane ze strukturą widoku. Mocno rozwijany. ■ KnockoutJS wspierany przez Microsoft framework MVVM, domyślnie dołączany do nowych projektów MVC4 w VS2012. Skupia się jedynie na prezentacji i dwu kierunkowym bindowaniu danych. 18 Atena Usługi Informatyczne i Finansowe S.A.
  • 19. www.atena.pl dziękuję za UWAGĘ 19 Atena Usługi Informatyczne i Finansowe S.A.