We often do not realize the importance of people and events until many years later when the dust has settled and we can put them into perspective. Three years ago I was asked to write an article for the CDGN Magazine. It was titled "Back to the Future" and it dealt with the the role of Clipper in 1995 and into the future. I recently broke out my old copy of CDGN magazine and reread the article to see if my predictions match the current landscape.
I predicted that I would be writing my final article about Clipper in the year 2035. Many of you assumed that either I was much younger than I really am, that this was a typographical error, or that I had already lost it and was living on a ranch somewhere in California with Ronald Reagan. None of the above are true. I am now fifty-four years old. In the year 2035, I will be 91 years old but I will still be programming because in the year 2007 we will discover a new drug that restores dead brain cells. The year 2035 will mark the year that we finally arise from the ashes of the "great computer meltdown" of 2010. The meltdown will occur because of the Year 2000 debacle which will create a world-wide depression and create a political climate of hatred towards programmers that will build to a frenzy leading to "The Night of Broken Disks". Computer programmers will be fleeing to Russia, Iran and Iraq - the only safe havens in the world that will not be affected by the "Great-Satan Virus" due to their refusal to connect to the Information SuperHighway.
This great oppression of computer programmers will force those who are not killed outright, or sent to "de-programming camps" made their escape to third-world countries to hide for years in attics, befriended by a few, brave souls who know it is not their fault they were born "computer-literate". During this 20-year war on computers, an arsenal of "giant magnets" are created by the new war machine and the industrialized cities of the world are bombed with the largest "de-gaussing" campaign in history. No piece of software or database will be safe from annilation. Finally, the great war machine is defeated because it will fail to realize that it cannot maintain such a war when it destroys the very machines and software that allow it to wage war.
When it is all over, a discovery is made in a little house on the Prinsengracht in Amsterdam. A old notebook computer is found in the attic and sent to a museum. While restoring the computer, a small disk is found, still fused in the disk drive. Because of its condition, it appears that the notebook had been there for many years. Much work goes into the restoration of the disk and its data and finally, it is discovered that the disk contains the diary of a young, computer-literate girl who had lived in hiding for many years. By this time, the only computer-literate people left in the world only speak Russian or Farsi, so it takes much effort to figure out how to decipher the data on the disk. Finally, a compelling and sad story emerges about a young girl who struggles to maintain her innocence, her sanity, her computer-proficiency, and her faith in God while hiding from the great de-gaussing and de-programming regime.
It is a sad story, and it takes time for the world to really understand her story, especially her references to "The Book of Clipper". What was Clipper? Was this what helped her maintain her sanity and her faith in God? What happened to the young girl? Her story spreads around the world, and a never-ending search continues for a copy of "The Book of Clipper". Finally, the search ends in a little Russian town. Not a single person realizes that "The Book of Clipper" is a reference to the manual for the computer language that every single Russian speaks fluently, until someone finds a copy of the manual that Larry Heimendinger had left at the only Russian Clipper conference ever held - in 1992. It is dusty and worn, but it is the only book left that tells the true story of Clipper. Even though every programmer in Russia can speak Clipper, not a single one of them has seen a copy of "The Book of Clipper" because none had ever been sold. The software had been pirated, and then spread from disk to disk throughout the country while the story of Clipper passed from mouth to mouth. The Russians are the only civilized society that still has a programming language, so they offer it as a gift to the world, and the world becomes whole again, and the people rejoyce, and I come out of hiding - to write my final article about Clipper.
I often think back at what my life was like in the mid 80's. After many successful years as an Electronics Engineer my life was just not working anymore. Thieves broke into my business office and stole my computers and my software (including the backups). I was struggling with a failing computer-accessories manufacturing business that had pushed me deep into debt, and then my wife decided to just leave one day and head for greener pastures. I thought she had been kidnapped because she disappeared without a trace.
Arlo Guthrie once wrote a song about "The Last Man". He said "You think you've got it bad? Look at that guy?." I WAS that guy.
Then, one day, in early 1986 I was struggling with a problem trying to get dBase-III to work properly on my new peer-to-peer network. I recall making a tech support call to the network developer and the person on the phone asked "Are you compiling with Clipper?"
This simple question, in retrospect, was equivalent to someone posting a huge sign "Except a man be born again, he cannot see the kingdom of God". Clipper was my salvation. It allowed me to layeth down in green pastures and it restoreth my soul. So how did it come about that a person could be saved from the depths of depravity by a mere software product? We all have our stories of salvation, and they all take us down different paths but they all lead to the same place. My story in not unlike C.S. Lewis' story in "Mere Christianity", except the players are different. The Book of Clipper is not one story, but hundreds of stories all evolving from the "Platitudes of Vulcan".
Tom Rettig entered the scene around 1986 and offered an add-on product to Clipper titled "Tom Rettig's Library". Tom was a well-liked, generous person who eventually offered his library into the public-domain. Some of us are old enough to remember him as Jeff, the small boy in the original "Lassie" series on television in the 50's. I first met him at a user group in Southern California. After the meeting we went to a bar for a few beers and he sat and talked to us like we had all known him for years. He inspired us to do what he did, because he was just like us. The next day, I thought "If Tom Rettig can make a successful add-on product to Clipper, so can I". I wasn't the only person who had seen the light that night. Tom had broken new ground, had planted the first seeds, and from these seeds, an entire community of user-groups, programmers, applications, add-on products, books, magazines, et al, grew into maturity.
So you may be thinking "What is he talking about? Clipper is Dead!". In the sense of a product, this may be true, but in the sense of a language, it is far from true. Let's imagine that Chinese is packaged into a product named "Visual-Chinese" and this product includes a set of design-tools for creating quick-Chinese documents that can be easily integrated into our marketing documents. Soon we would find our business opened up to a new market of 1 billion people. The product becomes instantly successful and everyone love its and uses it - until, years later, when we find that our marketing documents are not delivering any sales. Why? Because the language had to be cut and trimmed to fit into the limitations of the software environment. It becomes ambiguous, arrogant and unwanted by the very people who inspired its development, so it dies and Visual-Chinese gets thrown away like every other Visual tool. Does this mean that the Chinese language dies with the product? No. Chinese is a language that will endure. It has lots of users; it is robust, and it is mature.
The key word is "language". Development strategies should be built around the choice of a proper language, not just a product. Clipper is a language that endures. It cannot die. It has widespread use around the world and there are hundreds of thousands of Clipper legacy applications still doing mission- critical work. Unfortunately, because the word "Clipper" is owned by CA, and because CA has essentially abandoned Clipper, it cannot endure under the name Clipper, so it must endure under another name: that name is "Xbase". Software developers try to treat languages like they own them, but they are only temporary custodians. This leads us to a discussion of the current state of the Xbase language. Xbase currently exists in 5 dialects:
Now Alaska Software has the bomb! - And they are ready to intervene.
In my opinion, Xbase++ will become the Xbase custodian for the next generation of Xbase. Why? Here's a small list:
Bill Gates has chosen Basic, not because it is better, but because he owns it. He doesn't own Xbase, and Bill cannot embrace something that he cannot control. Borland chose Pascal. Not because it is better, but becaused they own it.
Over the past 10 years, the success of the Xbase products has been due to the high degree of abstraction of the Xbase language, which makes it vastly simpler to acces and use operating system functions and resources. In addition, Xbase is more than just a specialized programming language, a database navigation language, or a user interface language - instead, it combines all of these roles, harmoniously integrating them with one another.
Xbase offers dynamic data types and is generally described as being highly "tolerant". Taken together, these benefits have persuaded a steadily growing community of users and developers to rely upon it as a choice for implementing mission-critical and commercial PC-desktop applications. In fact, world-wide, more than one-third of all DOS-based commercial applications now in use were written in Xbase, with Clipper accounting for the major share.
So is this the Holy Grail? Is this the Magic Wand? In a way it is, and in another way it isn't. Xbase++ doesn't take a DOS text-based application and convert it to a Windows GUI-based application. It does, however, take a DOS text-based application and convert it to a 32-bit text-based application running as a true Windows application. Of course, this isn't the final result that we want for our 32-bit Windows applications, but it is a major step, because until now, nothing could accomplish this feat.
Migrating large Clipper applications requires that we meet certain objectives before continuing to the next level. Many Clipper applications have dependency on some third party library or maybe even a library of your own C routines. Xbase++ allows us to deal with these issues and resolve them before needing to write any GUI migration code at all. I had to deal with this when evaluating a strategy for migrating dCLIP to dCLIP++. The Clipper version of dCLIP has about 20 "C" functions and 10 "ASM" functions that are key to its functionality. The most important of these is the interactive preprocessor that works with the dot-prompt interpreter. Xbase++ has an extend system that is nearly identical to Clipper, so it required making only a few modifications to the parameter passing logic in my original C code and it was ready to compile with any 32-bit C compiler. I was able to test this conversion without writing a single GUI dialogue. I just compiled, linked and ran the new application.
Every other language would require converting all screen output code from text-based to GUI-based before I could run the application. Even a Clipper-compatible languages like VO do not let us start from this vantage point because it it cannot handle the text-based IO requirements of the Clipper application. dCLIP has hundreds of dialog screens, menus and browses that all write text-based screens. In VO, every one of these dialogs, menus, and browses would have to be re-written before I could turn the application over to the users. It could take years to migrate 10 years of Clipper code into a useful program.
Xbase++, on the other hand, allows me to migrate the application in steps:
Microsoft, Borland, and CA each wants us to build applications their way. They want us to learn their programming tools, their methods, their plug-ins, their workshops, and their studios - not their language. Why? Because applications built around their environment will be harder to migrate to competitor's products than applications built around a language.
So they make sure that the language is difficult and inaccessible, and that the application cannot be maintained or migrated to any other platform, other than platforms that they support. Programmers, however, have to survive in the real world and this requires platform flexibility. The reason why so many mission- critical DOS applications are still surviving in the real world is because each development platform supports DOS as a subset, so DOS has been, out of necessity, elevated to the status "platform independent". I can run my Clipper applications under MS-DOS, PC-DOS, DR-DOS, OS/2, Windows 3.1, Windows 95, Citrix- Winframe, MULTI-DOS, Windows NT and Novell-DOS. I can run my Delphi applications only under 32-bit Windows. Is this a step forward?
Xbase++ has taught me that GUI applications can be built with the same functionality and structure as Clipper applications without losing its platform independence. I learned this when I was developing a system to convert my hundreds of @SAY..GET dialogues to GUI dialogues. The event model supported by "Xbase Parts" allowed me to develop a new dialogue system that works with a "Get-List", similar to Clipper, and then pass the GetList array to either the text reader, DC_ReadModal() or the GUI reader, DC_ReadGui(). This abstraction of the functional design of a dialogue from the code implementation of the dialogue allows for architectures in which Clipper @SAY..GETS and menus can be easily migrated to GUI. I am a great believer in the power of "data- driven" systems and have developed several applications that use these concepts heavily. Xbase++ makes it not only possible, but rather easy, to migrate my entire dCLIP library into a new product named dCLIP++ that allows me to simply flip a switch at runtime and the application switches from text-based to GUI-based.
The only thing that is common between Xbase++ and Clipper is the compatability of the language, otherwise, Xbase++ is an entirely new programming language that is created by an entirely new company who is un-encumbered by an old user-base, by old loyalties, or by an old marketing strategy. Alaska enjoys the freedom to move forward with a vision of "a perfect world" that the other Xbase custodians could not realize. The other Xbase dialects were all acquired by large companies who had already established their language strategy and bought the products not for their technology but for their user-base.
Last week, I had the good fortune to spend time with Steffen Pirsig, the chief architect of Xbase++. I had already spent about 5 months with the EEP releases of Xbase++ and was impressed with the compatibility, the documentation, and the overall product design. I wondered what kind of person was behind this product, and what plans he has for the future. I have met many programmers over the years and find that the really talented ones are also the hardest to get to know. They usually have a body language that discourages communication and an attitude that is condescending. Steffen was different. He had an openness and an engaging manner that left me completely at ease. He had remarkable depth of understanding of his market, his product, the current technology and even the history of Xbase, yet he didn't growl at me - instead he invited me into his world and asked me for my opinions.
I woke up from my dream and ran to the mirror. I was relieved to see that I wasn't 91 years old but was still a young man. I exclaimed "There's still time!" I bolted to the window, looked out, and saw that The Land of Clipper looks different than it did yesterday. The paths are 32-bits wide and they lead everywhere, yet they look familiar and something tells me that there is nothing to fear at the end of these paths. Then I realized that I had not been dreaming and that Clipper had not really died at all but had been in a cocoon, waiting to metomorphose into a butterfly, one with big X's on it's wings. The butterfly is beautiful and it attracts the attention of people like Dirk Lesko (author of Funcky), of Jud Cole (author of Blinker), of Dave Kuechler (author of Comix), and others who once frolicked in the land of Clipper.