SlideShare a Scribd company logo
FRONTEND
IN 2015
CLEAR THE DECKS
VIEW ON GITHUB
USER EXPERIENCE
CLIENT EXPERIENCE
DEVELOPER EXPERIENCE
Always bet on JS!
- Brendan Eich
JAVASCRIPT USAGE
2011 2013 2015
None 61.8% 39.6% 35.0%
jQuery 28.3% 54.5% 61.5%
Modernizr 7.2%
Bootstrap 5.9%
W3Techs
INLINE JAVASCRIPT
AJAX (ASYNC)
SINGLE PAGE APPLICATIONS
UNIVERSAL JAVASCRIPT
PICK YOUR POISON
FRAMEWORKS LIBRARIES
FRAMEWORKS
SWISS KNIVES
ANGULARJS
EMBER.JS
BACKBONE.JS
KNOCKOUT.JS
POLYMER
METEOR
<section id="main" ng‐show="todos.length" ng‐cloak> 
  <input id="toggle‐all" type="checkbox" ng‐model="allChecked" 
    ng‐click="markAll(allChecked)"> 
  <label for="toggle‐all">Mark all as complete</label> 
  <ul id="todo‐list"> 
    <li ng‐repeat="todo in todos | filter:statusFilter track by $index" 
      ng‐class="{completed: todo.completed, editing: todo == editedTodo}"> 
      <div class="view"> 
        <input class="toggle" type="checkbox" ng‐model="todo.completed"> 
        <label ng‐dblclick="editTodo(todo)">{{todo.title}}</label> 
        <button class="destroy" ng‐click="removeTodo(todo)"></button> 
      </div> 
      <form ng‐submit="doneEditing(todo)"> 
        <input class="edit" ng‐trim="false" ng‐model="todo.title" 
          ng‐blur="doneEditing(todo)" 
          todo‐escape="revertEditing(todo)" 
          todo‐focus="todo == editedTodo"> 
      </form> 
    </li> 
  </ul> 
</section>
{{#if length}} 
  <footer id="footer"> 
    <span id="todo‐count"><strong>{{remaining.length}}</strong> 
      {{pluralize 'item' remaining.length}} left</span> 
    <ul id="filters"> 
      <li> 
        {{#link‐to "todos.index" activeClass="selected"}}All{{/link‐to}} 
      </li> 
      <li> 
        {{#link‐to "todos.active" activeClass="selected"}}Active{{/link‐to}} 
      </li> 
      <li> 
        {{#link‐to "todos.completed" activeClass="selected"}}Completed{{/link‐to}} 
      </li> 
    </ul> 
    {{#if completed.length}} 
      <button id="clear‐completed" {{action "clearCompleted"}}>Clear completed</button> 
    {{/if}} 
  </footer> 
{{/if}}
<section id="main"> 
  <input id="toggle‐all" type="checkbox"> 
  <label for="toggle‐all">Mark all as complete</label> 
  <ul id="todo‐list"></ul> 
</section> 
// bindings at JavaScript side! 
<section id="main" data‐bind="visible: todos().length"> 
  <input id="toggle‐all" data‐bind="checked: allCompleted" type="checkbox"> 
  <label for="toggle‐all">Mark all as complete</label> 
  <ul id="todo‐list" data‐bind="foreach: filteredTodos"> 
    <li data‐bind="css: { completed: completed, editing: editing }"> 
      <div class="view"> 
        <input class="toggle" data‐bind="checked: completed" type="checkbox"> 
        <label data‐bind="text: title, event: { dblclick: $root.editItem }"></label> 
        <button class="destroy" data‐bind="click: $root.remove"></button> 
      </div> 
      <input class="edit" data‐bind="value: title, valueUpdate: 'afterkeydown', 
        enterKey: $root.saveEditing, escapeKey: $root.cancelEditing, 
        selectAndFocus: editing, event: { blur: $root.stopEditing }"> 
    </li> 
  </ul> 
</section> 
<section id="main" hidden?="{{model.items.length == 0}}"> 
  <input id="toggle‐all" type="checkbox" 
    on‐change="{{toggleAllCompletedAction}}" 
    checked="{{model.allCompleted}}"> 
  <label for="toggle‐all">Mark all as complete</label> 
  <ul id="todo‐list" 
      on‐td‐item‐changed="{{itemChangedAction}}" 
      on‐td‐destroy‐item="{{destroyItemAction}}"> 
    <template repeat="{{model.filtered}}"> 
      <li is="td‐item" item="{{}}"></li> 
    </template> 
  </ul> 
</section>
<section id="main"> 
  <input id="toggle‐all" type="checkbox" 
    {{#unless todos_not_completed}}checked="checked"{{/unless}}>
  <label for="toggle‐all">Mark all as complete</label> 
  <ul id="todo‐list"> 
    {{#each todos}} 
      {{> todo}} 
    {{/each}} 
  </ul> 
</section>
COMPARISON
Framework Description
AngularJS Google backed, full featured, 2.0 in sight
Ember.js Niche, popular with rubists, reached 2.0 recently
Backbone.js Used to be popular, still in use, focus on model
Knockout.js MVVM, niche, focus on data binding
Polymer Web Components
Meteor Both front-end and back-end
LIBRARIESFOR SPECIFIC PROBLEMS
VIEW LIBRARIES
REACT.JS
VUE.JS
RACTIVE.JS
CYCLE.JS
+ 1 000 MORE
OVERVIEW OF REACT
Virtual DOM
Component oriented!
state, props, lifecycle
React Native
react-blessed
CAT COUNTER
I've seen 0 cats
Saw a Cat
import React from "react"; 
import Heading from "../src/heading"; 
export default class CatCounter extends React.Component { 
  constructor(props) { 
    super(props); 
    this.state = { count: 0 }; 
    this.sawCat = this.sawCat.bind(this); 
  } 
  render() { 
    const styles = { 
      padding: 20, 
      background: "black", 
      border: "none", 
      color: "white", 
      fontWeight: "bold", 
      fontSize: "2em" 
    }; 
    return ( 
      <div> 
        <Heading size={5} textColor="black">I've seen {this.state.count} cats</Heading> 
        <button style={styles} type="button" onClick={this.sawCat}>Saw a Cat</button> 
      </div> 
    ); 
  } 
  sawCat() { 
    this.setState({ count: this.state.count + 1 }); 
  } 
} 
// app.jsx 
<section className="main"> 
  <input 
    className="toggle‐all" 
    type="checkbox" 
    onChange={this.toggleAll} 
    checked={activeTodoCount === 0} 
  /> 
  <ul className="todo‐list"> 
    {todoItems} 
  </ul> 
</section>
<section class="main" v‐show="todos.length" v‐cloak> 
  <input class="toggle‐all" type="checkbox" v‐model="allDone"> 
  <ul class="todo‐list"> 
    <li class="todo" v‐repeat="todo: filteredTodos" 
      v‐class="completed: todo.completed, editing: todo == editedTodo"> 
      <div class="view"> 
        <input class="toggle" type="checkbox" v‐model="todo.completed"> 
        <label v‐on="dblclick: editTodo(todo)">{{todo.title}}</label> 
        <button class="destroy" v‐on="click: removeTodo(todo)"></button> 
      </div> 
      <input class="edit" type="text" v‐model="todo.title" 
        v‐todo‐focus="todo == editedTodo" 
        v‐on="blur: doneEdit(todo), keyup: doneEdit(todo) | key 'enter', 
          keyup: cancelEdit(todo) | key 'esc'"> 
    </li> 
  </ul> 
</section>
<section id="main"> 
  <!‐‐ Here, we compare the total number of tasks (`items.length`) with 
  the number of completed tasks (`completedTasks().length`). This calculation 
  happens reactively, so we never need to manually trigger an update. 
  When the `change` event fires on the input, the `toggleAll` event fires 
  on the Ractive instance. ‐‐> 
  <input id="toggle‐all" type="checkbox" on‐change="toggleAll" 
    checked='{{ items.length === completedTasks().length }}'> 
  <label for="toggle‐all">Mark all as complete</label> 
  <ul id="todo‐list"> 
    {{#items:i}} 
      <!‐‐ The {{>item}} partial is defined in the script tag below ‐‐> 
      {{>item}} 
    {{/items}} 
  </ul> 
</section>
function vrenderMainSection(todosData) { 
  let allCompleted = todosData.list.reduce((x, y) => x && y.completed, true); 
  return h('section#main', { 
    style: {'display': todosData.list.length ? '' : 'none'} 
  }, [ 
    h('input#toggle‐all', { 
      type: 'checkbox', 
      checked: allCompleted 
    }), 
    h('ul#todo‐list', todosData.list 
      .filter(todosData.filterFn) 
      .map(todoData => 
        h('todo‐item.todo‐item', { 
          key: todoData.id, 
          todoid: todoData.id, 
          content: todoData.title, 
          completed: todoData.completed 
        }) 
      ) 
    ) 
  ]) 
}
COMPARISON
Library Description
React.js Backed by Facebook, strong ecosystem
Vue.js Niche alternative
Ractive.js Reactive templates by The Guardian
Cycle.js Reactive newcomer
ROUTERS
ROUTERS
react-router - React
reactive-router - React
flow-router - Meteor
router5
Job Trends
Indeed
Job Trends II
Indeed
ARCHITECTURE
THE ART OF WASTING
SPACE
STATIC SITES
DYNAMIC SITES
REST
RELAY/FALCOR
THE GRID
Design is the beauty of
turning constraints into
advantages
- Aza Raskin
npmFOR KEEPING THINGS
TOGETHER
Module Counts
modulecounts.com
182k+ packages and growing fast
Dependency management
Package authoring
Both frontend/backend
package.json
{ 
  "name": "react‐component‐boilerplate", 
  "description": "Boilerplate for React.js components", 
  "author": "Juho Vepsalainen", 
  "version": "0.6.0", 
  "scripts": { 
    "start": "node lib/dev_server.js", 
    "test": "jest && npm run lint", 
    "gh‐pages": "webpack ‐‐colors", 
    "deploy‐gh‐pages": "node ./lib/deploy_gh_pages.js", 
    "dist‐all": "npm run dist && npm run dist‐min", 
    "dist": "webpack ‐‐colors", 
    ... 
  }, 
  "main": "dist‐modules/index.js", 
  "dependencies": {...}, 
  "devDependencies": {...}, 
  ... 
} 
BUILD TOOLS
HARD TO LIVE WITHOUT
1ST GEN.
Make
2ND GEN.
Grunt
Gulp
Broccoli
3RD GEN.
Browserify
Webpack
JSPM
MAKE
PATH  := node_modules/.bin:$(PATH) 
SHELL := /bin/bash 
build/templates.js: templates/*.handlebars 
    mkdir ‐p $(dir $@) 
    handlebars templates/*.handlebars > $@
Building JavaScript projects with Make
module.exports = function(grunt) { 
  grunt.initConfig({ 
    jshint: { 
      files: ['Gruntfile.js', 'src/**/*.js', 'test/**/*.js'], 
      options: { 
        globals: { 
          jQuery: true 
        } 
      } 
    }, 
    watch: { 
      files: ['<%= jshint.files %>'], 
      tasks: ['jshint'] 
    } 
  }); 
  grunt.loadNpmTasks('grunt‐contrib‐jshint'); 
  grunt.loadNpmTasks('grunt‐contrib‐watch'); 
  grunt.registerTask('default', ['jshint']); 
};
Grunt documentation
var gulp = require('gulp'); 
var del = require('del'); 
var paths = { 
    scripts: ['client/js/**/*.coffee', '!client/external/**/*.coffee'] 
}; 
// Not all tasks need to use streams 
// A gulpfile is just another node program and you can use all packages available on npm 
gulp.task('clean', function(cb) { 
  // You can use multiple globbing patterns as you would with `gulp.src` 
  del(['build'], cb); 
}); 
... 
// Rerun the task when a file changes 
gulp.task('watch', function() { 
  gulp.watch(paths.scripts, ['scripts']); 
}); 
// The default task (called when you run `gulp` from cli) 
gulp.task('default', ['watch', 'scripts']); 
Gulp README
... 
// create tree for files in the app folder 
var app = 'app' 
app = pickFiles(app, { 
  srcDir: '/', 
  destDir: 'appkit' // move under appkit namespace 
}) 
app = preprocess(app) 
// create tree for files in the styles folder 
var styles = 'styles' 
styles = pickFiles(styles, { 
  srcDir: '/', 
  destDir: 'appkit' // move under appkit namespace 
}) 
styles = preprocess(styles) 
... 
broccoli-sample-app
browserify index.js ‐o bundle.js 
var webpack = require('webpack'); 
module.exports = { 
  entry: './entry.js', 
  output: { 
    path: __dirname, 
    filename: 'bundle.js' 
  }, 
  module: { 
    loaders: [ 
      { 
        test: /.css$/, 
        loaders: ['style', 'css'] 
      } 
    ] 
  }, 
  plugins: [ 
    new webpack.optimize.UglifyJsPlugin() 
  ] 
};
  <!doctype html> 
  <script src="jspm_packages/system.js"></script> 
  <script src="config.js"></script> 
  <script> 
    System.import('lib/main'); 
  </script>
JSPM - Getting Started Glen Maddern's video tutorial
HTTP2
PRODUCTIVITY
FOR FUN AND PROFIT
CLASSIC
ERA
Ctrl-R
AUTOMATIC
ERA
LiveReload
Browsersync
LIVE
EDITING
React Hot Loader
LiveReactload
CSS PROCESSORS
BECAUSE VANILLA ISN'T
ENOUGH
BEM, OOCSS,
SMACSS
SOLVING CSS WITHIN CSS
SASS, LESS, STYLUS
BETTER LANGUAGES
POSTCSS, CSSNEXT
EXTENSIONS
Deconfusing Pre- and Post-processing
INLINE CSS (REACT)
BACK TO THE FUTURE?
CSS MODULES
ELIMINATES GLOBALS,
MODULARITY++
ES2015, ES2016, ...
VERSION PER YEAR
BABEL
THE FUTURE NOW
JavaScript compiler
JSX support out of box
Easy to set up
See also Google Traceur
altJSALTERNATIVES TO
VANILLA
CoffeeScript
TypeScript
Flow - Gradual typing
And many others
LINTINGTO KEEP BUGS AT BAY
ESLINT
PLUGGABLE LINTING FOR
JAVASCRIPT
CSSLINT
RULES FOR IMPROVING
YOUR CSS
TESTINGTO MAKE THINGS WORK
FOR SURE
SELENIUM
PROTRACTOR
JASMINE
MOCHA
...
WEB COMPONENTS
THE FUTURE?
Fragmentation (Bootstrap for AngularJS, Ember, React, ...)
What if there was only one canonical version of libraries?
Improved reuse, sharing across projects, less waste
CONCLUSION
TO RECAP
Prepare to clear the decks often
A lot to learn but focus pays off
Towards a component based future?
QUESTIONS?
MADE WITH LOVE IN FINLAND BY
JUHO VEPSÄLÄINEN
READ MY BOOK
SURVIVEJS - WEBPACK AND REACT

More Related Content

Viewers also liked

Front end Tips Tricks & Tools
Front end Tips Tricks & ToolsFront end Tips Tricks & Tools
Front end Tips Tricks & Tools
Sandeep Ramgolam
 
Frontend SPOF
Frontend SPOFFrontend SPOF
Frontend SPOF
Patrick Meenan
 
Frontend automation and stability
Frontend automation and stabilityFrontend automation and stability
Frontend automation and stability
Máté Nádasdi
 
Webinar: Front End Web Development - Trendy Web Designs Using HTML5
Webinar: Front End Web Development - Trendy Web Designs Using HTML5Webinar: Front End Web Development - Trendy Web Designs Using HTML5
Webinar: Front End Web Development - Trendy Web Designs Using HTML5
Edureka!
 
Sinau Bareng Frontend Web Development @ DiLo Malang
Sinau Bareng Frontend Web Development @ DiLo MalangSinau Bareng Frontend Web Development @ DiLo Malang
Sinau Bareng Frontend Web Development @ DiLo Malang
Moch. Zamroni
 
Architecting your Frontend
Architecting your FrontendArchitecting your Frontend
Architecting your Frontend
Ruben Teijeiro
 
Grunt js for the Enterprise Vol.1: Frontend Performance with Phantomas
Grunt js for the Enterprise Vol.1: Frontend Performance with PhantomasGrunt js for the Enterprise Vol.1: Frontend Performance with Phantomas
Grunt js for the Enterprise Vol.1: Frontend Performance with Phantomas
David Amend
 
建立前端开发团队 (Front-end Development Environment)
建立前端开发团队 (Front-end Development Environment)建立前端开发团队 (Front-end Development Environment)
建立前端开发团队 (Front-end Development Environment)
Joseph Chiang
 
Wrangling Large Scale Frontend Web Applications
Wrangling Large Scale Frontend Web ApplicationsWrangling Large Scale Frontend Web Applications
Wrangling Large Scale Frontend Web Applications
Ryan Roemer
 
A modern front end development workflow for Magnolia at Atlassian
A modern front end development workflow for Magnolia at AtlassianA modern front end development workflow for Magnolia at Atlassian
A modern front end development workflow for Magnolia at Atlassian
Magnolia
 
How to Build Front-End Web Apps that Scale - FutureJS
How to Build Front-End Web Apps that Scale - FutureJSHow to Build Front-End Web Apps that Scale - FutureJS
How to Build Front-End Web Apps that Scale - FutureJS
Phil Leggetter
 
W3 conf hill-html5-security-realities
W3 conf hill-html5-security-realitiesW3 conf hill-html5-security-realities
W3 conf hill-html5-security-realities
Brad Hill
 
Frontend at Scale - The Tumblr Story
Frontend at Scale - The Tumblr StoryFrontend at Scale - The Tumblr Story
Frontend at Scale - The Tumblr Story
Chris Miller
 
Front End Development Workflow Tools
Front End Development Workflow ToolsFront End Development Workflow Tools
Front End Development Workflow Tools
Ahmed Elmehri
 
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...
Prasid Pathak
 
engage 2015 - Domino App Development - Where should I go now?
engage 2015 - Domino App Development - Where should I go now?engage 2015 - Domino App Development - Where should I go now?
engage 2015 - Domino App Development - Where should I go now?
René Winkelmeyer
 
Front End Development - Beyond Javascript (Robin Cannon)
Front End Development - Beyond Javascript (Robin Cannon)Front End Development - Beyond Javascript (Robin Cannon)
Front End Development - Beyond Javascript (Robin Cannon)
Future Insights
 
Modern front end development
Modern front end developmentModern front end development
Modern front end development
Tomislav Mesić
 
Scaling Front-End Performance - Velocity 2016
Scaling Front-End Performance - Velocity 2016Scaling Front-End Performance - Velocity 2016
Scaling Front-End Performance - Velocity 2016
Patrick Meenan
 
DIGIT Noe 2016 - Overview of front end development today
DIGIT Noe 2016 - Overview of front end development todayDIGIT Noe 2016 - Overview of front end development today
DIGIT Noe 2016 - Overview of front end development today
Bojan Veljanovski
 

Viewers also liked (20)

Front end Tips Tricks & Tools
Front end Tips Tricks & ToolsFront end Tips Tricks & Tools
Front end Tips Tricks & Tools
 
Frontend SPOF
Frontend SPOFFrontend SPOF
Frontend SPOF
 
Frontend automation and stability
Frontend automation and stabilityFrontend automation and stability
Frontend automation and stability
 
Webinar: Front End Web Development - Trendy Web Designs Using HTML5
Webinar: Front End Web Development - Trendy Web Designs Using HTML5Webinar: Front End Web Development - Trendy Web Designs Using HTML5
Webinar: Front End Web Development - Trendy Web Designs Using HTML5
 
Sinau Bareng Frontend Web Development @ DiLo Malang
Sinau Bareng Frontend Web Development @ DiLo MalangSinau Bareng Frontend Web Development @ DiLo Malang
Sinau Bareng Frontend Web Development @ DiLo Malang
 
Architecting your Frontend
Architecting your FrontendArchitecting your Frontend
Architecting your Frontend
 
Grunt js for the Enterprise Vol.1: Frontend Performance with Phantomas
Grunt js for the Enterprise Vol.1: Frontend Performance with PhantomasGrunt js for the Enterprise Vol.1: Frontend Performance with Phantomas
Grunt js for the Enterprise Vol.1: Frontend Performance with Phantomas
 
建立前端开发团队 (Front-end Development Environment)
建立前端开发团队 (Front-end Development Environment)建立前端开发团队 (Front-end Development Environment)
建立前端开发团队 (Front-end Development Environment)
 
Wrangling Large Scale Frontend Web Applications
Wrangling Large Scale Frontend Web ApplicationsWrangling Large Scale Frontend Web Applications
Wrangling Large Scale Frontend Web Applications
 
A modern front end development workflow for Magnolia at Atlassian
A modern front end development workflow for Magnolia at AtlassianA modern front end development workflow for Magnolia at Atlassian
A modern front end development workflow for Magnolia at Atlassian
 
How to Build Front-End Web Apps that Scale - FutureJS
How to Build Front-End Web Apps that Scale - FutureJSHow to Build Front-End Web Apps that Scale - FutureJS
How to Build Front-End Web Apps that Scale - FutureJS
 
W3 conf hill-html5-security-realities
W3 conf hill-html5-security-realitiesW3 conf hill-html5-security-realities
W3 conf hill-html5-security-realities
 
Frontend at Scale - The Tumblr Story
Frontend at Scale - The Tumblr StoryFrontend at Scale - The Tumblr Story
Frontend at Scale - The Tumblr Story
 
Front End Development Workflow Tools
Front End Development Workflow ToolsFront End Development Workflow Tools
Front End Development Workflow Tools
 
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...
 
engage 2015 - Domino App Development - Where should I go now?
engage 2015 - Domino App Development - Where should I go now?engage 2015 - Domino App Development - Where should I go now?
engage 2015 - Domino App Development - Where should I go now?
 
Front End Development - Beyond Javascript (Robin Cannon)
Front End Development - Beyond Javascript (Robin Cannon)Front End Development - Beyond Javascript (Robin Cannon)
Front End Development - Beyond Javascript (Robin Cannon)
 
Modern front end development
Modern front end developmentModern front end development
Modern front end development
 
Scaling Front-End Performance - Velocity 2016
Scaling Front-End Performance - Velocity 2016Scaling Front-End Performance - Velocity 2016
Scaling Front-End Performance - Velocity 2016
 
DIGIT Noe 2016 - Overview of front end development today
DIGIT Noe 2016 - Overview of front end development todayDIGIT Noe 2016 - Overview of front end development today
DIGIT Noe 2016 - Overview of front end development today
 

Similar to TechTalk #85 : Latest Frontend Technologies

Introduction à AngularJS
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJS
Nicolas PENNEC
 
Coding the UI
Coding the UICoding the UI
Coding the UI
Mark Meeker
 
AngularJS for Legacy Apps
AngularJS for Legacy AppsAngularJS for Legacy Apps
AngularJS for Legacy AppsPeter Drinnan
 
Angular js
Angular jsAngular js
Angular js
Geeks Anonymes
 
AngularJS Mobile Warsaw 20-10-2014
AngularJS Mobile Warsaw 20-10-2014AngularJS Mobile Warsaw 20-10-2014
AngularJS Mobile Warsaw 20-10-2014
Dariusz Kalbarczyk
 
Vaadin & Web Components
Vaadin & Web ComponentsVaadin & Web Components
Vaadin & Web Components
Joonas Lehtinen
 
Get MEAN! Node.js and the MEAN stack
Get MEAN!  Node.js and the MEAN stackGet MEAN!  Node.js and the MEAN stack
Get MEAN! Node.js and the MEAN stack
Nicholas McClay
 
StHack 2014 - Mario "@0x6D6172696F" Heiderich - JSMVCOMFG
StHack 2014 - Mario "@0x6D6172696F" Heiderich - JSMVCOMFGStHack 2014 - Mario "@0x6D6172696F" Heiderich - JSMVCOMFG
StHack 2014 - Mario "@0x6D6172696F" Heiderich - JSMVCOMFG
StHack
 
Vaadin Components
Vaadin ComponentsVaadin Components
Vaadin Components
Joonas Lehtinen
 
Helen Zhukova "JS static typing. What and why."
Helen Zhukova "JS static typing. What and why."Helen Zhukova "JS static typing. What and why."
Helen Zhukova "JS static typing. What and why."
OdessaJS Conf
 
How EVERFI Moved from No Automation to Continuous Test Generation in 9 Months
How EVERFI Moved from No Automation to Continuous Test Generation in 9 MonthsHow EVERFI Moved from No Automation to Continuous Test Generation in 9 Months
How EVERFI Moved from No Automation to Continuous Test Generation in 9 Months
Applitools
 
Valentine with AngularJS
Valentine with AngularJSValentine with AngularJS
Valentine with AngularJS
Vidyasagar Machupalli
 
From Web App Model Design to Production with Wakanda
From Web App Model Design to Production with WakandaFrom Web App Model Design to Production with Wakanda
From Web App Model Design to Production with Wakanda
Alexandre Morgaut
 
Javascript
JavascriptJavascript
Javascript
Mayank Bhatt
 
Wt unit 2 ppts client side technology
Wt unit 2 ppts client side technologyWt unit 2 ppts client side technology
Wt unit 2 ppts client side technology
PUNE VIDYARTHI GRIHA'S COLLEGE OF ENGINEERING, NASHIK
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
Software Park Thailand
 
Html5
Html5Html5

Similar to TechTalk #85 : Latest Frontend Technologies (20)

Biwug
BiwugBiwug
Biwug
 
Introduction à AngularJS
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJS
 
Coding the UI
Coding the UICoding the UI
Coding the UI
 
Coding Ui
Coding UiCoding Ui
Coding Ui
 
AngularJS for Legacy Apps
AngularJS for Legacy AppsAngularJS for Legacy Apps
AngularJS for Legacy Apps
 
Angular js
Angular jsAngular js
Angular js
 
AngularJS Mobile Warsaw 20-10-2014
AngularJS Mobile Warsaw 20-10-2014AngularJS Mobile Warsaw 20-10-2014
AngularJS Mobile Warsaw 20-10-2014
 
Vaadin & Web Components
Vaadin & Web ComponentsVaadin & Web Components
Vaadin & Web Components
 
Get MEAN! Node.js and the MEAN stack
Get MEAN!  Node.js and the MEAN stackGet MEAN!  Node.js and the MEAN stack
Get MEAN! Node.js and the MEAN stack
 
StHack 2014 - Mario "@0x6D6172696F" Heiderich - JSMVCOMFG
StHack 2014 - Mario "@0x6D6172696F" Heiderich - JSMVCOMFGStHack 2014 - Mario "@0x6D6172696F" Heiderich - JSMVCOMFG
StHack 2014 - Mario "@0x6D6172696F" Heiderich - JSMVCOMFG
 
Vaadin Components
Vaadin ComponentsVaadin Components
Vaadin Components
 
Helen Zhukova "JS static typing. What and why."
Helen Zhukova "JS static typing. What and why."Helen Zhukova "JS static typing. What and why."
Helen Zhukova "JS static typing. What and why."
 
How EVERFI Moved from No Automation to Continuous Test Generation in 9 Months
How EVERFI Moved from No Automation to Continuous Test Generation in 9 MonthsHow EVERFI Moved from No Automation to Continuous Test Generation in 9 Months
How EVERFI Moved from No Automation to Continuous Test Generation in 9 Months
 
Valentine with AngularJS
Valentine with AngularJSValentine with AngularJS
Valentine with AngularJS
 
From Web App Model Design to Production with Wakanda
From Web App Model Design to Production with WakandaFrom Web App Model Design to Production with Wakanda
From Web App Model Design to Production with Wakanda
 
Javascript
JavascriptJavascript
Javascript
 
Wt unit 2 ppts client side technology
Wt unit 2 ppts client side technologyWt unit 2 ppts client side technology
Wt unit 2 ppts client side technology
 
Wt unit 2 ppts client sied technology
Wt unit 2 ppts client sied technologyWt unit 2 ppts client sied technology
Wt unit 2 ppts client sied technology
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Html5
Html5Html5
Html5
 

More from bincangteknologi

Qiscus enterprice for Hotels
Qiscus enterprice for HotelsQiscus enterprice for Hotels
Qiscus enterprice for Hotels
bincangteknologi
 
TechTalk #70 : REAL PROGRAMMER USE REGEX
TechTalk #70 : REAL PROGRAMMER USE REGEXTechTalk #70 : REAL PROGRAMMER USE REGEX
TechTalk #70 : REAL PROGRAMMER USE REGEX
bincangteknologi
 
TechTalk #69 : How to setup and run laravel apps inside vagrant
TechTalk #69 : How to setup and run laravel apps inside vagrantTechTalk #69 : How to setup and run laravel apps inside vagrant
TechTalk #69 : How to setup and run laravel apps inside vagrant
bincangteknologi
 
TechTalk #67 : Introduction to Ruby and Sinatra
TechTalk #67 : Introduction to Ruby and SinatraTechTalk #67 : Introduction to Ruby and Sinatra
TechTalk #67 : Introduction to Ruby and Sinatra
bincangteknologi
 
Ddd part 2 modelling qiscus
Ddd part 2   modelling qiscusDdd part 2   modelling qiscus
Ddd part 2 modelling qiscus
bincangteknologi
 
Domain-Driven Design: The "What" and the "Why"
Domain-Driven Design: The "What" and the "Why"Domain-Driven Design: The "What" and the "Why"
Domain-Driven Design: The "What" and the "Why"
bincangteknologi
 
Arduino + Android
Arduino + AndroidArduino + Android
Arduino + Android
bincangteknologi
 

More from bincangteknologi (7)

Qiscus enterprice for Hotels
Qiscus enterprice for HotelsQiscus enterprice for Hotels
Qiscus enterprice for Hotels
 
TechTalk #70 : REAL PROGRAMMER USE REGEX
TechTalk #70 : REAL PROGRAMMER USE REGEXTechTalk #70 : REAL PROGRAMMER USE REGEX
TechTalk #70 : REAL PROGRAMMER USE REGEX
 
TechTalk #69 : How to setup and run laravel apps inside vagrant
TechTalk #69 : How to setup and run laravel apps inside vagrantTechTalk #69 : How to setup and run laravel apps inside vagrant
TechTalk #69 : How to setup and run laravel apps inside vagrant
 
TechTalk #67 : Introduction to Ruby and Sinatra
TechTalk #67 : Introduction to Ruby and SinatraTechTalk #67 : Introduction to Ruby and Sinatra
TechTalk #67 : Introduction to Ruby and Sinatra
 
Ddd part 2 modelling qiscus
Ddd part 2   modelling qiscusDdd part 2   modelling qiscus
Ddd part 2 modelling qiscus
 
Domain-Driven Design: The "What" and the "Why"
Domain-Driven Design: The "What" and the "Why"Domain-Driven Design: The "What" and the "Why"
Domain-Driven Design: The "What" and the "Why"
 
Arduino + Android
Arduino + AndroidArduino + Android
Arduino + Android
 

Recently uploaded

Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
Peter Caitens
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
Sharepoint Designs
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
XfilesPro
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
Jelle | Nordend
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
NaapbooksPrivateLimi
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 

Recently uploaded (20)

Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 

TechTalk #85 : Latest Frontend Technologies