Table of Contents
~~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!