The Future of Software Development
The future of software development is not found in a language, technology or technique but dependant on having a critical mass of educated individuals who apply themselves to the discipline.
I like to romanticise the history of computer science, the days where everything you could possibly need to know about a computer was printed in the included manual, from the schematic from which it was built right up to user guides explaining how to use the included software, if any. I envy those were lucky enough to be there when computers first became affordable to the general populous and they could know everything there was to know about the machine they had purchased.
As times marched on and graphical user interfaces became the norm, abstracting users from the tangled mess of syntax familiar to those using the command line, and I was born. Microsoft Windows 2.0 was just about to roll off the production line and Apple was introducing multitasking into their operating system, System 5, for the Macintosh SE and Macintosh II. Both companies laying the foundation for the computers people know and love (or hate) today.
Here in the UK, the government had been focusing of the computer literacy for around 5 years and a series of BBC programmes introduced the population to software development on the BBC Micro which was available, due to government grants, in every school and in high street retailers across the land. While I was a little late to this party, a suite of these machines were available for my use in the school computer lab and I cut my teeth on BASIC while everyone else was drawn to the pretty pictures available on the successor computers running the graphical operating system RISC OS.
There are no such drives today. While there are some general technology policies for a so called ‘Digital Britain’ concerning itself with accessible broadband and access to information there is little in the way of encouraging youth to look at computers as anything other than social entertainment devices. While I applaud the efforts of companies such as Apple to create ‘technology for the rest of us’ the increasingly limited access to the hardware will no doubt negatively affect the skill of the software developers of the future.
As computer science as a whole progresses so does it’s development tools. What was once a simple power-on prompt where the words
PRINT "Hello, World!"
would elegantly demonstrate the innate power and infinite control of the machine avaliable, users are now instead presented with ostensibly easy-to-use, but exceedingly imposing and complex environments each with their own preferred conventions in which to work. Scripting languages like Python rekindle this spirit but at the expense of being totally incongruent with the interfaces to which users have become accustom.
One area in which Microsoft should be commended is their continued high quality support of software developers. Not only does Microsoft have a comprehensive press for their extensive library of developer references but provides high quality, accessible, and often free, tools and resources. Microsoft actively target potential developers with their Beginner Developer Learning Center and specifically Kids Corner and Small Basic.
Microsoft, here, dare to fail. Small Basic is not a finished product. It has it’s flaws. The hodge-podge of objects and parameterless sub-routines makes Small Basic a little confusing for new and experienced developers alike, but in a spirit of openness the lead author has ensured solid interaction with a community of developers resulting in gradual improvement to the fledgling product. It is, no doubt, a great effort in making computing, the way I want to remember it, accessible again. While I can understand efforts like Alice and Scratch, essentially the Lego of programming, their relation to ‘real world’ development is questionable at best. In holding this view I have to question Microsoft’s own choice and the value of yet another (intentionally hobbled) language, but here the ‘Graduate’ functionality is standing by for those ready to move on.
Without drives like Microsoft’s to bring development tools, most crucially at an appropriate level, to the masses students will continue to confuse computer science with ‘IT’. As the potential of those who, had they been able to overcome the initial hurdles of development, would have gone on to create great software is wasted the true power of technology will be limited to a smaller and smaller elite who were lucky enough to have been exposed to development in the right way and at the right time. While technological dictatorship certainly has its benefits, democratisation, the freedom of knowledge and open participation is the driving force behind the computer revolution of today.
Windows DRM from a Mac User’s Perspective
Trying to recapture a classic soundtrack results in hours of anguish when DRM is added to the mix.
So, recently I have been re-watching some classic films from my childhood, The Flight of Dragons and The Prince of Egypt to name but two. Turns out I am quite attached to the soundtrack from the latter but iTunes was a bust – I even tried to buy it from a real shop but it was no where to be found.
A few Google searches later turns up 7 digital, a relatively small and unknown, but well backed, digital music retailer of both protected WMA and the unprotected MP3 formats. Unfortunately for me, The Prince of Egypt soundtrack only comes in protected WMA. “Never mind” I say, “I’ll burn it, and rip it into iTunes!”. So I fire up Parallels and hand over my £8.
After a rather nice page which automatically licenses me for these tracks I think I’m well away and progress to the download page where I try to download the album. 96%… 97%… 98%… 99%… “Error, the connection was reset by the server.” – great. I try again. 96%… 97%… 98%… 99%… “Error, the connection was reset by the server.” – Grr! 4 tries later I give up and download the files using Safari on OS X only to copy them back into Windows to actually use them. At last.
Connect my DVD-RW to Parallels. Pop in a blank CD. Open Media Player. Click burn. “Please attach a burner and restart the player.” – What? It says it’s a burner in My Computer!? Three virtual reboots later and a quick scan of the parallels forums indicates that CD burning from media player is not supported. Great.
Reboot into Windows on the hardware. “Windows needs to be activated to continue.”. OK. Activate over the internet. Nope. What? Why not! I bought this copy of Windows (I really did) – why can’t I activate!? Call support? It’s 10:30 PM, not now. Reboot into OS X, fire up Parallels.
OK, so as you can see not a happy experience so far. So I hunt for some software to remove the protection without burning to CD – which if you haven’t ever done so, while possible requires very specific version of Media Player to even work, I tried three different tools until one finally spat out untagged MP3′s. Good enough. I’ll add the tags myself. Finally, in iTunes and synchronised to my iPhone.
Lets catch up on some TV I’ve missed messing around with this using 4oD (Windows only). What’s that? Automatic updates are turned off? I’ll turn them back on… on. On. On, err, I said on! AVG: “You are infected!”
Yes, I got a virus. A virus. Which I was still trying to remove 18 hrs later. All this for a few minutes of music which I can play on my iPhone!?
Eventually I gave up and blasted Windows away.
The amount of ridiculous access controls and limitations added by Microsoft to this process have ensured I’ll never buy WMA protected music again – even for a Zune. Sometimes I think I should give up – pirating my music and software would be easier!
Disclosure: this incident happened about 5 months ago, but I’ve only just got around to publishing the draft!
What Apple’s iWork Could Learn from Microsoft Office 2008
iWork ’08, Apple’s latest attempt at an office suite, is an amazing piece of consumer software. However, Pages, the word processor and publishing application of the iWork suite has one particularly disappointing feature.
While there are many gripes about it’s functionality from professional users who until now had little option for commercial Intel native office applications and software to read Microsoft’s new XML Office formats iWork is an amazing piece of consumer grade software. Despite the irritating export for Microsoft Office compatibility and Numbers annoying import inconsistencies iWork is a solid suite for the average iLife user.
Pages introduces a new mode, specifically for word processing to accompany the long standing page layout view but this is a choice for the life of the document. Microsoft Word 2008 also offers similar range of options allowing the user to change between modes. One of my favourites, simply for aesthetic reasons, is the notebook view which gives very similar functionality to OneNote for Windows. What makes Word stand out is I can switch modes and the text is seamlessly re-presented to a format more appropriate to the mode.
If Pages offered this seamless movement between it’s editing modes it would go along way to moving me from the rigmarole of word processing learnt from years of Microsoft Office use to the more creative page layout’s available in Pages – or maybe Microsoft will save Apple the trouble and help it’s users display a little creativity in their documents without ever taking them from the comfort of Word.
