XHTML / CSS

XHTML is mainly a more rigorous, restricted subset of HTML. Its great advantage lies in making websites work cross-platform (that is, for various combinations of browser and operating sytem). If your XHTML code is free of coding errors, it's likely to work on nearly every modern platform without the need for tweaking.

CSS is used to specify the appearance of the site. By stripping out as much coding as possible and instead specifying it in a single CSS file, content can be separated from design and consistency can easily be achieved across all pages of a site. By having the design for the entire site specified in a single place, updating the look of a site can be done without having to touch the actual content. It also lets smaller, less-cluttered, faster-loading pages be created.

Again, using CSS helps with cross-platform compliance, although no browser is 100% correct in it's rendering. Older versions of Internet Explorer are the real problem here, and many sites will have to have 'hacks' in the CSS coding to make them work on these platforms.

PHP

PHP is a scripting language used mainly to create web pages that can have varying content on them. The PHP code is embedded in the pages and interpreted into HTML and content withing the server, so the end-user never sees it. It's free to use and has excellent online documentation. It's quite fast and makes light demands on server resources compared to other scripting languages such as Ruby.

The main disadvantage of PHP is that it tends to be too 'forgiving' and allows programmers to get away with sloppy code, that almost inevitably results in obscure bugs going into live pages. The factor X systems approach is to use the object-oriented approach to coding PHP extensively, the PHP interpreter being much more sensitive to errors in this area. The object-oriented way of doing things also gives far faster development times, greater reliability and more intelligible code, especially on large projects.

factor X systems has a large, custom object-oriented programming library and any projects that require dynamic scripting come with a free licence to use this.

Linux / Apache

Linux is an open-source operating system modelled on Unix and Apache is free, open-source server software. As a combination they offer a cheaper and much more secure server environment than Windows. That's far from saying they're hack-proof, a poorly set-up and maintained server lets the criminals in, no matter what platform's in use.

Mysql

Mysql is a relational database management system. The 'community' version is free and lets you build fast-operating databases that scale up to truly massive amounts of data very well. SQL, Structured Query Language, is a cross-platform language with which programmers can specify databases and access the data in them.

The combination of Linux, Apache, Mysql and PHP is often referred to as LAMP and works as an efficient, inexpensive dynamic web server basis.

Javascript

This is a client-side scripting language that lets web pages interact with the user without having to go back to the server to be processed and send back a new page. This makes for a much slicker, faster user interface. The big drawback is that some users have javascript turned off, particularly in large corporations, for security reasons. This means that any page using javascript should use it for inessential functions or should provide an alternative that works without it (which increases development times and costs).

The factor X systems approach is to use javascript solely for client-side validation on forms. This acts as a courtesy for users, any data coming through forms still has to be validated on the server before being used but if javascript is enabled, errors are pointed out to the user before any refreshing of pages is done on the server.

Flash

Flash is useful for incorporating video presentations or music in web pages but should not be used for delivering actual content, mainly because users may have it turned off or their browser may not support it, so either an alternative must be provided (again increasing cost) or the page will be simply unusable. Secondly, content within flash cannot be indexed by search engines so anyone relying on it will lose traffic. Thirdly, it can be completely unusable to visually-disabled people.

The most unforgiveable use of flash is for animated splash screens, which, thankfully, have almost completely died out.

Java

Java is a highly secure programming language used by factor X systems for back end systems (i.e. the behind the scenes processing that end users never see). It has a superior (compared to most other languages) object-oriented model. Originally, Java was mainly used for delivering dynamic content over the internet in the form of small programs called applets. The biggest problem with applets was that many users didn't have the Java run-time on their computers which applets require to operate, particularly since a damaging legal battle between it's owners, Sun Microsystems and Microsoft. The use of Java applets has largely died out, but Java remains a popular desktop programming language.