User Tools

Site Tools


eg-259:lecture21

~~SLIDESHOW~~

On the Radar

Contact Hour 28?: To be discussed on Friday 27th April, 2013.

Lecturer: Dr Chris P. Jobling.

Abstract

Interesting developments in Web Applications Technology or What Might Be Good to Have on Your CV in a year or two's time. Use your favourite search engine to find out more.

On the Radar

  • Client Side
    • Structural Layer
    • Presentation Layer
    • Behavioural Layer
  • Server-Side
  • Database layer
  • Development Best-Practices
  • How do I know?

Client-Side: Structural Layer

  • HTML5 of course!
  • HAML

Client-Side: Presentational Layer

  • CSS3
  • HTML5 boilerplate – some HTML5 but a lot of CSS best practices too
  • Grid-based fluid layout frameworks
  • Responsive Web Design
  • Mobile-first design
  • Media queries
  • SASS and LESS

Client-Side: Behavioural Layer

  • New HTML5 JavaScript APIs and browser capabilities
  • Modernizr and polyfills
  • jQuery library
  • Backbone.js

Client-Side: New Languages

These two compile to JavaScript:

  • Coffeescript → built-in to Rails
  • Dart → being developed by Google by and for their own web app developers

Client-Side: MVC Frameworks

Hundreds of them! Aside from Backbone.js, the ones I think are worth deeper study are:

  • Angular.js
  • Ember.js
  • Spine.js
  • Knockout.js
  • Meteor.js

Keep an eye on TodoMVC for more and examples of their use.

Server-Side

  • Other Programming Languages
  • Important frameworks that you'll meet next year
  • Other Mainstream Web Development Frameworks
  • Interesting niche frameworks
  • Apps vs Web Apps

Server Side: Other Programming Languages

  • PHP
  • Java
  • Python
  • C#
  • Perl
  • JavaScript!

Server Side: Important frameworks that you'll meet next year

Very popular in so-called enterprise applications and intranet developments:

  • Java: Servlets, JSP, JSF, Java Web Services, Spring, … Internet Computing
  • Microsoft .NET: C#, ASP.NET, … Building Reliable Web Applications

Server Side: Other Mainstream Web Development Frameworks

  • Ruby on Rails – Ruby
  • Django – Python
  • Cake, Laravel – PHP
  • Node.js – JavaScript
  • Spring – Java

Server Side: Interesting niche frameworks

  • Dart → compiles to “JavaScript for the modern browser”, but it's server-side too!
  • Google Web Toolkit (GWT) → Java to HTML/JavaScript
  • Google App Engine → Python and Java
  • Sinatra → Ruby
  • Express.js → JavaScript + Node.js + the Client-side MVC framework of your choice
  • Meteor → JavaScript + Node.js

Mobile and Other Form Factors

  • Smart phones
  • Tablets
  • Surfaces
  • TVs
  • Gaming consoles

Apps vs Web Apps

  • Web Apps: HTML5, CSS3, JavaScript, Location Services, Local Storage, Canvas, … all devices!
  • iOS: Mac only development tools XCode, Objective-C and Cocoa target iPhone, iPod Touch, iPad, distribution by App Store only.
  • Android: Java so cross platform development. Main problem → fragmentation of platform.

Database layer

Complex data models with lots of relationships require complex and time/space consuming join queries.

Rise of the so-called No SQL alternatives:

  • redis
  • MongoDB
  • CouchDB

Development Best-Practices

Many of the most widely used tools and techniques have come from the Open Source Community and Agile Development.

  • Version control - almost standardized on Git but some major projects use CVS, SVN, Mercury, Bazaar
  • Development communities - GitHub, SourceForge, Google Code
  • Behavioural and Test Driven Development - Unit testing, executable specifications (e.g. RSpec), acceptance testing (e.g. Cucumber), continuous integration

How do I know?

  • I follow the RSS feeds lots of development sites
  • I read influential on-line journals
  • I Watch selected videos on YouTube and other video sharing sites
  • I listen to technical development podcasts
  • I have Google+, Twitter and LinkedIn accounts
  • I occasionally blog
  • I am signed up to Code Year, Code School and Nettuts+
  • I set myself development projects in a technology I need to learn
  • I teach so I have to continuously learn!

You should do some or all of these too!

Good Sources

  • The ChangeLog blog and podcasts – “open source moves fast, keep up!”
  • RailsCasts and similar
  • A List Apart
  • HTML5 Doctor and HTML5 Rocks
  • Google TechTalks and Google I/O conference sessions on YouTube
  • YUI Theatre
  • BBC Click (TV iPlayer and radio Podcast)
  • The Guardian Tech weekly podcast

Summary of this Session

  • Client Side
    • Structural Layer
    • Presentation Layer
    • Behavioural Layer
  • Server-Side
  • Database layer
  • Development Best-Practices
  • How do I know?

The End

Thanks for Watching!

Previous Lecture | home

eg-259/lecture21.txt · Last modified: 2013/04/24 20:21 by eechris