From Browser Wars to Framework Wars How to survive the next generation of Web development battles. Dr. Michael Evans Codernetic Ltd untangled.
|
|
- Miles Hill
- 5 years ago
- Views:
Transcription
1 From Browser Wars to Framework Wars How to survive the next generation of Web development battles Dr. Michael Evans Codernetic Ltd untangled.io
2 Who Am I?! Worked with Web technologies since 1996 PhD, Patent Lectured for 11 years at University of Reading Worked on these: 2
3 Contents Part 1: The Browser Wars Classic Web Architecture JavaScript Browser Wars 1.0 Browser Wars 2.0 Part 2: The Road to Richer Client-Side Development Client-side Development requirements AJAX JavaScript Libraries Speed Build Tools 3
4 Contents Part 3: The Framework Wars Frameworks vs Libraries AngularJS ReactJS Framework Fatigue Redux and State Management Fighting Fatigue and Staying Sane Part 4: The Future Web ES the new JavaScript Babel and transpilation tomorrow s Web here today Web Assembly - any language inside the browser 4
5 The Classic Web Architecture HTTP Request HTTP Response Client Server 5
6 The Classic Web Architecture Server - Process All The Things! Later, Server-side scripting languages HTTP Request HTTP Response Client Originally CGI Server ASP PHP JSP ColdFusion Perl, etc. 6
7 The Classic Web Architecture Server - Do All The Things! Client - Not so much HTML, and...er... Blink... Marquee HTTP Request HTTP Response maybe... Oh, and forms! Client Rich functionality Connectivity with external systems Database connections Storage Persistence Authentication Session State Server 7
8 Enter JavaScript! The browser needed some functionality JavaScript provided it Designed in 10 days by Brendan Eich for Netscape in May 1995 Object-oriented/functional hybrid Based on Scheme and Self, with a syntax similar to Java Designed to appeal to Java coders Netscape expected JavaScript to be used by hobbyists, and real programmers to use Java 8
9 Early Client-Side Development A Zoo of Plugins Past JavaScript designed to be the glue between islands of functionality Most heavy lifting was still done on the server Java Applets Plugins provided client functionality Adobe Flash DOM (Document Object Model) used to control page elements Macromedia ShockWave ActiveX 9
10 JavaScript, Casualty of the First Browser Wars JavaScript first created in 10 days in 1995 First standardised as ECMAScript in 1997 Next versions of JavaScript came nice and quickly ECMAScript 2: ECMAScript 3: ECMAScript 3.1:
11 IE6 and the Browser Dark Ages Internet Explorer monopolised the browser market IE tied to Windows Microsoft didn t want cross-browser compatibility Or JavaScript ECMAScript 4 was started in 2000 Microsoft had no intention of implementing it fully The standard was never released 11
12 How IE held JavaScript back IE5 used a poorly implemented version of JavaScript 3 So did IE and IE6...and IE7...and IE8! 12
13 Harmony returns JavaScript standards back on track 2000 s ECMAScript 4 was shelved ECMAScript 3.1 standardised and all browsers worked to support it ECMAScript 3.1 renamed ECMAScript 5 That s the JavaScript you know and love today! First developed in 1999 Big browser vendors vowed to work towards a new standard: Harmony a.k.a. ECMAScript 6 a.k.a. ES6 a.k.a. ES2015! 13
14 What broke the deadlock? Competition! 14
15 Browser Wars
16 Part 2: The Road to Richer Client-Side Development How Web Development moved from server to client AJAX JavaScript Libraries Accelerated JavaScript Richer build tools Frameworks ES6 16
17 Requirements for Client-Side App Development What we needed Platform Consistency Build Tools Good Developer tools Testing tools State Management Processing Performance Terse Syntax Server Communication What we got Debugging Tools? JavaScript? Slow and Fat Consistency? alert( debug ); IE6 wasn t even consistent with itself! State Management? State what now? 17
18 AJAX - Asynchronous JavaScript And XML Enabled Web apps to send and receive data asynchronously without a browser reload Doesn t have to be Asynchronous No longer uses XML! First developed by Microsoft in 1998 as an ActiveX object The missing glue between the client and the server Enabled true client-side Web Applications Use became widespread in 2004 E.g. GMail.com, Kayak.com Adopted by other browsers in 1999 Became the XMLHttpRequest object 18
19 JavaScript Libraries Only way to improve JavaScript was with libraries jquery Created in 2006 by John Ressig Provided terse syntax for DOM manipulation Smoothed over browser incompatibilities Made client-side development much easier Prototype, Mootools, Dojo and YUI swiftly followed 19
20 jquery vs the DOM DOM jquery // Get all divs on a page document.getelementsbytagname("div") // Get all divs on a page $("div") // Add Class to element if (el.classlist) el.classlist.add(classname); else el.classname += ' ' + classname; // Add Class to element $(el).addclass(classname); 20
21 Requirements for Client-Side App Development What we needed Platform Consistency Build Tools Good Developer tools Testing tools State Management Processing Performance Terse Syntax Server Communication What we got Debugging Tools? JavaScript? Slow and Less Fat Consistency Firebug Mostly! State Management? Still kept in DOM 21
22 Supercharging the Web with V8 Google launched Chrome on 2nd September 2008 Key innovations: speed, simplicity, security and stability Most important innovations for Web Development: The V8 super-performant JavaScript engine Portable JavaScript Engine 22
23 Accelerating JavaScript Vastly Superior JavaScript Compilation Speed Enabled client to take on much more of an application's processing Forced other browsers to improve their performance Accelerated the transition of Web apps moving from the server to the client 23
24 Better Speed = Better Libraries Increased speed led to better libraries Enabled developers to create richer apps than ever before New Libraries Backbone (2010, Jeremy Ashkenas) Underscore New Templating systems Mustache on JavaScript (2009) Handlebars (2010, Yehuda Katz) Jade (2010, developed for Node) 24
25 Requirements for Client-Side App Development What we needed Platform Consistency Build Tools Good Developer tools Testing tools State Management Processing Performance Terse Syntax Server Communication What we got Debugging Tools? JavaScript? Faster and less Fat Consistency Firebug, Chrome DevTools Mostly! State Management? Still kept in DOM 25
26 Portability V8 wasn t tied to the browser Could be used as a stand-alone high-speed JavaScript engine NodeJS: JavaScript in the server In May 2009, Ryan Dahl used V8 for a radical new server architecture: NodeJS Much lighter than traditional Web server architectures Lets devs write server-side code in JavaScript Enables real-time Web services to be developed More importantly for devs: Node brought Build Tools to the Web 26
27 Build Tools Without Build Tools JavaScript had no compile process No modules Dependency issues Scripts declared manually No unit testing tools How NodeJS Helped The Node CLI Enabled execution of OS-level commands using JavaScript Node Package Manager (npm) Released in 2011 Enabled JavaScript modules to be packaged with their dependencies 27
28 Just some of the Tools now available Build Tools Package Management GruntJS (March 2012) Bower (March 2012) - by Twitter (now dying) WebPack (March 2012) Node's npm - now the de facto standard GulpJS (July 2013) Browserify - uses npm to bundle modules for the Web Module Loaders CommonJS RequireJS SystemJS JSPM - package manager for SystemJS 28
29 Finally...Testing tools! Unit Testing Mocha Chai Sinon Karma Jasmine Testem Tape Jest Mockery End to End Testing Protractor Selenium PhantomJS 29
30 Typical Build Process Manage JavaScript modules Compile SASS/LESS into CSS External Library Version control Split Code Run Unit Testing Generate Source Maps Run Code Linting Uglify Code Import Module Dependencies Minify Code Concatenate Modules Run End to End testing Transpile Code Continuous Deployment 30
31 Requirements for Client-Side App Development What we needed Platform Consistency Build Tools Good Developer tools Testing tools State Management Processing Performance Terse Syntax Server Communication What we got Debugging Tools JavaScript? Fast and Less Fat Consistency Firebug, Chrome DevTools Finally! State Management? Still kept in DOM (uh oh!) 31
32 The JavaScript Build Environment Now one of the richest set of developer tools of any language or platform True desktop-class applications can be written entirely in the browser With the new tools came new Frameworks to take advantage of them 32
33 Part 3: The Frameworks Wars A Web app comprises: Library Does one of these things State Management Communication Something you build with Dependency Injection No opinions on structure DOM manipulation Async call handling Events Something you build on UI Animation Provides application structure you must follow Storage Framework Does all of these things 33
34 Frameworks and the Single Page Application Single Page What? Frameworks have their own router that simulates changing pages Example Frameworks AngularJS (versions 1 and 2) ReactJS and Redux Browser thinks the user is only ever on one single page Ember All communication is via AJAX Knockout Browser s back and forward buttons still work as intended Durandel/Aurelia RX.js and CycleJS State persists across route changes 34
35 AngularJS Developed by Google in 2010 A giant framework for large Single Page Applications Focused on developing largescale apps Declarative presentation syntax Create your own markup HTML-centric Brings JavaScript-backed functionality to declarative HTML components Enhances HTML to support logic 35
36 AngularJS Key Features A complete application framework Testing focused Promises library Testable, mockable AJAX library Two way data binding Dependency Injection Directives Routing 36
37 ReactJS JavaScript-centric Developed by Facebook in 2013 Small library for providing a view of a user s data Brings HTML-based templating into JavaScript components Focused on developing small UI components that are blazing fast Enhances JavaScript to support markup 37
38 ReactJS Key Features Creates a Virtual DOM of components Diffs virtual DOM with real DOM when changes are made Only applies changes to the real DOM Results in blazing fast performance Deliberately minimal Framework-like features provided by the community 38
39 React vs Angular - Fight! AngularJS Full DOM render is triggered whenever bound data changes Dirty checking - every data object checked every time data changes Enables two-way data binding BUT makes it expensive for large or complex sets of data ReactJS Data bound to the virtual DOM Works entirely in Javascript Shallow checking - checks only the identity of a data object for changes React s diff algorithm applies only changed data to the real DOM Only one-way data binding, but extremely fast 39
40 React vs Angular - Fight! AngularJS Pros Huge framework provides everything you need ReactJS Pros Small library Smaller learning curve Isomorphic - Runs on client or server No decision fatigue Cons Large learning curve Cons Decision fatigue Easy to make poor architectural choices and Big Ball of Mud Dozens of routers, stores, communication libraries to choose from Runs only on client Which do you choose? 40
41 Requirements for Client-Side App Development What we needed Platform Consistency Build Tools Good Developer tools Testing tools State Management Processing Performance Terse Syntax Server Communication What we got Debugging Tools JavaScript? Fast and Less Fat Consistency All browsers Finally State Management? Kept...somewhere! 41
42 Redux - a Predictable State Container JavaScript State Management library with minimal API Based on functional programming concepts of Data Flow and function lifting Features Hot Reloading Time Travel Universal App Automatic Undo/Redo Works everywhere Client, Server, Native Framework and library-neutral 42
43 Requirements for Client-Side App Development What we needed Platform Consistency Build Tools Good Developer tools Testing tools State Management Processing Performance Terse Syntax Server Communication What we got Debugging Tools JavaScript? Fast and Less Fat Consistency All browsers Finally State Management? Redux 43
44 Problem: Framework Fatigue Every week a new framework or library emerges Angular 2 Polymer Meteor Immutable Ramda Lodash Bacon Lazy Riot Deku Vue React Multiplies that problem React Stores: Flux Flummox Reflux Fluxor Marty Redux React Routers: React Router React Router5 Redux Router React Forms: React-forms Redux-forms Newforms React-Formly 44
45 45
46 Angular merge all the things! Uses React s concept of the virtual DOM Ember s router Microsoft s TypeScript Telerik s NativeScript ES2015 RX.JS Supports Web Components syntax Works easily with Polymer (another Google Framework!) 46
47 47
48 Fighting Fatigue and Staying Sane Redux manages application state Isn t tied to React Has bindings for many frameworks ES2015 has module management Can create independent exportable modules of functions Combine Redux and ES6 modules for framework-neutral business logic 48
49 Framework-neutral application design Use Redux to manage state Create business logic as set of small functions Export them as separate ES6 modules Use the frameworks and libraries for what they re good at UI Routing Data Binding Communication Keep your business logic and state separate from the framework Ensures business logic portability 49
50 Sane Application Architecture Angular UI Redux State Management Events Framework Routing Controller Data Binding Form Validation Client or Server Business Logic (ES2015 Modules) Data Transformation Communication Calculations 50
51 Sane Application Architecture React UI Redux State Management Events Framework Routing Controller Data Binding Form Validation Client or Server Business Logic (ES2015 Modules) Data Transformation Communication Calculations 51
52 Part 4 - The Future of Web Development ES2015. Here now (sort of!) Transpilation WebAssembly 52
53 Requirements for Client-Side App Development What we needed Platform Consistency Build Tools Good Developer tools Testing tools State Management Processing Performance Terse Syntax Server Communication What we got Debugging Tools JavaScript? Fast and Less Fat Consistency All browsers Finally State Management? Redux 53
54 ES Better Late than Never! ES2015 provides: Terse syntax New features 54
55 ES Terse Syntax Template literals Arrow functions // ES5 var fn = function() { return somefn(); } // ES6 const fn = () => somefn();...spread and...rest operators Destructuring // ES5 function select(options) { var start = options.start 0; var end = options.end -1; var step = options.step 1; } // ES6 function select({ start=0, end=-1, step=1 }){ } 55
56 ES New JavaScript SuperPowers Promises Iterables Modules Generators import * as lib from 'lib'; Tail call optimization Meta-Programming with Proxies Symbols Maps and Sets Classes 56
57 Transpilation - making the future more evenly distributed Standards have always held the Web back Applications and developers drive the need for new standards Standards should encode existing techniques/requirements Standards are always behind the state of the art by definition Problem: How do you use the latest standards when they re not encoded in the browsers? E.g. ES2015, ES2016, ES Answer: Transpilation! 57
58 TranspiWhatNow?! Compilation Transforms source code written in one language into a (very) different language Transpilation Transforms source code written in one language into another (similar) language ES2015 to ES5 TypeScript, CoffeeScript, Dart to ES5 58
59 Transpiling JavaScript with Babel //Put ES2015 in: [1,2,3].map(n => n + 1); // Get ES5 out: [1,2,3].map(function(n) { return n + 1; }); Key Features Transpiles all ES features to ES5 Lets you work with experimental ES features without browser support Translators and polyfills provide missing functionality Transpiles: ES3, ES6, ES7, JSX to ES5 Or create your own plugin! 59
60 Transpiling other languages to JavaScript TypeScript CoffeeScript Dart Flow Elm Java ClojureScript 60
61 JavaScript is the Assembly Language of the Web Why transpile to JavaScript? JavaScript the only language guaranteed to run on all browsers Browsers only have JavaScript compiler JavaScript has no standardised bytecode Each browser uses its own version V8 compiles directly from source code to machine code To run in a browser, a program needs to use JavaScript JavaScript is the Assembly Language of the Web (Scott Hanselman, 2011) 61
62 The Transpiled Web Any Transpileable Language Build Process ES2015/16/17 TypeScript/Elm/Dart Babel Language-Specific C/C++/C#/Rust/Go Transpiler JavaScript Source Browser Browser-specific Bytecode Machine Code 62
63 WebAssembly - the Web s Assembly Language What? A virtual CPU for the Web (Wagner, 2016) Defines a new binary syntax for low-level code How? Browsers JavaScript engines will support the new binary syntax natively WebAssembly compilers compile other languages to this binary syntax Provides a unified compilation target for languages that don t transpile to JavaScript When? Being worked on by Google, Mozilla, Microsoft and WebKit Expected in browsers in
64 The Future Web Any language Build Process ES2015/16/17 TypeScript/Elm/Dart Babel Language-Specific Transpiler JavaScript Source Browser C/C++/Whatever Compiler WebAssembly Browser-specific Bytecode Machine Code 64
65 Features of WebAssembly Multi-threaded support (finally!) Native DOM integration 20x speed-up of code Use any language on any Web page Always compatible with JavaScript Dramatically speed up Web apps Unity in your browser WebAssembly Goal For any language to create performance-critical modules For modules to communicate seamlessly with JavaScript without any change to any existing JavaScript code. 65
66 Summary Web Development hurts Always has Always will Accelerated innovation is never painless Now is the most exciting time to be a Web developer 66
67 Thank you! Questions? 67
68 References S. Hanselman (2011), JavaScript is the Assembly Language of the Web com/blog/javascriptisassemblylanguageforthewebsematicmarkupisdeadcle anvsmachinecodedhtml.aspx B. Eich (2015), L. Wagner (2016) 68
Modern and Responsive Mobile-enabled Web Applications
Available online at www.sciencedirect.com ScienceDirect Procedia Computer Science 110 (2017) 410 415 The 12th International Conference on Future Networks and Communications (FNC-2017) Modern and Responsive
More informationWeb Development for Dinosaurs An Introduction to Modern Web Development
Web Development for Dinosaurs An Introduction to Modern Web Development 1 / 53 Who Am I? John Cleaver Development Team Lead at Factivity, Inc. An Introduction to Modern Web Development - PUG Challenge
More informationArjen de Blok. Senior Technical Consultant bij ICT Groep ( sinds 1995 Programmeren sinds 1990 Technologiën. Links
Arjen de Blok Senior Technical Consultant bij ICT Groep (www.ict.eu) sinds 1995 Programmeren sinds 1990 Technologiën Links Visual C++ met Microsoft Foundation Classes.NET WinForms & WPF Silverlight ASP.NET
More informationJavaScript and MVC Frameworks FRONT-END ENGINEERING
FRONT-END ENGINEERING Introduction & History Introduction JavaScript is an incredible language to learn for anyone interested in getting into programming. It is the only programing language that can run
More informationAdvance Mobile& Web Application development using Angular and Native Script
Advance Mobile& Web Application development using Angular and Native Script Objective:- As the popularity of Node.js continues to grow each day, it is highly likely that you will use it when you are building
More informationAdvanced React JS + Redux Development
Advanced React JS + Redux Development Course code: IJ - 27 Course domain: Software Engineering Number of modules: 1 Duration of the course: 40 astr. hours / 54 study 1 hours Sofia, 2016 Copyright 2003-2016
More informationHigh Performance Single Page Application with Vue.js
High Performance Single Page Application with Vue.js Premise Static HTML and simple web-pages are already a history now. The novel web applications are advanced and do a lots of functionalities. Also,
More informationAngularJS Fundamentals
AngularJS Fundamentals by Jeremy Zerr Blog: http://www.jeremyzerr.com LinkedIn: http://www.linkedin.com/in/jrzerr Twitter: http://www.twitter.com/jrzerr What is AngularJS Open Source Javascript MVC/MVVM
More informationTreating Framework Fatigue With JavaScript
Treating Framework Fatigue With JavaScript Tim Doherty Software Architect /in/timdoherty timdoherty.net ??? Hey, this one looks cool! You May Suffer From Framework Fatigue Symptoms Confusion One-way reactive
More informationChapter 1 - Development Setup of Angular
Chapter 1 - Development Setup of Angular Objectives Key objectives of this chapter Angular Files and Dependencies Node.js Node package manager (npm) package.json Semantic version numbers Installing Angular
More information"Charting the Course... Comprehensive Angular 5. Course Summary
Course Summary Description Comprehensive Angular teaches students the skills and best practices they need to design, build, test, and deploy applications that provide rich end-user experiences similar
More informationP a g e 1. Danish Technological Institute. Scripting and Web Languages Online Course k Scripting and Web Languages
P a g e 1 Online Course k72853 Scripting and Web Languages P a g e 2 Title Estimated Duration (hrs) JsRender Fundamentals 2 Advanced JsRender Features 3 JavaScript SPA: Getting Started with SPA in Visual
More informationTen interesting features of Google s Angular Project
Ten interesting features of Google s Angular Project - 1 Ten interesting features of Google s Angular Project Copyright Clipcode Ltd 2018 All rights reserved Ten interesting features of Google s Angular
More informationFull Stack boot camp
Name Full Stack boot camp Duration (Hours) JavaScript Programming 56 Git 8 Front End Development Basics 24 Typescript 8 React Basics 40 E2E Testing 8 Build & Setup 8 Advanced JavaScript 48 NodeJS 24 Building
More informationChoosing the web s future. Peter-Paul Koch Van Lanschot, 9 February 2017
Choosing the web s future Peter-Paul Koch http://quirksmode.org http://twitter.com/ppk Van Lanschot, 9 February 2017 Four problems 1. Web developers want to emulate native apps, which I think is not possible
More informationTechWatch Report Javascript Libraries and Frameworks
TechWatch Report Javascript Libraries and Frameworks Date: February 2018 Created By: Prateek Vijan, Sanjeevan Biswas Contributors: Vrushali Malushte, Sridatta Pasumarthy, Mayank Kansal, Arindam Nayak Contents
More informationFrontend UI Training. Whats App :
Frontend UI Training Whats App : + 916 667 2961 trainer.subbu@gmail.com What Includes? 1. HTML 5 2. CSS 3 3. SASS 4. JavaScript 5. ES 6/7 6. jquery 7. Bootstrap 8. AJAX / JSON 9. Angular JS 1x 10. Node
More informationModern Web Application Development. Sam Hogarth
Modern Web Application Development Sam Hogarth Some History Early Web Applications Server-side scripting only e.g. PHP/ASP Basic client-side scripts JavaScript/JScript/VBScript Major differences in browser
More informationWelcome. Quick Introductions
AEK Introduction Welcome Quick Introductions "The AEK"? Application Extension Kit Technique for delivering cross-platform application screens via a webview A development framework that provides a responsive
More informationTemplates and Databinding. SWE 432, Fall 2017 Design and Implementation of Software for the Web
Templates and Databinding SWE 432, Fall 2017 Design and Implementation of Software for the Web Today What are templates? What are frontend components? How can I use these with React? 2 What s wrong with
More information"Charting the Course... Comprehensive Angular. Course Summary
Description Course Summary Angular is a powerful client-side JavaScript framework from Google that supports simple, maintainable, responsive, and modular applications. It uses modern web platform capabilities
More informationReact(.js) the Domino Way High-Performance Client for Domino. Knut Herrmann
React(.js) the Domino Way High-Performance Client for Domino Knut Herrmann CollabSphere 2018 Sponsors Knut Herrmann Senior Software Architect Leonso GmbH Notes Domino developer since version 2 Web application
More informationSimple AngularJS thanks to Best Practices
Simple AngularJS thanks to Best Practices Learn AngularJS the easy way Level 100-300 What s this session about? 1. AngularJS can be easy when you understand basic concepts and best practices 2. But it
More informationAngular 4 Syllabus. Module 1: Introduction. Module 2: AngularJS to Angular 4. Module 3: Introduction to Typescript
Angular 4 Syllabus Module 1: Introduction Course Objectives Course Outline What is Angular Why use Angular Module 2: AngularJS to Angular 4 What s Changed Semantic Versioning Module 3: Introduction to
More informationCourse Outline. ProTech Professional Technical Services, Inc. Comprehensive Angular 7 Course Summary. Description
Course Summary Description Use Angular 7 to easily build web applications that interacts with the user by dynamically rewriting the current page rather than loading entire new pages from a server. Learn
More informationIs your JavaScript ready for the Enterprise? What does that even mean?
Is your JavaScript ready for the Enterprise? What does that even mean? John JB Brock Senior Principal Product Manager Oracle Tools and Frameworks June 29, 2017 Safe Harbor Statement The following is intended
More informationDeveloping Ajax Web Apps with GWT. Session I
Developing Ajax Web Apps with GWT Session I Contents Introduction Traditional Web RIAs Emergence of Ajax Ajax ( GWT ) Google Web Toolkit Installing and Setting up GWT in Eclipse The Project Structure Running
More informationDECOUPLING PATTERNS, SERVICES AND CREATING AN ENTERPRISE LEVEL EDITORIAL EXPERIENCE
DECOUPLING PATTERNS, SERVICES AND CREATING AN ENTERPRISE LEVEL EDITORIAL EXPERIENCE Who we are and Why we are here? Saurabh Chugh Started Drupal journey in 2010 with Drupal 6, long journey with Drupal
More information"Charting the Course... Comprehensive Angular 6 Course Summary
Course Summary Description Build applications with the user experience of a desktop application and the ease of deployment of a web application using Angular. Start from scratch by learning the JavaScript
More informationEvolution of the "Web
Evolution of the "Web App" @HenrikJoreteg @Hoarse_JS THIS USED TO BE SIMPLE! 1. WRITE SOME HTML 2. LAY IT OUT WITH FRAMES OR TABLES 3. FTP IT TO A SERVER! 4. BAM! CONGRATULATIONS, YOU RE A WEB DEVELOPER!
More informationWeb 2.0 Käyttöliittymätekniikat
Web 2.0 Käyttöliittymätekniikat ELKOM 07 Sami Ekblad Projektipäällikkö Oy IT Mill Ltd What is Web 2.0? Social side: user generated contents: comments, opinions, images, users own the data The Long Tail:
More informationGetting Started with ReactJS
Getting Started with ReactJS By Juned Laliwala About this ReactJS e-book. Basic Understanding of ReactJS Concept of JSX Use of Refs and Keys Practical Demonstrations Animation in ReactJS @2016 Attune World
More informationJavaScript Fundamentals_
JavaScript Fundamentals_ HackerYou Course Syllabus CLASS 1 Intro to JavaScript Welcome to JavaScript Fundamentals! Today we ll go over what programming languages are, JavaScript syntax, variables, and
More informationWebStorm, intelligent IDE for JavaScript development
, intelligent IDE for JavaScript development JetBrains is a powerful Integrated development environment (IDE) built specifically for JavaScript developers. How does match up against competing tools? Product
More informationWebAssembly. neither Web nor Assembly, but Revolutionary
WebAssembly neither Web nor Assembly, but Revolutionary The WebAssembly revolution has begun Jay Phelps Chief Software Architect previously Support, Dev Rel, Staff Augmentation, Mentorship, and more www.thisdot.co
More informationOne language to rule them all: TypeScript. Gil Fink CEO and Senior Consultant, sparxys
One language to rule them all: TypeScript Gil Fink CEO and Senior Consultant, sparxys About Me sparxys CEO and Senior consultant Microsoft MVP in the last 8 years Pro Single Page Application Development
More informationJavaScript: the language of browser interactions. Claudia Hauff TI1506: Web and Database Technology
JavaScript: the language of browser interactions Claudia Hauff TI1506: Web and Database Technology ti1506-ewi@tudelft.nl Densest Web lecture of this course. Coding takes time. Be friendly with Codecademy
More informationVue.js Developer friendly, Fast and Versatile
.consulting.solutions.partnership Vue.js Developer friendly, Fast and Versatile Alexander Schwartz, Principal IT Consultant Javaland 2018 Brühl (DE) March 2018 Vue.js developer friendly, fast and versatile
More informationCS312: Programming Languages. Lecture 21: JavaScript
CS312: Programming Languages Lecture 21: JavaScript Thomas Dillig Thomas Dillig, CS312: Programming Languages Lecture 21: JavaScript 1/25 Why Discuss JavaScript? JavaScript is very widely used and growing
More informationInternational Research Journal of Engineering and Technology (IRJET) e-issn: Volume: 05 Issue: 06 June p-issn:
Polymer JavaScript Shabnam Shaikh 1, Lavina Jadhav 2 1Student, Dept. of Institute of Computer Science, MET College, Maharashtra, India 2Professor, Dept. of Institute of Computer Science, MET College, Maharashtra,
More informationAJAX: Rich Internet Applications
AJAX: Rich Internet Applications Web Programming Uta Priss ZELL, Ostfalia University 2013 Web Programming AJAX Slide 1/27 Outline Rich Internet Applications AJAX AJAX example Conclusion More AJAX Search
More informationAngular 2 and TypeScript Web Application Development
Angular 2 and TypeScript Web Application Development Course code: IJ -19 Course domain: Software Engineering Number of modules: 1 Duration of the course: 40 study 1 hours Sofia, 2016 Copyright 2003-2016
More informationWhy Discuss JavaScript? CS312: Programming Languages. Lecture 21: JavaScript. JavaScript Target. What s a Scripting Language?
Why Discuss JavaScript? CS312: Programming Languages Lecture 21: JavaScript Thomas Dillig JavaScript is very widely used and growing Any AJAX application heavily relies on JavaScript JavaScript also has
More informationAngular 2: What s new? Jonas Bandi, IvoryCode GmbH
Angular 2: What s new? Jonas Bandi, IvoryCode GmbH Once upon a time the world was peacefully creating applications with AngularJS but change was lurking in the maze of a mailing list https://groups.google.com/forum/#!search/misko$20hevery$20may$2022$202013/polymer-dev/4rsyakmbtek/uyny3900wpij
More informationAngular 2 Programming
Course Overview Angular 2 is the next iteration of the AngularJS framework. It promises better performance. It uses TypeScript programming language for type safe programming. Overall you should see better
More informationJavaScript Rd2. -Kyle Simpson, You Don t Know JS
JavaScript Rd2 [JavaScript] is simultaneously a simple, easy-to-use language that has broad appeal, and a complex and nuanced collection of language mechanics which without careful study will elude the
More information20480C: Programming in HTML5 with JavaScript and CSS3. Course Code: 20480C; Duration: 5 days; Instructor-led. JavaScript code.
20480C: Programming in HTML5 with JavaScript and CSS3 Course Code: 20480C; Duration: 5 days; Instructor-led WHAT YOU WILL LEARN This course provides an introduction to HTML5, CSS3, and JavaScript. This
More informationFuture Web App Technologies
Future Web App Technologies Mendel Rosenblum MEAN software stack Stack works but not the final say in web app technologies Angular.js Browser-side JavaScript framework HTML Templates with two-way binding
More informationComprehensive AngularJS Programming (5 Days)
www.peaklearningllc.com S103 Comprehensive AngularJS Programming (5 Days) The AngularJS framework augments applications with the "model-view-controller" pattern which makes applications easier to develop
More informationLecture 8. ReactJS 1 / 24
Lecture 8 ReactJS 1 / 24 Agenda 1. JSX 2. React 3. Redux 2 / 24 JSX 3 / 24 JavaScript + HTML = JSX JSX is a language extension that allows you to write HTML directly into your JavaScript files. Behind
More informationReact & Redux in Hulu. (Morgan Cheng)
React & Redux in Hulu (Morgan Cheng) About Me @morgancheng About Hulu Challenges System Complexity Legacy code in jquery & Backbone UI non-predictable Lack of component isolation Performance Bottleneck
More informationOutline. AJAX for Libraries. Jason A. Clark Head of Digital Access and Web Services Montana State University Libraries
AJAX for Libraries Jason A. Clark Head of Digital Access and Web Services Montana State University Libraries Karen A. Coombs Head of Web Services University of Houston Libraries Outline 1. What you re
More informationSweet Themes Are Made of This: The Magento PWA Studio
Sweet Themes Are Made of This: The Magento PWA Studio James Zetlen Frontend Architect Magento Commerce @JamesZetlen A suite of tools, standards, and top-quality ingredients for building and sharing Progressive
More informationGRITS AJAX & GWT. Trey Roby. GRITS 5/14/09 Roby - 1
AJAX & GWT Trey Roby GRITS 5/14/09 Roby - 1 1 Change The Web is Changing Things we never imagined Central to people s lives Great Opportunity GRITS 5/14/09 Roby - 2 2 A Very Brief History of Computing
More informationMEAP Edition Manning Early Access Program WebAssembly in Action Version 1
MEAP Edition Manning Early Access Program WebAssembly in Action Version 1 Copyright 2018 Manning Publications For more information on this and other Manning titles go to www.manning.com welcome Thank you
More informationIs the Web good enough for my app? François Daoust W3C Workshop HTML5 vs Native by software.brussels 4 December 2014
Is the Web good enough for my app? François Daoust (@tidoust), W3C Workshop HTML5 vs Native by software.brussels 4 December 2014 A short history of the Web App platform Tim Berners Lee Olympic games opening
More informationJavascript. Many examples from Kyle Simpson: Scope and Closures
Javascript Many examples from Kyle Simpson: Scope and Closures What is JavaScript? Not related to Java (except that syntax is C/Java- like) Created by Brendan Eich at Netscape later standardized through
More informationCOPYRIGHTED MATERIAL. Part I: Getting Started. Chapter 1: Introducing Flex 2.0. Chapter 2: Introducing Flex Builder 2.0. Chapter 3: Flex 2.
02671c01.qxd:02671c01 4/20/07 11:24 AM Page 1 Part I: Getting Started Chapter 1: Introducing Flex 2.0 Chapter 2: Introducing Flex Builder 2.0 Chapter 3: Flex 2.0 Basics Chapter 4: Using Flex Builder 2.0
More informationJavaScript: the Big Picture
JavaScript had to look like Java only less so be Java's dumb kid brother or boy-hostage sidekick. Plus, I had to be done in ten days or something worse than JavaScript would have happened.! JavaScript:
More informationAngular 5 vs. React When to Choose Which?
Angular 5 vs. React When to Choose Which? Stephan Rauh Dr. Marius Hofmeister OPITZ CONSULTING Deutschland GmbH OPITZ CONSULTING 2017 OPITZ CONSULTING 2017 Setting the Stage https://upload.wikimedia.org/wikipedia/commons/5/52/summer_solstice_sunrise_over_stonehenge_2005.jpg
More informationScripting. Web Architecture and Information Management [./] Spring 2009 INFO (CCN 42509) Contents
Contents Scripting Contents Web Architecture and Information Management [./] Spring 2009 INFO 190-02 (CCN 42509) Erik Wilde, UC Berkeley School of Information [http://creativecommons.org/licenses/by/3.0/]
More informationFinally JavaScript Is Easy, with Oracle JET! Geertjan Wielenga Product Manager Oracle Developer Tools
Finally JavaScript Is Easy, with Oracle JET! Geertjan Wielenga Product Manager Oracle Developer Tools Oracle JET Customers Across Oracle Include... Internet of Things Mobile Cloud Service Developer
More informationChapter 10 Web-based Information Systems
Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 10 Web-based Information Systems Role of the WWW for IS Initial
More informationFront End Nanodegree Syllabus
Front End Nanodegree Syllabus Build Stunning User Experiences Before You Start You've taken the first step toward becoming a web developer by choosing the Front End Nanodegree program. In order to succeed,
More informationBuilding mobile app using Cordova and AngularJS, common practices. Goran Kopevski
Building mobile app using Cordova and AngularJS, common practices Goran Kopevski Agenda What is cordova? How to choose proper JS framework Building mobile app using Cordova and AngularJS Common fails,
More informationStencil: The Time for Vanilla Web Components has Arrived
Stencil: The Time for Vanilla Web Components has Arrived Gil Fink sparxys CEO @gilfink / www.gilfink.net Typical Application Web Page Design From Design to Implementation Session List Day tabs Component
More informationThe Road to the Native Mobile Web. Kenneth Rohde Christiansen
The Road to the Native Mobile Web Kenneth Rohde Christiansen Kenneth Rohde Christiansen Web Platform Architect at Intel Europe Blink core owner and former active WebKit reviewer Works on Chromium, Crosswalk
More informationWeb Performance in
Web Performance in 2017 with @bighappyface Big thanks to DrupalCon Team Big thanks to you (it s almost a wrap) Please note This session assumes familiarity. I am speaking as if folks are already into this
More informationIntroduction to Using NPM scripts as a Build Tool. 1. 1
Introduction to Using NPM scripts as a Build Tool. @kjy2143 / SK planet 1. 1 1. 2 1. 3 1. 4 Front End Developer in Past 2. 1 2. 2 Front End Developer in 2016 3. 1 3. 2 2016/2017 MUST-KNOW WEB DEVELOPMENT
More informationCredits: Some of the slides are based on material adapted from
1 The Web, revisited WEB 2.0 marco.ronchetti@unitn.it Credits: Some of the slides are based on material adapted from www.telerik.com/documents/telerik_and_ajax.pdf 2 The old web: 1994 HTML pages (hyperlinks)
More informationCodeValue. C ollege. Prerequisites: Basic knowledge of web development and especially JavaScript.
Course Syllabuses Introduction to AngularJS Length: 3 days Prerequisites: Basic knowledge of web development and especially JavaScript. Objectives: Students will learn to take advantage of AngularJS and
More informationLab 1 - Introduction to Angular
Lab 1 - Introduction to Angular In this lab we will build a Hello World style Angular component. The key focus is to learn how to install all the required code and use them from the browser. We wont get
More informationCisco Spark Widgets Technical drill down
DEVNET-1891 Cisco Spark Widgets Technical drill down Adam Weeks, Engineer @CiscoSparkDev Stève Sfartz, API Evangelist @CiscoDevNet Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker
More informationCHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application
BACKBONE.JS Sencha Touch CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application A RapidValue Solutions Whitepaper Author: Pooja Prasad, Technical Lead, RapidValue Solutions Contents Executive
More informationAJAX Workshop. Karen A. Coombs University of Houston Libraries Jason A. Clark Montana State University Libraries
AJAX Workshop Karen A. Coombs University of Houston Libraries Jason A. Clark Montana State University Libraries Outline 1. What you re in for 2. What s AJAX? 3. Why AJAX? 4. Look at some AJAX examples
More informationIntro Winter Semester 2016/17
Practical Course: Web Development Intro Winter Semester 2016/17 Juliane Franze & Tobias Seitz Ludwig-Maximilians-Universität München Practical Course Web Development WS 16/17-01 - 1 Today s Agenda Introduction
More informationTHE PRAGMATIC INTRO TO REACT. Clayton Anderson thebhwgroup.com WEB AND MOBILE APP DEVELOPMENT AUSTIN, TX
THE PRAGMATIC INTRO TO REACT Clayton Anderson thebhwgroup.com WEB AND MOBILE APP DEVELOPMENT AUSTIN, TX REACT "A JavaScript library for building user interfaces" But first... HOW WE GOT HERE OR: A BRIEF
More informationIGME-330. Rich Media Web Application Development I Week 1
IGME-330 Rich Media Web Application Development I Week 1 Developing Rich Media Apps Today s topics Tools we ll use what s the IDE we ll be using? (hint: none) This class is about Rich Media we ll need
More informationRequireJS Javascript Modules for the Browser. By Ben Keith Quoin, Inc.
RequireJS Javascript Modules for the Browser By Ben Keith Quoin, Inc. Traditional Browser JS One global namespace Often inline JS code embedded directly in HTML Many tags with hidden ordering
More informationVisual HTML5. Human Information Interaction for Knowledge Extraction, Interaction, Utilization, Decision making HI-I-KEIUD
Visual HTML5 1 Overview HTML5 Building apps with HTML5 Visual HTML5 Canvas SVG Scalable Vector Graphics WebGL 2D + 3D libraries 2 HTML5 HTML5 to Mobile + Cloud = Java to desktop computing: cross-platform
More informationAJAX Programming Overview. Introduction. Overview
AJAX Programming Overview Introduction Overview In the world of Web programming, AJAX stands for Asynchronous JavaScript and XML, which is a technique for developing more efficient interactive Web applications.
More informationECMAScript 2015 and beyond The Future of JavaScript is Now!
ECMAScript 2015 and beyond The Future of JavaScript is Now! Tom Van Cutsem JS.BE Meetup @tvcutsem Talk Outline Part I: 20 years of JavaScript (or, the long road to ECMAScript 6) Part II: a brief tour of
More informationRich Web Applications in Server-side Java without. Plug-ins or JavaScript
Rich Web Applications in Server-side Java without twitter: #vaadin @joonaslehtinen Plug-ins or JavaScript Joonas Lehtinen, PhD Vaadin Ltd - CEO joonas@vaadin.com ? Vaadin is a UI framework for desktop-like
More informationFront End Nanodegree Syllabus
Front End Nanodegree Syllabus Build Stunning User Experiences Before You Start You've taken the first step toward becoming a web developer by choosing the Front End Nanodegree program. In order to succeed,
More informationUsing JavaScript on Client and Server with Project Phobos
Using JavaScript on Client and Server with Project Phobos Roberto Chinnici Senior Staff Engineer Sun Microsystems, Inc. http://phobos.dev.java.net July 27, 2007 JavaScript in the browser 2 JavaScript 1.x
More informationReactJS and Webpack for Rails
Modern Web Conf 2015 ReactJS and Webpack for Rails Tse-Ching Ho 2015-05-16 @tsechingho 何澤清 紅寶 石商 人 Rubiest 鐵道 工 人 Rails worker 黃碼科技創辦 人 Goldenio founder 生物資訊 Bioinformatics 資料視覺化 Infographics Javascript
More informationReact Not Just Hype!
React Not Just Hype! @mjackson Thriller. @ReactJSTraining reactjs-training.com rackt github.com/rackt - 14 members - 5 teams (owners, routing, redux, a11y, docs) - Not exclusive! This is not a core team.
More informationFront End. Presentation Layer. UI (User Interface) User <==> Data access layer
Angular 2 S1ngS1ng Front End UI (User Interface) User Data access layer Presentation Layer Architecture Conventional VS SPA Angular 1 Framework! Framework! Framework! MVVM (MV*) Modulization Two-way
More informationHTML5 Evolution and Development. Matt Spencer UI & Browser Marketing Manager
HTML5 Evolution and Development Matt Spencer UI & Browser Marketing Manager 1 HTML5 Ratified. finally! After 7 years of development, the HTML5 specification was ratified on 28 th October 14 urce>
More informationPro JavaScript. Development. Coding, Capabilities, and Tooling. Den Odell. Apress"
Pro JavaScript Development Coding, Capabilities, and Tooling Den Odell Apress" Contents J About the Author About the Technical Reviewers Acknowledgments Introduction xv xvii xix xxi Chapter 1: Object-Oriented
More informationCourse 1: Microsoft Professional Orientation: Front-End Web Developer
Course 1: Microsoft Professional Orientation: Front-End Web Developer This orientation course is the first course in the Web Front-End Developer, Microsoft Professional Program curriculum. The orientation
More informationECMAScript 2015 The Future of JavaScript is Now!
ECMAScript 2015 The Future of JavaScript is Now! Tom Van Cutsem SPLASH-I 2015 @tvcutsem Talk Outline Part I: JavaScript s origins, and the long road to ECMAScript 6 Part II: a brief tour of ECMAScript
More informationSample Copy. Not For Distribution.
Angular 2 Interview Questions and Answers With Typescript and Angular 4 i Publishing-in-support-of, EDUCREATION PUBLISHING RZ 94, Sector - 6, Dwarka, New Delhi - 110075 Shubham Vihar, Mangla, Bilaspur,
More informationCourse 1: Microsoft Professional Orientation: Front-End Web Developer
Course 1: Microsoft Professional Orientation: Front-End Web Developer This orientation course is the first course in the Web Front-End Developer, Microsoft Professional Program curriculum. The orientation
More informationJavaScript: Getting Started
coreservlets.com custom onsite training JavaScript: Getting Started Slides 2016 Marty Hall, hall@coreservlets.com For additional materials, please see http://www.coreservlets.com/. The JavaScript tutorial
More informationWebpack. What is Webpack? APPENDIX A. n n n
APPENDIX A n n n Webpack Although Webpack is used throughout the book, the primary focus of the book is on React, so Webpack didn t get a comprehensive treatment. In this Appendix, you will have the chance
More informationHomework 8: Ajax, JSON and Responsive Design Travel and Entertainment Search (Bootstrap/Angular/AJAX/JSON/jQuery /Cloud Exercise)
Homework 8: Ajax, JSON and Responsive Design Travel and Entertainment Search (Bootstrap/Angular/AJAX/JSON/jQuery /Cloud Exercise) 1. Objectives Get familiar with the AJAX and JSON technologies Use a combination
More informationLesson 12: JavaScript and AJAX
Lesson 12: JavaScript and AJAX Objectives Define fundamental AJAX elements and procedures Diagram common interactions among JavaScript, XML and XHTML Identify key XML structures and restrictions in relation
More informationEnterprise Web Development
Enterprise Web Development Yakov Fain, Victor Rasputnis, Anatole Tartakovsky, and Viktor Gamov Beijing Cambridge Farnham Koln Sebastopol Tokyo O'REILLY Table of Contents Preface Introduction xi xxiii Part
More informationComet and WebSocket Web Applications How to Scale Server-Side Event-Driven Scenarios
Comet and WebSocket Web Applications How to Scale Server-Side Event-Driven Scenarios Simone Bordet sbordet@intalio.com 1 Agenda What are Comet web applications? Impacts of Comet web applications WebSocket
More information