Slide 1

Slide 1 text

@maxmaxmaxmax МАКСИМ КЛИМИШИН CTO zakaz.ua Инновации и JavaScript

Slide 2

Slide 2 text

О чем разговор О чем это ‣ В этой презентации не будет кода ‣ О том как JS стал таким, какой сейчас ‣ Почему 10 000 мух не могут ошибаться ‣ Что нас ждет в ближайшем будущем

Slide 3

Slide 3 text

Почему JavaScript? О JS ‣ Повсеместный ‣ Универсальный ‣ Простой ‣ Чувствуешь себя пацаном (чсв++)

Slide 4

Slide 4 text

Хорошо, что есть дерьмо. 10 000 мух не могут ошибаться. Макс Шупбах

Slide 5

Slide 5 text

Немного фактов О JS ‣ Создан был за 10 дней в 1995 году ‣ Microsoft выпустила IE3 с JScript - reverse-engineered версия JavaScript от Netscape ‣ ECMA сделала первую версию ECMAScript

Slide 6

Slide 6 text

Версии движков Brendan Eich CTO at Mozilla, designer of JavaScript

Slide 7

Slide 7 text

Все, что можно написать на JavaScript в конечном итоге будет переписано на JavaScript. Jeff Atwood Software engineer, Stackoverflow co-founder

Slide 8

Slide 8 text

События О JS ‣ Выход jQuery и других фреймворков ‣ Yahoo YUI, ExtJS и тому подобное ‣ Node.js, неблокирующий серверный код ‣ CouchDB/MongoDB/Elasticsearch ‣ Backbone, Ember, Angular.js, React.js т.д.

Slide 9

Slide 9 text

Направления, о которых пойдет речь ‣ Robo-техника ‣ Enterprise ‣ Инновации в браузере ‣ Мутация JavaScript и уход от ограничений ‣ А что дальше?

Slide 10

Slide 10 text

Robots with node.js Инновации

Slide 11

Slide 11 text

Robots with node.js Robo-техника ‣ 7 сентября 2010 года вышел пакет node-serialport, и понеслась ‣ 210 проектов на github на JS, всего – 1362 упоминания node-serialport

Slide 12

Slide 12 text

Robo-техника JS Conf 2011 33% 33% 33% Embedded Server Client JS Conf 2009 100% Source: http://www.slideshare.net/nonken/robotic-javascript

Slide 13

Slide 13 text

Причина по которой node.js удобно использовать для создания прототипов роботов – с его помощью легко создать сложную систему с обратной связью. Chris Williams node-serialport developer

Slide 14

Slide 14 text

Node.js WiFi-Extending Robot 2011, Northeastern University, Boston http://glench.com/make/nodejs-robot/

Slide 15

Slide 15 text

http://glench.com/make/nodejs-robot/

Slide 16

Slide 16 text

Фреймворки Robo-техника ‣ Breakout – prototyping tool for exploring the intersection of the web and the physical world ‣ Johnny-five – Arduino programming framework ‣ Cylon.js – JavaScript framework for robotics, physical computing, and the Internet of Things

Slide 17

Slide 17 text

Enterprise Инновации

Slide 18

Slide 18 text

Enterprise или большие ребята в деле Enterprise ‣ Данные в реальном времени ‣ Инфраструктура OS ‣ Агрегация на событиях ‣ Карты и гео-данные ‣ Визуализация данных и инфографика ‣ Игры

Slide 19

Slide 19 text

Данные в реальном времени Enterprise ‣ Pusher ‣ Lightstreamer ‣ eBay ‣ Linkedin ‣ Uber ‣ The NewYorkTimes

Slide 20

Slide 20 text

Инфраструктура OS Enterprise ‣ Windows 8 ‣ Firefox OS ‣ Ubuntu/Unity Web API ‣ Gnome (Linux) ‣ Chrome OS

Slide 21

Slide 21 text

Агрегация на событиях Enterprise ‣ ql.io – декларативный гейтвей для получения и аггрегации различных HTTP API, сделано в eBay, open source ‣ YQL с node.js ‣ node.io

Slide 22

Slide 22 text

Карты и гео-данные Enterprise ‣ Google maps, Bing Maps etc. ‣ Leaflet

Slide 23

Slide 23 text

Визуализация данных и инфографика Enterprise ‣ D3.js - The NewTorkTimes ‣ BBC ‣ etc.

Slide 24

Slide 24 text

Игры Enterprise Не разбираюсь, но судя по возможностям современных браузеров должно быть много

Slide 25

Slide 25 text

Браузеры Инновации

Slide 26

Slide 26 text

Ключевые инновации Браузеры ‣ WebSockets - данные в реальном времени ‣ WebRTC – p2p передача данных ‣ Canvas, WebGL, AudioAPI ‣ Web Workers ‣ asm.js

Slide 27

Slide 27 text

Мутация JavaScript и уход от ограничений Инновации

Slide 28

Slide 28 text

Мутации языка ECMAScript 6 JS и ограничения ‣ Arrow function (lambda functions) ‣ let/const block scoping, rest function parameters, multiple return values, spread operator etc. ‣ Generators and Iterators ‣ Collections ‣ Modularity, loader API, Class/Subclass ‣ Proxies

Slide 29

Slide 29 text

Мутации языка Смена подходов JS и ограничения ‣ Underscore.js, Lodash, fn.js, bilby.js ‣ Bacon.js, RxJS, Tangle ‣ Angular.js, React.js

Slide 30

Slide 30 text

Ограничения JS и ограничения Благодаря архитектуре JavaScript большую кодовую базу сложно поддерживать. ! Некоторые достигают успеха и у них это получается, но многие создали трансляторы из более строгих языков в JS

Slide 31

Slide 31 text

Сколько языков транслируется в JavaScript? JS и ограничения

Slide 32

Slide 32 text

~ 20 ! JS и ограничения

Slide 33

Slide 33 text

Lisp-о подобные JS и ограничения ‣ ClojureScript ‣ ParenJS ‣ Ki ‣ Wisp

Slide 34

Slide 34 text

python-о подобные JS и ограничения ‣ CoffeeScript ‣ LiteScript ‣ pyjamas – python to javascript ‣ brython – python 3 to JS

Slide 35

Slide 35 text

Java-подобные JS и ограничения ‣ TypeScript ‣ Dart ‣ Liquidscript

Slide 36

Slide 36 text

Прочие JS и ограничения ‣ MoonShine – Lua VM for browser ‣ PureScript –Haskell-like language ‣ LuvvieScript – Erlang dialect ‣ Spock – SCHEME ‣ Haxe ‣ Elm

Slide 37

Slide 37 text

Интеграция JS и ограничения spaghetti – creating large-scale modular JavaScript applications with modules written in different compile-to-JS languages

Slide 38

Slide 38 text

Производительность JS и ограничения ‣ asm.js – an extraordinarily optimizable, low-level subset of JavaScript ‣ V8 JIT ‣ SpiderMonkey

Slide 39

Slide 39 text

А что дальше? Инновации

Slide 40

Slide 40 text

Уже есть Что дальше? ‣ Google's Chrome extensions ‣ Opera's extensions ‣ Apple's Safari 5 extensions ‣ Apple's Dashboard Widgets ‣ Microsoft's Gadgets ‣ Yahoo! Widgets ‣ Google Desktop Gadgets

Slide 41

Slide 41 text

Enterprise software Что дальше? ‣ Adobe's Acrobat and Adobe Reader support JavaScript in PDF files ‣ Tools in the Adobe Creative Suite, including Photoshop, Illustrator, Dreamweaver, and InDesign, allow scripting through JavaScript ‣ Apple's Logic Pro X digital audio workstation (DAW) custom MIDI effects plugins using JavaScript.

Slide 42

Slide 42 text

Enterprise software Что дальше? ‣ The Unity game engine supports a modified version of JavaScript for scripting via Mono ‣ Maxwell Render have ECMA standard based scripting engine for tasks automation ‣ Google Apps Script in Google Spreadsheets allows users to create custom formulas, automate repetitive tasks

Slide 43

Slide 43 text

Image and Vector editors Что дальше? ‣ Векторные редакторы ‣ Редакторы картинок и эффектов ‣ Простые видео редакторы ‣ Интеграции с десктопными приложениями

Slide 44

Slide 44 text

Что будет Что дальше? ‣ Облачные вычисления внутри виджетов (Facebook like button, twitter feed etc.) ‣ Облачные вычисления на базе WebRTC (load distribution) внутри браузера – например, рендеринг 3D сцен. Все что нужно для кластера - зайти на сайт с нескольких компьютеров

Slide 45

Slide 45 text

Что будет Что дальше? ‣ API для поддержки произвольного оборудования из браузера (назовем Custom Hardware API, HwrAPI ) ‣ Как следствие из HwrAPI профессиональные звуковые редакторы, видео редакторы, видео эффекты и т.д. в браузере

Slide 46

Slide 46 text

Что будет Что дальше? ‣ MobileAPI – нативные приложения на JavaScript для смартфонов ‣ Более тесная интеграция с десктопами ‣ Интеграция мобильных устройств с производственным и медицинским оборудованием ‣ Вычисления в мобильном браузере/ нативных приложениях на JS для такого оборудования

Slide 47

Slide 47 text

Будущее node.js powered

Slide 48

Slide 48 text

Спасибо. Thanks! @maxmaxmaxmax