SlideShare a Scribd company logo
The State of Modern Web Development
Technologies: An Introduction
Strap yourselves in!
Michael Ahearn MACS CP (October 2015)
Source: http://blog.xebia.com/2014/06/06/state-of-web-development-2014/
The new “full stack”
Source: http://www.100percentjs.com/visualizing-modern-web-development-stack/
Too many choices!!!
There are so many tools, libraries and
frameworks for modern web development out
there now. I've made my decisions on what to
talk about here based on:

Popularity

Peer/community support

Proven and trusted

What I know and have worked with

What job agencies are looking for
What I'll be covering

Presentation technologies – html and css tools
and frameworks

Client-side MVC frameworks

Server-side frameworks

Workflow and efficiency tools and frameworks

Code editors (if there's time)
Presentation technologies

HTML layout frameworks: Bootstrap and
Foundation

CSS precompilers: Less / Sass

Templating libraries: e.g. Handlebars
Bootstrap or Foundation?

“Bootstrap is the most popular HTML, CSS, and JS
framework for developing responsive, mobile first
projects on the web.” Source: http://getbootstrap.com

Foundation say it is “the most advanced responsive
front-end framework in the world.” Source:
http://foundation.zurb.com/
Very hard to compare them. Both use grid system.
Foundation seems to be easier to customise, but
Bootstrap seems to be a bit more popular.
CSS Preprocessors
LESS (less css): http://lesscss.org/
LESS extends CSS with dynamic behaviour such as variables, mixins, operations and
functions. LESS runs on both the server-side (with Node.js and Rhino) or client-side
(modern browsers only).
SASS (Syntactically Awesome Stylesheets):
http://sass-lang.com/
$serif-font-stack: "Georgia", "Times New Roman", serif
$monospace-font-stack: "Cousin", "Courier"
body
font: normal 18px/22px $serif-font-stack
pre, code
font: 600 bold 18px/22px $monospace-font-stack
Templating tools
Handlebars example:
Source: http://jsfiddle.net/aybalasubramanian/N2b5M/1/
<script id="some-template" type="text/x-handlebars-template">
<tbody>
{{#users}}
<tr><td>{{fullName person}}</td>
<td>{{jobTitle}}</td>
<td><a href="https://twitter.com/
{{twitter}}">@{{twitter}}</a></td>
</tr>
{{/users}}
</tbody>
</script>
Client-side MVC frameworks
Backbone.js http://backbonejs.org/
Angular.js https://angularjs.org/ (Google)
Ember.js http://emberjs.com/
Some Angular.js concepts

Directives: (e.g. ngApp, ngController, ngModel,
ngRepeat)

The scope object ($scope)

Two-way data binding

Dependency injection
Server-side

Node.js: http://nodejs.org

Express.js: http://expressjs.com/

MongoDB: https://www.mongodb.org/
https://docs.mongodb.org/manual/core/introduction/
Tools for efficiency

npm (Node package manager). With node installed, can
run npm at the command line to fetch available packages from
repositories such as github and other remote servers
https://docs.npmjs.com/

Bower: like npm but for the client-side http://bower.io/

Require.js: a JavaScript module loader
http://requirejs.org/

Grunt: the JavaScript task runner http://gruntjs.com/
npm
Once you have node installed, you can now use the
Node package manager to install other software.
$ npm install -g bower
This fetches & installs the package bower.js, globally.
If you issue this command from inside your project root
folder:
$ npm install express
express.js will be installed in a folder called
node_modules
There are many options you can use with the npm
command
Bower
Works similar to npm, but you can use it for
packages you use on the client, such as jquery,
angular, underscore, handlebars etc.
From your project root folder, if you issue the
command:
$ bower install jquery
Bower will fetch & install jquery.js inside a folder
called bower_components
Require.js
Firstly a preamble to why we use require.js:
JavaScript modules and AMD (asynchronous
module definition).
Modules are packages of code. Require.js is a
tool used to load these modules in the
sequence in which we need them in our app.
Get it at: http://requirejs.org/
Why require.js?
The Problem:

Web sites are turning into Web apps

Code complexity grows as the site gets bigger

Assembly gets harder

Developer wants discrete JS files/modules

Deployment wants optimized code in just one or
a few HTTP calls
Why require.js?
The Solution:

Some sort of #include/import/require

ability to load nested dependencies

ease of use for developer but then backed by
an optimization tool that helps deployment
Source: http://requirejs.org/docs/why.html
Grunt.js
Grunt is defined as a “task runner”.
Basically, it can automate all the tasks you routinely do
with all projects, in order to deploy your app, e.g.:

Convert less or sass files to css

Convert CoffeeScript or TypeScript to js

Run jshint on your JavaScript

Run tests

Minify and concatenate JS code – reducing the number
of script tags in the html
CoffeeScript:
http://coffeescript.org/
TypeScript: (Microsoft – but open-source)
http://www.typescriptlang.org/
Code Editors

Sublime text ($70 US)

Adobe Brackets (open source)

Github Atom (open source)

Microsoft Visual Studio
Brackets
Pros:

Free, open-source, cross platform

Clean, modern UI. Ability to split panes

Live preview (big bonus!)

Lots of plugins to expand it's capabilities

“Expand” plugin allows you to work with PSD files (it is
made by Adobe after all!)
Cons:

Tabs on the left rather than top (not that important)
Atom
https://atom.io/
Pros:

Free, open source (MIT license), cross-platform

Hackable, customisable (big community involvement)

Multiple selections, cursors (huge efficiency)

Integration with Github
Resources
Stackoverflow: (where you get answers to any
dev question, from the experts, and it's fully
peer-rated – evidence-based)
JavaScript Weekly: http://javascriptweekly.com/
Ng Newsletter:
http://www.ng-newsletter.com/posts/

More Related Content

PDF
How to Create your Own Exchange Compatible Backend
PDF
Inside OpenChange scalable architecture
PDF
Migrate to Drupal 8
PPTX
Cummingsdceluna2012
PDF
RESTful Web Services in Drupal7
PDF
Salesforce CLI Cheat Sheet
PPTX
ASP.NET WEB API
PDF
REST based web applications with Spring 3
How to Create your Own Exchange Compatible Backend
Inside OpenChange scalable architecture
Migrate to Drupal 8
Cummingsdceluna2012
RESTful Web Services in Drupal7
Salesforce CLI Cheat Sheet
ASP.NET WEB API
REST based web applications with Spring 3

What's hot (16)

PDF
Consuming RESTful services in PHP
PPTX
Drupal 8 Deep Dive: What It Means for Developers Now that REST Is in Core
PPTX
REST in Peace
PDF
Spout - Building a RESTful web app with Angular.js and BEAR.Sunday
PDF
your browser, my storage
ODP
Gradle: The Build System you have been waiting for!
PPTX
Android and REST
PDF
New PHP Exploitation Techniques
PPT
Using Java to implement RESTful Web Services: JAX-RS
PDF
NSManchester - Restofire - 10 Feb
PDF
qewd-ripple: The Ripple OSI Middle Tier
ODP
REST API Laravel
PDF
Get started with Developing Frameworks in Go on Apache Mesos
PPT
Building dynamic websites with Mod perl and apache
PDF
Rest with Spring
PDF
Telosys project booster Paris Open Source Summit 2019
Consuming RESTful services in PHP
Drupal 8 Deep Dive: What It Means for Developers Now that REST Is in Core
REST in Peace
Spout - Building a RESTful web app with Angular.js and BEAR.Sunday
your browser, my storage
Gradle: The Build System you have been waiting for!
Android and REST
New PHP Exploitation Techniques
Using Java to implement RESTful Web Services: JAX-RS
NSManchester - Restofire - 10 Feb
qewd-ripple: The Ripple OSI Middle Tier
REST API Laravel
Get started with Developing Frameworks in Go on Apache Mesos
Building dynamic websites with Mod perl and apache
Rest with Spring
Telosys project booster Paris Open Source Summit 2019
Ad

Viewers also liked (14)

PDF
THE HUNTED
PPTX
Cuidados del paciente donante
PPT
L’importance de l’étude d’une langue étrangère
PPTX
Master Data Management Services for PM
PPT
учительська презентація з теми сучасна молодь
PPTX
my profile
PPTX
Т.Г.Шевченко і Дніпропетровськ
PPT
учнівська презентація Jeunes, qui êtes vous
PPTX
intoxicacion organofosforados Resumen de estudio 2015
PDF
Mazaher Jalilzadeh
PPT
2 servants of one master
PPT
Власний досвід
DOCX
JARenetiFullCV21December2015
PDF
Gisela Colon Sculpture DDansby
THE HUNTED
Cuidados del paciente donante
L’importance de l’étude d’une langue étrangère
Master Data Management Services for PM
учительська презентація з теми сучасна молодь
my profile
Т.Г.Шевченко і Дніпропетровськ
учнівська презентація Jeunes, qui êtes vous
intoxicacion organofosforados Resumen de estudio 2015
Mazaher Jalilzadeh
2 servants of one master
Власний досвід
JARenetiFullCV21December2015
Gisela Colon Sculpture DDansby
Ad

Similar to State of modern web technologies: an introduction (20)

PDF
Intro to mobile web application development
PDF
Making Of PHP Based Web Application
PPT
Decoding the Web
PDF
Web Development for UX Designers
PDF
Crash Course HTML/Rails Slides
PPTX
Html5 & less css
PPTX
Front End Development | Introduction
PDF
WordCamp Greenville 2018 - Beware the Dark Side, or an Intro to Development
PDF
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
PPSX
web devs ppt.ppsx
PPTX
Advanced JavaScript
PPTX
MongoDB.local Atlanta: MongoDB Stitch Tutorial
PDF
A Complete Guide to Frontend - UI Developer
PDF
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
PPT
Websites Unlimited - Pay Monthly Websites
PDF
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
PPTX
MongoDB.local Seattle 2019: MongoDB Stitch Tutorial
PPT
Intro to-html-backbone
PPTX
Introduction to using jQuery with SharePoint
PDF
Workshop HTML5+PhoneGap by Ivano Malavolta
Intro to mobile web application development
Making Of PHP Based Web Application
Decoding the Web
Web Development for UX Designers
Crash Course HTML/Rails Slides
Html5 & less css
Front End Development | Introduction
WordCamp Greenville 2018 - Beware the Dark Side, or an Intro to Development
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
web devs ppt.ppsx
Advanced JavaScript
MongoDB.local Atlanta: MongoDB Stitch Tutorial
A Complete Guide to Frontend - UI Developer
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
Websites Unlimited - Pay Monthly Websites
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
MongoDB.local Seattle 2019: MongoDB Stitch Tutorial
Intro to-html-backbone
Introduction to using jQuery with SharePoint
Workshop HTML5+PhoneGap by Ivano Malavolta

Recently uploaded (20)

PPT
Design_with_Watersergyerge45hrbgre4top (1).ppt
PPTX
CHE NAA, , b,mn,mblblblbljb jb jlb ,j , ,C PPT.pptx
PDF
The New Creative Director: How AI Tools for Social Media Content Creation Are...
PPTX
innovation process that make everything different.pptx
PDF
Decoding a Decade: 10 Years of Applied CTI Discipline
PDF
Cloud-Scale Log Monitoring _ Datadog.pdf
PPTX
522797556-Unit-2-Temperature-measurement-1-1.pptx
PPTX
Funds Management Learning Material for Beg
PDF
SASE Traffic Flow - ZTNA Connector-1.pdf
PDF
Unit-1 introduction to cyber security discuss about how to secure a system
PDF
APNIC Update, presented at PHNOG 2025 by Shane Hermoso
PPTX
Internet___Basics___Styled_ presentation
PPTX
Digital Literacy And Online Safety on internet
PPTX
June-4-Sermon-Powerpoint.pptx USE THIS FOR YOUR MOTIVATION
PPTX
Slides PPTX World Game (s) Eco Economic Epochs.pptx
PDF
Paper PDF World Game (s) Great Redesign.pdf
PDF
Triggering QUIC, presented by Geoff Huston at IETF 123
PPTX
Introduction to Information and Communication Technology
PPT
tcp ip networks nd ip layering assotred slides
PDF
Sims 4 Historia para lo sims 4 para jugar
Design_with_Watersergyerge45hrbgre4top (1).ppt
CHE NAA, , b,mn,mblblblbljb jb jlb ,j , ,C PPT.pptx
The New Creative Director: How AI Tools for Social Media Content Creation Are...
innovation process that make everything different.pptx
Decoding a Decade: 10 Years of Applied CTI Discipline
Cloud-Scale Log Monitoring _ Datadog.pdf
522797556-Unit-2-Temperature-measurement-1-1.pptx
Funds Management Learning Material for Beg
SASE Traffic Flow - ZTNA Connector-1.pdf
Unit-1 introduction to cyber security discuss about how to secure a system
APNIC Update, presented at PHNOG 2025 by Shane Hermoso
Internet___Basics___Styled_ presentation
Digital Literacy And Online Safety on internet
June-4-Sermon-Powerpoint.pptx USE THIS FOR YOUR MOTIVATION
Slides PPTX World Game (s) Eco Economic Epochs.pptx
Paper PDF World Game (s) Great Redesign.pdf
Triggering QUIC, presented by Geoff Huston at IETF 123
Introduction to Information and Communication Technology
tcp ip networks nd ip layering assotred slides
Sims 4 Historia para lo sims 4 para jugar

State of modern web technologies: an introduction

  • 1. The State of Modern Web Development Technologies: An Introduction Strap yourselves in! Michael Ahearn MACS CP (October 2015)
  • 3. The new “full stack” Source: http://www.100percentjs.com/visualizing-modern-web-development-stack/
  • 4. Too many choices!!! There are so many tools, libraries and frameworks for modern web development out there now. I've made my decisions on what to talk about here based on:  Popularity  Peer/community support  Proven and trusted  What I know and have worked with  What job agencies are looking for
  • 5. What I'll be covering  Presentation technologies – html and css tools and frameworks  Client-side MVC frameworks  Server-side frameworks  Workflow and efficiency tools and frameworks  Code editors (if there's time)
  • 6. Presentation technologies  HTML layout frameworks: Bootstrap and Foundation  CSS precompilers: Less / Sass  Templating libraries: e.g. Handlebars
  • 7. Bootstrap or Foundation?  “Bootstrap is the most popular HTML, CSS, and JS framework for developing responsive, mobile first projects on the web.” Source: http://getbootstrap.com  Foundation say it is “the most advanced responsive front-end framework in the world.” Source: http://foundation.zurb.com/ Very hard to compare them. Both use grid system. Foundation seems to be easier to customise, but Bootstrap seems to be a bit more popular.
  • 8. CSS Preprocessors LESS (less css): http://lesscss.org/ LESS extends CSS with dynamic behaviour such as variables, mixins, operations and functions. LESS runs on both the server-side (with Node.js and Rhino) or client-side (modern browsers only). SASS (Syntactically Awesome Stylesheets): http://sass-lang.com/ $serif-font-stack: "Georgia", "Times New Roman", serif $monospace-font-stack: "Cousin", "Courier" body font: normal 18px/22px $serif-font-stack pre, code font: 600 bold 18px/22px $monospace-font-stack
  • 9. Templating tools Handlebars example: Source: http://jsfiddle.net/aybalasubramanian/N2b5M/1/ <script id="some-template" type="text/x-handlebars-template"> <tbody> {{#users}} <tr><td>{{fullName person}}</td> <td>{{jobTitle}}</td> <td><a href="https://twitter.com/ {{twitter}}">@{{twitter}}</a></td> </tr> {{/users}} </tbody> </script>
  • 10. Client-side MVC frameworks Backbone.js http://backbonejs.org/ Angular.js https://angularjs.org/ (Google) Ember.js http://emberjs.com/
  • 11. Some Angular.js concepts  Directives: (e.g. ngApp, ngController, ngModel, ngRepeat)  The scope object ($scope)  Two-way data binding  Dependency injection
  • 12. Server-side  Node.js: http://nodejs.org  Express.js: http://expressjs.com/  MongoDB: https://www.mongodb.org/ https://docs.mongodb.org/manual/core/introduction/
  • 13. Tools for efficiency  npm (Node package manager). With node installed, can run npm at the command line to fetch available packages from repositories such as github and other remote servers https://docs.npmjs.com/  Bower: like npm but for the client-side http://bower.io/  Require.js: a JavaScript module loader http://requirejs.org/  Grunt: the JavaScript task runner http://gruntjs.com/
  • 14. npm Once you have node installed, you can now use the Node package manager to install other software. $ npm install -g bower This fetches & installs the package bower.js, globally. If you issue this command from inside your project root folder: $ npm install express express.js will be installed in a folder called node_modules There are many options you can use with the npm command
  • 15. Bower Works similar to npm, but you can use it for packages you use on the client, such as jquery, angular, underscore, handlebars etc. From your project root folder, if you issue the command: $ bower install jquery Bower will fetch & install jquery.js inside a folder called bower_components
  • 16. Require.js Firstly a preamble to why we use require.js: JavaScript modules and AMD (asynchronous module definition). Modules are packages of code. Require.js is a tool used to load these modules in the sequence in which we need them in our app. Get it at: http://requirejs.org/
  • 17. Why require.js? The Problem:  Web sites are turning into Web apps  Code complexity grows as the site gets bigger  Assembly gets harder  Developer wants discrete JS files/modules  Deployment wants optimized code in just one or a few HTTP calls
  • 18. Why require.js? The Solution:  Some sort of #include/import/require  ability to load nested dependencies  ease of use for developer but then backed by an optimization tool that helps deployment Source: http://requirejs.org/docs/why.html
  • 19. Grunt.js Grunt is defined as a “task runner”. Basically, it can automate all the tasks you routinely do with all projects, in order to deploy your app, e.g.:  Convert less or sass files to css  Convert CoffeeScript or TypeScript to js  Run jshint on your JavaScript  Run tests  Minify and concatenate JS code – reducing the number of script tags in the html
  • 20. CoffeeScript: http://coffeescript.org/ TypeScript: (Microsoft – but open-source) http://www.typescriptlang.org/
  • 21. Code Editors  Sublime text ($70 US)  Adobe Brackets (open source)  Github Atom (open source)  Microsoft Visual Studio
  • 22. Brackets Pros:  Free, open-source, cross platform  Clean, modern UI. Ability to split panes  Live preview (big bonus!)  Lots of plugins to expand it's capabilities  “Expand” plugin allows you to work with PSD files (it is made by Adobe after all!) Cons:  Tabs on the left rather than top (not that important)
  • 23. Atom https://atom.io/ Pros:  Free, open source (MIT license), cross-platform  Hackable, customisable (big community involvement)  Multiple selections, cursors (huge efficiency)  Integration with Github
  • 24. Resources Stackoverflow: (where you get answers to any dev question, from the experts, and it's fully peer-rated – evidence-based) JavaScript Weekly: http://javascriptweekly.com/ Ng Newsletter: http://www.ng-newsletter.com/posts/