~~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
Client-Side: Presentational Layer
Client-Side: Behavioural Layer
Client-Side: New Languages
These two compile to JavaScript:
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
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:
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
The End