Technology Analysis Draft

Name: Julie Yarnold
Student Number: 84123455

Technological Considerations

For the purposes of development, I aim, as far as possible, to have a clear demarcation between content, style and functionality/automation, and to keep my options as flexible as possible to account for huge variations relating to devices, user behaviour, accessibility and browser compatibility. The desired result is a dynamic and accessible website that is interoperable and compliant with current web standards in the hope that this will extend the ‘shelf life’ of the web site.

I intend to develop a set of working rules for the handling of elements in the site to ensure there is no variation in technological methodology used for specific elements, in the event that two or more technologies ‘overlap’ and allow the same or similar functionality to be deployed.

The reasons for my choices of technologies, especially given my lack of experience, are that they have wide support, are open source and that plenty of resources are available, both human and written/recorded. Crucially, the synergies between the chosen technologies should deliver the smoothest possible user experience.

Client Side

Defining the Content: XHTML 1.0 Strict

The HTML prototype written by Tim Berners-Lee in 1992 was ‘…strongly based on SGML (Standard Generalised Mark-up Language), an internationally agreed upon method for marking up text into structural units such as paragraphs, headings, list items and so on (which) could be implemented on any machine’ (w3.org, 1998). The most recent versions of HTML currently used to define content in a web page are: HTML 4.01, XHTML 1.0, HTML5, and XML (w3schools.com, 2012).

XHTML is HTML 4.01 reformulated as XML (The Web Standards Project, 2003). While HTML 4.01 and XHTML 1.0 have much in common, XHTML is more consistent and stringent in its coding rules; for example, unlike HTML, XHTML requires all tags to be closed, and does not allow HTML-style self-closing tags such as the IMG tag. This consistency facilitates easier error detection than in the ‘looser’ Transitional format.

The use of XHTML, with the use of Extensible Style sheet Language Transformations (XSLT), also allows for the automatic creation of resources such as tables of contents, page overviews, printable versions and RSS feeds from the XHTML Document (The Web Standards Project, 2003).

The standard for HTML5 is not yet complete, and while its promise of seamless functionality and simplification for both developers and users (HTML5 Rocks, 2012) is appealing, the fact that no browsers at present have full HTML5 support (w3schools.com, 2012) could create issues in development and deployment that could be needlessly complex for the scale of my project. Unless I need a particular feature of HTML5 on a page (such as embedded video) I plan to use XHTML 1.0 Strict because it an established and current standard which should allow smooth future progress relating to developments and updates to web standards (The Web Standards Project, 2003) and therefore a long and stable 'shelf life' for my site.

Styling and Placement of Content: Cascading Style Sheets

Style sheets have existed in some form since HTML’s ancestor, Standardised General Markup Language (SGML) in the 1970s (Lane, J, 2008, pp101-102), indicating that presentational style and content should be separate. The syntax of CSS is simple, uses English keywords and, can be easily applied to any markup language; however, only in 1998 did CSS2 become an official recommendation (Lane, J, 2008, p102).

CSS style rules can be embedded, only applying within an individual HTML document, but creating separate CSS documents and linking them to HTML documents allows for style rules to be globally applied and updated. Additionally, several style sheets can be provided, helping to allow for variations in browser support, and particularly for providing increased accessibility. Because users may deactivate style sheets or substitute their own, I will need to ensure that the readability of my pages is not completely dependent on the CSS rules, so that they remain logical and readable if styles are deactivated or substituted.

Style sheets enable global changes to formatting and placement across multiple pages, but are not able to apply the same content to multiple pages. For this, developers can implement server-side includes, or page templates, available in high-end HTML editors such as Dreamweaver. A page template can be created and used to create multiple pages containing the required repeating content. Editing the template causes all pages on which it is based to update (MacDonald, M, 2011, p268).

While CSS is the widespread standard for styling, ‘Less’ the ‘dynamic stylesheet language’, an open-source JavaScript-based application developed by Alexis Sellier, extends CSS with dynamic behaviour on both client and server sides while allowing fallback to conventional CSS (Less.org, 2012). The same cautions apply with regard to user manipulation of style sheets. At this stage, I feel including ‘Less’ and its open source compiler, simpLESS would add an unnecessary level of structure to my site.

For my project, I plan to explore the use of page templates for repeating content such as navigation versus including a PHP page for this purpose (tizag.com, 2012). With regard to CSS, browser support for CSS3 properties varies more than CSS2.1 (quirksmode.org 2012) , so I will try to keep CSS3 rules to a minimum, while allowing a fallback that does not destroy the visual logic of the page.

Interactivity: JavaScript

JavaScript was developed by Brendan Eich for Netscape in the 1990s to add interactivity to web pages (Young, A, 2010), and for manipulating the DOM (Document Object Model), that is, the display/interface (Veitch, N, 2012). JavaScript is a scripting language. Its relatively simple syntax means that even non-programmers should be able to learn and apply it without too much difficulty. JavaScript should not be confused with Java, a complex programming language developed by Sun Microsystems (w3schools.com, 2012). JavaScript allows interactivity to be incorporated in a web page on the client side. Like CSS, JavaScript can be embedded in a web page or linked separately to multiple pages. Also like CSS, a user can deactivate scripts, necessitating development of pages that can still function adequately without scripts running. While all browsers support JavaScript, support varies (quirksmode.org, 2012).

Dart, a new programming language developed by Google as an alternative to JavaScript would seem to have an uphill battle at this stage in terms of gaining a foothold (Shankland, S, 2011). JavaScript has wide community support, and vast amounts of easily available JavaScript resources, which make it far more attractive as a safe bet for coding my web pages.

Server Side

Collect and Manage Data: PHP and MySQL

PHP, a general-purpose scripting language for the web is is simple enough for a newcomer, but offers many advanced features for experienced programmers. PHP is embedded in the HTML code on the page. (The PHP Group, 2012). PHP was originally conceived and developed by Rasmus Lerdorf in 1994 and its current version is PHP5 (Welling, L, and Thomson, L, 2009, pp2-3). PHP is one of several server-side scripting languages, and can support many databases. The combination of PHP and MySQL is cross-platform, free and open source (w3schools.com, 2012).

MySQL is a product of the Oracle Corporation, and is a relational database management system that utilises Structured Query Language, a common standardised language, to access the database (Oracle Corporation, 2012). The collection and management of data in my site will be fairly minimal and I believe this popular combination of technologies will be suitable for my site’s requirements. Even with almost no experience in deploying server-side technologies, I feel the wide support and vast quantities of available resources for PHP and MySQL should keep the task manageable.


HTML5rocks.com 2012, Why HTML5 Rocks - HTML5 Rocks, viewed April 6 2012, <http://www.html5rocks.com/en/why>.

Lane, J., Lewis, J.R. & Moscovitz, M. 2008, Foundation website creation with CSS, XHTML, and JavaScript, Friends of Ed/Apress, Berkeley, CA.

MacDonald, M. 2011, Creating a Website: the missing manual, 3 edn, O'Reilly Media, Inc., Sebastopol.

Oracle Corporation 2012, MySQL :: MySQL 5.6 Reference Manual :: 1.3.1 What is MySQL? Oracle Corporation, viewed April 6 2012, <http://dev.mysql.com/doc/refman/5.6/en/what-is-mysql.html>.

quirksmode.org 2011, Event compatibility tables, viewed April 7 2012, <http://www.quirksmode.org/dom/events/index.html>.

quirksmode.org 2012, CSS - Contents and compatibility, viewed April 8 2012, <http://www.quirksmode.org/css/contents.html>.

Raggett, D., Lam, J., Alexander, I. & Kmiec, M. 1998, '2 - A History of HTML', Addison Wesley Longman, Essex.

Shankland, S. 2011, Microsoft shoots down Google's Dart language, CNET News, viewed April 3 2012, <http://news.cnet.com/8301-30685_3-57330431-264/microsoft-shoots-down-googles-dart-language/>.

The PHP Group 2012, PHP: What is PHP? - Manual, The PHP Group, viewed April 8 2012, <http://www.php.net/manual/en/intro-whatis.php>.

The Web Standards Project 2003, HTML Versus XHTML - The Web Standards Project, The Web Standards Project, viewed April 5 2012, <http://www.webstandards.org/learn/articles/askw3c/oct2003/>.

tizag.com 2008, PHP Tutorial - Include File, viewed 9 April 2012, <http://www.tizag.com/phpT/include.php>.

Veitch, N. 2012, What on Earth is Google Dart? Google tries to solve the issues that in JavaScript, Future Publishing Limited, viewed April 3 2012, <http://www.techradar.com/news/internet/web/what-on-earth-is-google-dart-1067920>.

w3schools.com 2012, HTML doctype declaration, viewed April 4 2012, <http://www.w3schools.com/tags/tag_doctype.asp>.

w3schools.com 2012, HTML Tutorial, viewed March 10 2012, <http://www.w3schools.com/html/>.

w3schools.com 2012, PHP Tutorial, viewed April 4 2012, <http://www.w3schools.com/php/default.asp>.

Welling, L. & Thomson, L. 2008; 2009, PHP and MySQL Web development, 4th edn, Addison-Wesley, Upper Saddle River, NJ.

Young, A. 2010, History of Javascript: Part 1, viewed April 3 2012, <http://dailyjs.com/2010/05/24/history-of-javascript-1/>

Valid XHTML 1.0 Strict

Valid CSS!

Click a button to check validation