|What was the first computer you worked on?
|It was an ICL machine at Bath University, in 1968. Unusually for the time it supported a multiprocessing system called Multitest, that let several people develop BASIC programs at the same time, using teletypewriters. I still have a few paper tapes from those.
|What was the first computer language you worked in?
|A simplified assembler language developed by my Mathematics teacher at school, Julian Bewick. It was rather like MIX. At about the same time he also introduced me to FORTRAN IV.
|How many computer languages have you used? Are you still fluent?
|It must be well into three figures. I'm still fluent in (use regularly) S/390 and Motorola 68000 assembler languages, several forms of BASIC, ECMAScript, C, PL/I, Java, PostScript, and of course Rexx and its variants.
|What was the last program you wrote?
|I'm writing or modifying scripts almost every day, but the most recent 'big' project was the NetRexx interpreter.
|What was the most difficult project you worked on?
|The LEXX editor for the Oxford English Dictionary project, in 1985. This was a complex and very highly programmable editor with text formatting. It was probably the first to provide colour syntax highlighting for languages and text. It also had stringent human factors requirements, as most of its users had not even used a typewriter before, let alone a computer terminal. Oh, and it had to be designed, implemented, and pass its acceptance tests in under 5 months...
|Are the best software developers born or made?
|Something of both, I suspect. I've noticed that many of the best started off as electronic (hardware) engineers. Possibly the difficulty and cost of fixing buggy hardware encourages an attention to detail and 'thinking through' of a design that many software developers never attain.
|Which one aspect of the software industry would you change, if you could?
|The miserable documentation for most APIs.
|What advice would you give to someone starting in software development today?
|Always write the documentation for your program before you write the program itself.
|What is your proudest accomplishment, within IT?
|Being often able to simplify designs, rather than complicate them, so my software became easier to use over the years instead of harder.
|What is your proudest accomplishment, outside of IT?
|Reaching the bottom of Penyghent Pot, using single rope techniques, and getting back out again.
|If you didn't work in IT what would you be doing today?
|Probably something in Electronics -- Radio or Audio. Or perhaps photography.
|Commercial, shareware, freeware, Open Source?
|Whichever is best for the software being written. I don't think there's a 'universal' best way to develop software. I'm much more interested in the quality of the software than in how it was written.
|How do you react to the flames of language wars?
|I sometimes get frustrated at the lack of knowledge exhibited by some people. And especially at their ignorance of the human issues of programming -- readability, maintainability, clarity, and so on.
|What is your favourite book?
|Depends on my mood. Of IT books, the IBM System 360 Principles of Operation (the early typeset one) and the original PostScript Language Reference Manual (red book) are my favourites, as I never found a bug in either of them.
|What is your favourite film?
|Again, totally depends on mood. Impossible to choose one. But I do recall a theatre performance which was undoubtedly the best I've seen: Henry IV Part II, at the RSC in Stratford, in 1975. The scene in that production where Henry V entered over a cloth of gold was the most emotional viewing moment I have ever experienced. I'm looking forward to seeing this year's production.
|What is your favourite website?
|Google. Fast .. and it works.
|What is your latest gizmo?
|A big bench drill press. I recently moved house, so I'm doing lots of carpentry...
|Systems or applications? Which do you build?
|Quite a variety. Over the years I've written hardware microcode, operating system kernels, web servers, conferencing systems, system utilities, programming languages (and their compilers and interpreters), communications software, text and image processing tools, neural networks, games, and scientific applications.
|Have you read all published volumes of The Art of Computer Programming?
|Yes, though not in every edition, and not all the exercises.
|Anything else to be taken into consideration?
|I'm still hoping human programmmers won't be needed in twenty years from now!