Wednesday, March 4, 2009

Where would I be if I did not learn WATFOR?

The artifacts of software are explicitly linked to the evolution of computers or CPUs. If there is a CPU (Central Processing Unit), then there must be software instructions governing the CPU. The instructions compiled or assembled into executable tasks is called software in general compared to the physical components of the CPU called hardware. There are various layers of software and hardware that make up a computer system. The interaction of hardware components is also controlled by software building on specialized instructions to manage input, processing, storage and output. 

Whether it is a CPU utilized to control the flow of air in a building or a generalized CPU used for desktop computing, software is by far a very expansive path to study. To uncover and resurrect past software (or Ruins) and its contribution to the evolution and innovation of the computer industry - in a few short years, is challenging enough, given the nature of our minds forgetting things and tossing out we no longer need or use. Computers are living lives less than Dog Years. In a few short years, a computer once thought of as the greatest and best, is now on the trash heap forgotten. Because of this, many of the artifacts and history of software is left in rubbles in the back of our minds, lost unless we bring the stories out and share them.

Without CPU and hardware, software would have no purpose or exist. As I explore my own personal stories growing up with computers over the last five decades, and those of my friends, it resonates how fortunate I have been to witness, and be a part of the explosion of innovation – driven by the economics or some would just say just sheer capitalism. To create some improved value over the previous works of art drives the computer industry and much of technology exploration in the hope each new innovation brings us purpose and usefulness, which would then derive value.

I carry around with me - like impressions of art scattered on the wall of my life, a diverse set of stories that brings me to the present and propels me to the future. The stories have varying colors, mediums and textures that bring to light the impact of what I was seeing, feeling and absorbing through the years. Some are deep rooted and moved me to take a new direction. Some are real boring to bring up. Some are quite interesting and filled with lessons learned. Many are humorous, since we cannot take ourselves so serious in a world that is always top-see-turvy.
 

Almost every day, thoughts come to mind, relating to my personal history and the evolution of modern computers and software over the last half century. This has led me to writing down some my stories and in part, sharing them on Software Ruins as a means to collect the artifacts of the virtual world that are not with us any longer. My son will never need to prepare paper tape or punched cards to read it into a computer. My daughter will never have to play with a floppy disk. Yet, both will utilize the descendants of computers and software that leveraged those devices in the migration we call time.

This is not meant as a history lesson – so don’t worry. But, looking back, and diving into the past, offers the opportunity to reveal and share with retrospect and insight. Given what we have witnessed and experienced, one can only imagine what our future holds. Most of the time, we are not thinking about events relative to their impact on us or our community or our world as they occur or soon after. It often takes years to reflect and ponder the subtle implications. I guess that is one of the benefits of looking backward and relating it to what transpired.
 

My father worked for GE before I could remember much. He moved around a bit between the commercial and space divisions as they focused on different initiatives in New York and Pennsylvania. In the 50’s, he was part of a team inventing magnetic tape drive assemblies. They were external storage devices that radically changed how second generation mainframes evolved past their physical memory limits of their ancestors just a decade earlier. My father’s engineering and inventive side was inherited by me I guess. My mother was the artistic and nurturing spirit who always told me I could do anything I put my mind to. She was the one who gave me the comfort to think outside the box.

My first introduction to computers came when I took my freshman course in FORTRAN. It was a required course in 1973. The class was in one of those huge lecture halls where 300 or so students sat in the auditorium and we listened to the professor talk about the history of computers and how relevant it was to our day. My class involved writing simple FORTRAN programs to solve mathematical problems using punched cards. It was not one of the coolest courses. I struggled and persevered through it. It was only one semester anyway.

Looking back, I can now see further insights into how the computer industry was evolving. It is not savage. But, there is a form of cannibalization and efforts orchestrated to dominate competitors through any means possible, including using the legal system to fight patents and inventiveness.
 

The evolution and drive to address the obstacles of commercializing computers begins and ends with adoption. As a consumer, back in the 70’s, I saw no relevance to what I was learning about a technology that was still evolving. It was early in the adoption cycle, where the masses sit back and wait until others, more adventurous, explore the unknown. Computer memory and capacity limitations played out over decades – not one semester. Software operating systems and hardware evolved to serve commercial markets and their obstacles incrementally. There was no big boom and computers were everywhere. It was a long stretch over time that patterned Darwin’s theory of evolution.

FORTRAN was an early language developed by IBM. It was designed for numerical computation compared with COBOL, designed for character based data as an alternative to machine level programming for the IBM mainframes. From what I understand, IBM funded the University of Waterloo to develop WATFOR in 1965 for the IBM 7040. By the early 70’s, Drexel University was using the WATFOR compiler as the basis of the Introduction to Computers course. The WATFOR compiler was popular on college and university campuses.
 

The employees of the University of Waterloo led by Ian McPhee spun out to form a compiler company in the early 80’s. They developed other products including WATCOM APL, BASIC, COBOL, PASCAL, FORTRAN and WATCOM SQL on a range of hardware platforms. It was an impressive array of work for a small company. They moved down to micros and embedded applications with their WATCOM Assembler. The Commodore SuperPET used WATCOM as the basis of their software. And, in the late 80’s, WATCOM introduced a C compiler for the IBM PC competing with Borland and Microsoft.
 

C was a developed originally on UNIX by Bell Telephone Laboratories in 1972 to form independent system software. The C language incorporated some of the syntax and semantics of other languages including ALGOL, FORTRAN and COBOL. As a compiler and language, C was designed for portability with features supported by general purpose CPUs with modularization, structure, and code re-use. Before I got into C, I learned ALGOL first on the Burroughs 5500 and fell in love with writing software. I soon moved to PL/1 and then C as I worked on Prime Computers running UNIX. Which is when I realized my calling was in developing and architecting software systems.

I look back on my programming start with WATFOR. How ironic things seem to cycle back to where one starts. Fast forward twenty years. It was 1993, and my software company was launching a second generation campus administrative system called ABT PowerCAMPUS to replace the first generation ABT CAMPUS product line that was running on Wang 2200, Digital Vax and PC LAN Networks.
 

We chose to utilize Sybase SQL Server and PowerSoft’s PowerBuilder as our primary development platform. This was a ground up project. We were starting from scratch. We also wanted to support MS SQL Server and Novel SQL in the early stage of our development. Our attempt was to build a portable front-end and back-end. But, that ran into difficultly when dialect differences overwhelmed us. So, our primary focus was on Sybase and PowerSoft. Our goal was to develop a stable product by 1995, and MS SQL Server was not well regarded at the time. We played around with version 4.2 and had to wait until version 4.9 before it became more stable and provided the functions we needed including Stored Procedures.
 

Now, let’s regress a bit. Microsoft bought the Windows based SQL Server code in 1993 from Sybase and dissolved their revenue sharing partnership with Sybase that started in 1988. So, the split created two competing code bases on the same NT platform, with a common ancestor of Transact SQL, but gave Sybase a small war chest to acquire companies and diversify. Both were competing for the growing client/server database market against IBM, Oracle and Informix still on UNIX or mainframes.

While in the midst of starting our PowerCAMPUS project, WATCOM International was acquired in 1994 by PowerSoft. Then, a short year later, Sybase acquired PowerSoft in 1995.

Remember, Sybase, was the author and developer of SQL Server as I mentioned earlier. Its popularity was mostly on UNIX. Yet, a growing base of corporate PowerSoft developers were loyally aligned with Sybase SQL Server on NT– because of the dialect variations and stability issues I mentioned earlier kept everyone away from adopting Microsoft’s competing version. Product maturity has a way of helping one retain a client base. Lesson learned.

As Sybase absorbed the PowerSoft and WATCOM technologies, they incorporated the C compiler into the PowerSoft PowerBuilder toolkit and WATCOM SQL was renamed as SQL Anywhere, a desktop, single user database. Soon, we were compiling the PowerBuilder objects generating C code and executables replacing the interpreted Basic like code. Performance improved. And, we were utilizing the standalone SQL Anywhere to develop and qa our product development.

So, from the start in 1973, I learned programming using WATFOR - a simple FORTRAN compiler. And, twenty years later, I was reintroduced to WATCOM technology that evolved with the industry, at the same time I was trying to navigate the nuances of who was doing what to whom and trying to pick which vendor and products to utilize in my efforts to create value for my niche market, given the nature of how technology companies follow the laws of Darwin.



Innovate or perish.

No comments:

Post a Comment