Инновации и JavaScript

1,629 views

Published on


JavaScript и инновации by Max Klymyshyn
Published July 5, 2014 in Technology

Как возникло то, что мы имеем в JavaScript, что уже существует и какие инновации нас ждут в ближайшем будущем

Published in: Technology
  • Be the first to comment

Инновации и JavaScript

  1. 1. @maxmaxmaxmaxМАКСИМ КЛИМИШИН CTO zakaz.ua Инновации и JavaScript
  2. 2. Очемразговор О чем это ‣ Вэтой презентациинебудеткода ‣ Отомкак JSсталтаким,какой сейчас ‣ Почему 10000мухнемогутошибаться ‣ Чтонасждетвближайшембудущем
  3. 3. ПочемуJavaScript? О JS ‣ Повсеместный ‣ Универсальный ‣ Простой ‣ Чувствуешьсебя пацаном(чсв++)
  4. 4. Хорошо,что есть дерьмо. 10 000 мух не могут ошибаться. Макс Шупбах
  5. 5. Немногофактов О JS ‣ Создан был за10днейв 1995 году ‣ MicrosoftвыпустилаIE3 сJScript - reverse-engineeredверсияJavaScriptот Netscape ‣ ECMAсделалапервую версию ECMAScript
  6. 6. Версии движков BrendanEich CTOatMozilla,designerofJavaScript
  7. 7. Все,что можно написать на JavaScript в конечном итоге будет переписано на JavaScript. Jeff Atwood Software engineer,Stackoverflow co-founder
  8. 8. События О JS ‣ ВыходjQueryидругихфреймворков ‣ YahooYUI,ExtJSитомуподобное ‣ Node.js,неблокирующий серверный код ‣ CouchDB/MongoDB/Elasticsearch ‣ Backbone,Ember,Angular.js,React.js т.д.
  9. 9. Направления, о которых пойдет речь ‣ Robo-техника ‣ Enterprise ‣ Инновациив браузере ‣ МутацияJavaScriptиуходот ограничений ‣ Ачтодальше?
  10. 10. Robotswithnode.js Инновации
  11. 11. Robots withnode.js Robo-техника ‣ 7сентября 2010годавышел пакет node-serialport,ипонеслась ‣ 210проектовна githubнаJS, всего – 1362упоминания node-serialport
  12. 12. Robo-техника JS Conf 2011 33% 33% 33% Embedded Server Client JS Conf 2009 100% Source: http://www.slideshare.net/nonken/robotic-javascript
  13. 13. Причина по которой node.js удобно использовать для создания прототипов роботов – с его помощью легко создать сложную систему с обратной связью. Chris Williams node-serialport developer
  14. 14. Node.jsWiFi-ExtendingRobot 2011,NortheasternUniversity,Boston http://glench.com/make/nodejs-robot/
  15. 15. http://glench.com/make/nodejs-robot/
  16. 16. Фреймворки Robo-техника ‣ Breakout –prototypingtoolforexploring the intersectionof the webandthephysical world ‣ Johnny-five–Arduinoprogramming framework ‣ Cylon.js –JavaScriptframeworkfor robotics,physicalcomputing,andthe InternetofThings
  17. 17. Enterprise Инновации
  18. 18. Enterpriseилибольшие ребятавделе Enterprise ‣ Данныевреальномвремени ‣ ИнфраструктураOS ‣ Агрегациянасобытиях ‣ Картыигео-данные ‣ Визуализация данныхи инфографика ‣ Игры
  19. 19. Данныев реальном времени Enterprise ‣ Pusher ‣ Lightstreamer ‣ eBay ‣ Linkedin ‣ Uber ‣ TheNewYorkTimes
  20. 20. ИнфраструктураOS Enterprise ‣ Windows8 ‣ FirefoxOS ‣ Ubuntu/UnityWebAPI ‣ Gnome(Linux) ‣ ChromeOS
  21. 21. Агрегациянасобытиях Enterprise ‣ ql.io– декларативный гейтвей для полученияи аггрегацииразличныхHTTP API,сделано вeBay,opensource ‣ YQLс node.js ‣ node.io
  22. 22. Картыи гео-данные Enterprise ‣ Googlemaps,BingMaps etc. ‣ Leaflet
  23. 23. Визуализацияданныхи инфографика Enterprise ‣ D3.js-TheNewTorkTimes ‣ BBC ‣ etc.
  24. 24. Игры Enterprise Неразбираюсь,носудяпо возможностям современныхбраузеровдолжно быть много
  25. 25. Браузеры Инновации
  26. 26. Ключевыеинновации Браузеры ‣ WebSockets-данныевреальном времени ‣ WebRTC– p2pпередачаданных ‣ Canvas,WebGL,AudioAPI ‣ WebWorkers ‣ asm.js
  27. 27. МутацияJavaScriptи уходотограничений Инновации
  28. 28. Мутацииязыка ECMAScript 6 JS и ограничения ‣ Arrowfunction (lambdafunctions) ‣ let/const blockscoping,restfunctionparameters,multiplereturn values,spreadoperatoretc. ‣ GeneratorsandIterators ‣ Collections ‣ Modularity,loaderAPI,Class/Subclass ‣ Proxies
  29. 29. Мутацииязыка Сменаподходов JS и ограничения ‣ Underscore.js,Lodash,fn.js,bilby.js ‣ Bacon.js,RxJS,Tangle ‣ Angular.js,React.js
  30. 30. Ограничения JS и ограничения БлагодаряархитектуреJavaScript большую кодовуюбазу сложноподдерживать. ! Некоторыедостигают успеха и у них это получается,номногиесоздали трансляторы изболее строгих языков вJS
  31. 31. Сколькоязыков транслируетсявJavaScript? JS и ограничения
  32. 32. ~20! JS и ограничения
  33. 33. Lisp-оподобные JS и ограничения ‣ ClojureScript ‣ ParenJS ‣ Ki ‣ Wisp
  34. 34. python-оподобные JS и ограничения ‣ CoffeeScript ‣ LiteScript ‣ pyjamas–pythontojavascript ‣ brython–python3toJS
  35. 35. Java-подобные JS и ограничения ‣ TypeScript ‣ Dart ‣ Liquidscript
  36. 36. Прочие JS и ограничения ‣ MoonShine–LuaVMforbrowser ‣ PureScript –Haskell-likelanguage ‣ LuvvieScript– Erlangdialect ‣ Spock–SCHEME ‣ Haxe ‣ Elm
  37. 37. Интеграция JS и ограничения spaghetti –creatinglarge-scale modular JavaScript applicationswithmoduleswritten indifferentcompile-to-JSlanguages
  38. 38. Производительность JS и ограничения ‣ asm.js– anextraordinarilyoptimizable,low-levelsubsetof JavaScript ‣ V8JIT ‣ SpiderMonkey
  39. 39. Ачто дальше? Инновации
  40. 40. Ужеесть Что дальше? ‣ Google'sChromeextensions ‣ Opera's extensions ‣ Apple'sSafari 5extensions ‣ Apple'sDashboardWidgets ‣ Microsoft's Gadgets ‣ Yahoo!Widgets ‣ GoogleDesktop Gadgets
  41. 41. Enterprisesoftware Что дальше? ‣ Adobe'sAcrobatandAdobe Reader support JavaScript inPDFfiles ‣ Tools intheAdobeCreative Suite, including Photoshop,Illustrator, Dreamweaver,and InDesign,allow scriptingthroughJavaScript ‣ Apple'sLogicProX digitalaudio workstation(DAW) customMIDIeffects pluginsusingJavaScript.
  42. 42. Enterprisesoftware Что дальше? ‣ TheUnitygameenginesupports a modifiedversionof JavaScript for scriptingviaMono ‣ Maxwell RenderhaveECMAstandard basedscriptingenginefor tasks automation ‣ GoogleAppsScriptinGoogle Spreadsheetsallows usersto create custom formulas,automate repetitive tasks
  43. 43. ImageandVectoreditors Что дальше? ‣ Векторныередакторы ‣ Редакторыкартиноки эффектов ‣ Простыевидеоредакторы ‣ Интеграции сдесктопными приложениями
  44. 44. Чтобудет Что дальше? ‣ Облачныевычисления внутри виджетов(Facebooklike button,twitter feedetc.) ‣ Облачныевычисления набазеWebRTC (loaddistribution) внутрибраузера – например,рендеринг 3Dсцен.Всечто нужнодлякластера-зайти на сайтс несколькихкомпьютеров
  45. 45. Чтобудет Что дальше? ‣ APIдля поддержкипроизвольного оборудованияизбраузера (назовем CustomHardwareAPI,HwrAPI) ‣ КакследствиеизHwrAPI профессиональныезвуковые редакторы,видеоредакторы,видео эффектыи т.д.в браузере
  46. 46. Чтобудет Что дальше? ‣ MobileAPI– нативныеприложения на JavaScriptдлясмартфонов ‣ Болеетеснаяинтеграцияс десктопами ‣ Интеграция мобильныхустройств с производственнымимедицинским оборудованием ‣ Вычисления вмобильном браузере/ нативныхприложенияхна JSдля такогооборудования
  47. 47. Будущее node.js powered
  48. 48. Спасибо. Thanks! @maxmaxmaxmax

×