Off we go! Another year of discovery, excitement, change and quite possibly some daunting challenges awaits our brave developer hearts once more. As we walk bleary-eyed to our desks again, fresh smells of coffee filling the office, it’s an excellent time to refocus – amongst other things – on our technical goals; how we’d like technology to help us grow, but more importantly, what we can do to help technology grow.
I’ve decided to share some of my views on what I think are the pertinent issues this year, and the goals to achieve to that end. Thus, my top personal ‘Web Development Resolutions’ for this year are:
1. See the Year of the Web Standards?
With Microsoft finally being pressured into releasing a standards-compliant Internet Explorer, subsequently revealing that IE8 has passed the Acid2 test in an internal debug build, and hinting at a release sometime in mid-2008, we can finally glimpse the possibility of bringing web standards (at least in terms of CSS/XHTML) to the masses. Additionally, Firefox 3‘s ability to pass Acid2 natively (better late than never!) as well as Opera’s Kestrel builds with exhaustive CSS3 support (on desktop, the Wii and mobile phones), means we’ve never been able to reach as many platforms or people with the same features before. I believe this to be a ‘watershed’ year, where we’ll either see the myriad of Web Standards take off, or if they prove to be fundamentally flawed (they’re already proving difficult to implement), this may well be the beginning of complete dominance from other proprietrary solutions like Flash. There’s an emerging school of thought that standards are discouraging quick progression through lack of competition. I strongly disagree, as if one looks at the greatest problem plaguing the web, incompatibility, a look back into the past reveals that rampant browser competition in the late 90′s (IE Netscape days) resulted in far too many different proprietrary solutions for the same thing – something that still haunts us today.
2. Bridge the divide between the Client and Server Model
Although we’ve seen various frameworks like Ruby On Rails make our lives easier when dealing with user interfaces (especially AJAX), we’re still dealing with several different representations of the same data – on the page HTML, in the DOM, in the application code, in the database. Wouldn’t it be great if the client-side UI object was the same as the server-side one? Why do we need four or more languages and data models to work on the same platform? In my opinion, anyone who can conclusively create a single solution (which I believe is achievable), will elevate web development to the undisputed champion of cross-platform, accessible and efficient software design. I’ll race you there…
3. Go Mobile
Well, by now everyone is quite familiar with that prodigy of effective marketing, the iPhone. I’m sure most of you have considered the possiblity of making your applications work on it’s cut-down Webkit browser. However, consider the number of users you could reach if you could tap into the several hundred million cellphones worldwide with an internet connection. Recently I made the rather serendipitous discovery that Opera Mini 4 – which runs on any decent J2ME phone – was able to [mostly] run our AJAX-intensive WTimer application, which we hadn’t put a single second of mobile development time into. Surely, uncovering the workings of this browser will enable us to bring rich applications to not only the iPhone, but to the millions of normal mobile users out there.
4. Put old browsers to rest
Anyone else tired of dealing with IE6′s (or worse) compatiblity issues? As I aluded to briefly in our Heroes 2007 Conference, I’ve proposed a possible plan to tackle this knife in the side of web development:
- Educate and Upgrade – Politely nag people using old browsers to upgrade to new ones. The trick is to work out a method that doesn’t detract from the value of the site itself. Perhaps via a notice, which links to a tailored, step-by-step guide on how and why to upgrade. If we can roll this out on a large scale, then hopefully we can knock down the figure of 40%+ IE6 users, and spend more time doing real coding.
- Fix – There are a number of great scripts like Dean Edward’s IE7.js that can upgrade and fix a limited number of browser defects. Improving on these and chucking in some resetting CSS for example, could ease the pain of dealing with these browsers in the mean time.
- Embed – With layout engines like WebKit introducing experimental features like offline databases, we may just be better off in some situations with tying applications into an embedded desktop application (eg. Fluid) and forcing clients to download and use them, virtually eliminating the problem altogether.
Perhaps with a plan like this, we can start developing websites and applications that break through the limitations of browsers that are nearly 10 years old. In conclusion, I’m very excited about the possibilities for the direction of web development technologies this year, but also feel that a lot of juggling of the elements and ideas will need to be done to master it. We must persue every avenue to come up with solutions that help us move forward…
“The only real failure in life is the failure to try.” — Unknown
How do you feel about these issues? Any comments you have will be appreciated. All the best to everyone for a fantastic 2008!