Chapter 1: My Career Gone

Footnote: Programming Experience

Since 1966 I have written software in a progression of languages: Fortran, DAP, Basic, MASM, Psion OPL, C, Windows SDK and Java. I've also de-compiled and documented programs written in PL/I & CHILL. I have also written extensively in HTML. Having followed the development of pro­gram­ming for over 40 years, switching to a new language is quick and easy with next to no learning curve. It's been a shameful waste that agency flibber­tigibbets could never understand this.

A Dabble With FORTRAN

After a short excursion into programming the Redifon 10/20 analogue computer, I was initiated into digital computer programming at college in 1964. The college had just bought its first digital computer, an IBM 1620. All the students in my maths class were encouraged to learn how to program it. After writing a few practice routines in FORTRAN IId, my first major program was an 'exact fraction matching' program to perform a numerical analysis task needed for my main physics project.

In At The Deep End

My first job as a programmer was writing real-time software for flight simulators. The machine used by the manufacturer for all their flight simulators at the time was the Honeywell DDP124, a 24-bit word (15-bit address) machine. It was pro­gram­med in an assembly language called DAP with which I spent a solid formative 2½ years.

Mainframe Stuff

The next programming languages I became involved with were PL/I and CHILL. The latter stands for Communications High Level Language and is used mainly for tele­phone switching applications. My work with these was not to program in them but to de-compile programs written in these languages back upwards to high-level doc­umentation which the original naughty program designers had failed to produce before coding. This was a great exercise in organising and presenting information.

After a little dabble with COBOL for speculative projects which never went ahead, my next major project was with a machine right at the other end of the size scale. This was a Sharp PC2600 programmable calculator — a serial machine with its own special programming language on which I implemented a small bespoke business system.

My Long Affair With BASIC

On 27 March 1980 I bought an Apple II (actually an ITT2020, its European clone) and became — for the next 4 years — totally immersed in AppleSoft — an early form of interpreter BASIC — in which I wrote a contacts management package complete with map graphics. Its performance was later dramatically improved by the use of a third-party compiler. I used the package myself to great effect, but the Apple II version was never sold. I also developed a word processing package in AppleSoft for in-house use which was oriented specifically towards technical auth­or­ing work.

In 1984 I switched focus totally onto the IBM PC. I started off by piping all my application software from the Apple II through a tenuous RS232 connection, then editing the AppleSoft Basic into workable IBM PC Interpreter Basic.

Microsoft QuickBASIC

In December 1986 I bought a Microsoft QuickBasic 1.0 compiler and upgraded to Version 2.0 on 1 January 1987 since when, over the next 5 years I logged over 5,000 hours of programming on several major projects, most of which were written as event-driven programs using the finite-state machine model which some would say was one forerunner of object-oriented programming. My greatest work in QuickBASIC was the complete rewriting of my contact management and communi­cation package EBS Marketeer which compiled to 2½MB of executable code. The second was my technical authoring aid Author's Delight. A summary of my experi­ence with QuickBASIC 2.0:

I still use QuickBASIC for prototyping and proving small functions later to be imple­mented as part of a 'C' or Java suite. These include: a Mandelbrot set generator and three chaos graph generators 1, 2 and 3.

MASM Assembler

In my early days with the IBM PC, I had been often frustrated by the slowness of many of the I/O functions found in high-level languages. To solve these problems, I used Microsoft: MASM 80x86 Assembler to write narrower but faster screen and COM I/O functions to call from BASIC and C programs.

Somewhere in the middle of my affair with BASIC, I also did a little project in Psion OP/L which involved a Psion Organiser communicating with a PC over a dial-up modem link.

Changing to 'C'

At the beginning of 1990, 25 years after I first started programming, I decided to transfer my main focus to 'C'. On February 25 I began an intense study of Kernig­han & Ritchie. On 19 March I ordered my first C-compiler: Microsoft C 5.1. With this I produced a small library of useful routines and made C-versions of some of my 'legacy' software. On 18 September 1991 I upgraded to C 6.0 with the Microsoft Programmer's Workbench. With this I prototyped quite a plethora of specialist C-applications ready for packaging commercially later when opportunity permitted. Below are some of the many samples of my 'C' programming:


Microsoft Windows

By late 1991, the pressure was well and truly on to move to Microsoft Windows. On 6 November I bought my copy of Microsoft Windows 3.0 together with Windows 3.0 Software Developer's Kit. I then embarked on an intense study of the SDK in which I followed the course supplied to build all the generic applications and used the Write and Pbrush utilities to make very effective study notes.

The event-driven architecture of Windows applications was reminiscent of the tech­niques I had used previously in flight simulation and telecoms switching. I then pro­to­typed two small specialised Windows applications. One of these was a small exerciser environment for an air navigation function. Unfortunately, there was a problem maintaining timing integrity in time-sensitive applications running con­cur­rently with other Windows applications.

I upgraded to Windows 3.1 on 06 April 1992. Unfortunately, at the time, I did not have a machine on which the 3.1 SDK would run. Also, on 22 September I upgraded my C-compiler to C/C++ 7.0 but encountered the same problem. Pressure of work from other directions subsequently forced me to put the development of serious Windows applications on indefinite hold.

HTML

With the advent of the Internet, I decided in the early autumn of 1996 that I should learn the hypertext mark-up language HTML. To this end, on 19 Sept 1996 I bought "HTML The Definitive Guide by Musciano & Kennedy" which I thought was a very well written and presented book. I studied it little by little on the train each day, later allocating actual desk time to it. I finished it on 4 February 1997. Although people who use HTML are referred to as programmers, I felt HTML to be more re­lated to my skills as a technical author than as a programmer.

Java

Looking back on my programming career so far, I have been frustrated by the con­stant changes in the pre-eminence of different programming languages and oper­a­ting systems. I feel that for application programmers it is like trying to build on shifting sand. Changes for the sake of technical advancement are fine, but it seems that all too many changes are due to commercially motivated fashion. It is for this reason that I transferred my allegiance again. This time to Java. The promise of a language which ran on a soft machine which would be implemented on every level of hardware from hand-held to supercomputer was most appealing.

On 5 February 1997 I attended an IBM seminar on OS/2 Warp 4. IBM later mailed each attendee a complementary copy of Warp 4 which had the Java run-time eng­ine built in, and came with Sun Microsystems' Java development environment. I had previously bought a book called "The Java Programming Language" by Arnold & Gosling, so being now suitably equipped, on 12 February I began an intensive study of the book, producing detailed study notes. The fact that Java was so much like 'C' helped speed the learning process. I later bought and studied another book: "JAVA - The Complete Reference" by Naughton & Schildt. Some of the Java applets I have written to date are [or rather, were] runnable on my Web site.

I now see — or at least hope for — a stable platform and format for application pro­gram building. This has two parts. On the client or presentation side, I see the browser as the environment and Java as the language. On the server side, I still see C as the main language for functional applications glued together into workable systems by Bash scripts. However, Java may replace C here also eventually. Let us hope that a stable foundation has emerged at last so that programmers can get some applications built upon solid rock.

A traumatic illustration that an application programmer is never safe from foundations of shifting sand occurred in early 2017. All major web browsers ceased to support embedded Java applications. This forced upon me a frantic rewrite of 31 Java applets to run as stand-alone Java Web Start applications. Each had now to run outside the context of the web page wherein it belonged. A truly retrograde step if ever there was one. Then, in 2019, all mainstream web browsers ceased to support Java. History had repeated. Vast amounts of effort over two decades expended in producing Java applets to illustrate physical, mathematical and finan­cial principles and applications — all for nothing, on the mainstream com­mer­cial pretext that they are somehow 'dangerous'. Absolute com­mercial bullshit! There is, frankly, no other way to express it.

And Back to 'C'

Consequently, during 2020, I rewrote all my Java applets in 'C' and offered them on this web site as downloadable source code which the viewer may scrutinise for safety and compile for himself. Compiling instructions are included at the beginning of each source file. The only reason I went over to Java was because I could embed fully functional illustrative programs in my web pages. Now that browsers no longer support Java Applets, the Java programming language offers nothing but unneces­sary complication. So now, for me, it's back to 'C' forever. It's unbeatable.

Additional

I have been also:


Parent Document | ©Apr 1994 Robert John Morton