Eiffel for Visual FoxPro Programmers: A First Word
I have been working with FoxPro in nearly all its forms since May of 1991, starting with FoxPro for DOS 1. Thankfully, I was able to graduate to each new version as they were released. A resemblance of Object Oriented software engineering appeared in VFP 3.0 in the mid-1990s. I was immediately stumped by it. The procedural methodology was fairly straight forward for me, but the OO didn't click until I finally joined a group of software engineers as a contractor in about 1999. It was here, I was mentored by a man who was both a math genius and a master software engineer in his own right. Not only this, but he was surrounded by other men and women of excellent skills, who poured themselves into me with the net result being an enormous acceleration in my own skills and knowledge base.
Along the FoxPro trail, the same mentor introduced me to OOSC-2, Eiffel version 5.1 and a other materials (e.g. Design Patterns, Extreme Programming, Refactoring and so on). Even so, I was mentally unprepared in very personal ways and so the entire matter fell by the wayside until our current project (JLOFT). This time around, the learning experience has been radically different. Ideas, concepts and notions of those 5.1 days that left me flummoxed and scratching my head (as though Eiffel was some form of "voodoo") are vastly clear in relative comparison. While it is quite apparent how far I have yet to go, the difference between then an now is really remarkable.
My Visual FoxPro brethren are facing the same challenge that I and others face. We are heavily invested in a language Microsoft has opted to abandon. So, we each have a need to reinvent ourselves into new technologies in order to professionally survive the next 20 years or more. Microsoft is pressing people within the FoxPro community towards .NET in its various forms. However, the Visual Fox community has not only the usual wariness towards Microsoft, but because Microsoft has chosen to abandon the FoxPro (and the people by extension), many FoxPro people are disenchanted with .NET
The Fox community shows this disenchantment by way of their dollars and energies. Many are exploring other language systems rather than simply falling in line with the .NET siren song broadcasting from high atop Mordor-in-Redmond as though it were the ONLY obvious choice and all ought to conform to.
One very fine engineer I am aware of has taken up REALbasic from Real Software (www.realsoftware.com) as an alternative. Other alternatives being batted about are products like one called Servoy. The alternatives always present the same types of issues from the viewpoint of FoxPro people: We see our very nicely packaged data engine-plus-language evaporating and are unable to find a like alternative.
To my FoxPro colleagues, I say: "Accept it and make the choices as they are in reality. It simply is as it is. So, work with it!"
Once the question of a combo-language-database-system is laid to rest, we're free to examine the landscape ahead. The danger is to make choices too quickly and based on the limited knowledge base and experience of the engineers, friends, co-workers and common sources around us. Thankfully, I had a voice 10 years back who exposed me to a larger vision of the engineering world around me and left within me seeds that are only today finally finding root and growing into what promises to return a great deal of professional fruitfulness and satisfaction. It is this simple fact that motivates me to take those same seeds and spread them further than myself.
Along with the JLOFT blog entries, I want to explore a possible way forward for those who (like myself) are wondering what the next steps can be. Additionally, it is helpful to mention how I have been professionally trained and certified in .NET with a present certification in ASP.NET as a Microsoft Certified Professional, so the .NET language is certainly not foreign to me. With this said and on the table, I invite you to explore with me some of the important issues as viewed from place of at least one Visual FoxPro software engineer.