...when Microsoft bought a little software company from Perrysburg, OH named Fox Software. It's hard to believe that three decades have passed since that transaction. Not a single day since then has passed when that acquisition hasn't positively impacted my life. As languages go, FoxPro wasn't any more or less remarkable than anything else. As an all-up environment that included an integrated data engine and SQL to complement its language, FoxPro was second to none. But there was something more to it.

In these pages, I often write about people, processes, and tools, in that order. For me, what was perhaps more important than the FoxPro tool was the FoxPro people. We often hear the word community in the context of social media. But once upon a time, before Facebook, blogs, etc., there was CompuServe. And in this context, there were the CompuServe FoxPro forums. It was in those forum spaces where I was exposed to and learned the importance of community. Those forums, among other things, were the Stack Overflow of their time. Whether it was a question about the product, how to optimize a query, or something more complex, such as application design, you'd surely get answers to your question. And, quite likely, you'd receive several answers, often in the context of spirted but friendly debate.

It was often good to reflect on the road traveled and that's what I'd like to do in this issue. Although FoxPro is no longer an active product, its spirit is alive and well, due in no small part to its legacy and its people. It's an anniversary deserving of celebration and reflection.

It's also worth noting that this year, .NET turns 20! Yes, there's a FoxPro connection there too. It was at the 1993 FoxPro Devcon in Orlando Florida. The keynote that year was given by Roger Heinen, the Microsoft Developer Tools VP. In that talk, Roger spoke of the “Unified Language Strategy.” That strategy eventually led to what, nine years later, became .NET.

It was at that Devcon that I remember seeing two whiz kids. One was Ken Levy and his cool tool GenscreenX, a screen generator pre- and post-processing tool. FoxPro was always “open” in its architecture. The screen and report generators were written in FoxPro! The extensions to those facilities were referred to as public domain at the time. Today, we refer to such things as open source.

The other whiz kid is the publisher of this magazine, Markus Egger. Even if you weren't a FoxPro developer, even just reading this magazine, you've been touched by the Fox! If you're super interested in a more detailed history, go to foxprohistory.org. Yes, there is such a site. I cite the incontrovertible maxim of Rule 34: The clean version is that there's a SIG (Special Interest Group) for everything <gd&r>.

Let's visit some things that owe their existence to or have been greatly impacted by FoxPro.

The MVP Program

Once upon a time, Microsoft's MVP program was known as “Calvin's list.” Calvin Hsia was one of the lead Fox developers. He kept a list of CompuServe members who were most helpful on the FoxPro forums. A few folks that were helpful to me and many others were people like Pat Adams, Lisa Slater, and Tom Rettig, to name just a few. Although I'll touch upon community later, the magic that was lightning in a bottle were these “elder states people” who were always there to lend a helping hand. There was one basic rule: Pay it forward. That's certainly what I've endeavored to do, following in their footsteps. Eventually, the MVP program started around 1994-5 and it was around that time I joined those ranks. By then, other MS-related technologies were part of that MVP program. At that time, there may have been around 600 MVPs world-wide. And it had all started with Calvin's list.


Remember ActiveX Data Objects? Predating ADO was ODBC (Open Database Connectivity). In the ODBC days, we had drivers. Eventually, it all led to the Entity Framework and other Object Relational Mapping (ORM) libraries. Going back to ADO, we had a similar concept called providers. The most compliant provider was the Jet Engine, which was part of Microsoft Access. ADO dealt with a client-side notion of data known as a CURSOR (CURrent Set Of Records).

One of Fox's strengths was the notion of an integrated database engine. The real magic was when ANSI SQL was added to the Fox language, which itself was a variant of XBase, like Clipper and Dbase. FoxPro's magic sauce was branded as Rushmore Technology. Dr. Dave Fulton, who owned Fox Software, had the foresight to patent what is, simply stated, a very optimized approach to indexing data and this yielded fast query results. That was FoxPro's chief stock-in-trade. And that's why FoxPro veterans of that era are keenly adept at dealing with large amounts of data effectively and efficiently. It's that IP that MS was interested in and it's that IP that found its way into many of MS's future initiatives.

When it came to leveraging all Fox had with regard to data, I have to tip my hat to three former co-workers: George Goley, Melissa Dunn, and Dr. Michael Brachman. We all worked at Microendeavors (MEI), just outside Philadelphia. Yes, we were the best FoxPro shop in the world, hands down!! Another alum of that shop and somebody very famous in FoxPro history was the late Drew Speedie, with whom I had the pleasure of working and learning much from. And when it came time to work with SQL Server-based data in an approachable way, there was no better person to explain that than Robert Green. Robert was the FoxPro product manager for many years, and then eventually moved on to helping .NET become the fantastic framework it has been for 20 years.


There are many communities today, thanks to social media platforms like Facebook and the ready availability of broadband. But once upon a time, when we were limited to 2400 or 4800 baud modem connectivity via a US Robotics Modem, we had something called CompuServe. My CompuServe ID was 72722,1243. Why I remember that I don't know. Nevertheless, we had a great online community where we virtually hung out, debated, and most importantly, helped each other. Debates could be very spirited!

Eventually, CompuServe gave way to something known as the UniversalThread. The UT, as it was known, was another great place to discuss, debate, and help each other. It was all organic, something that just existed. It wasn't created or conjured. It just happened. And ever since, there have been many attempts to recreate that magic. When I think of those days, a few names come to mind. I fondly remember the late John Koziol, who we lost a few years ago. We got into some mammoth debates over things that today seem trivial. But that spirit of community, like a family, with all its dysfunction, was a truly wonderful thing.

It was in that community where members like Steve Black turned us all on to how Design Patterns and the Gang of Four (GoF) book applied to our work. It was all new and exciting, especially when 1995 arrived, as well as Visual FoxPro and object orientation! How we fell in love with inheritance! How we hated all the problems that created! The bigger point was that we were all learning and sharing together. The FoxPro community was truly exceptional and no other community since then has ever come close to that experience, at least not for me. Speaking of Steve Black, he also introduced us to the Wiki concept that was first introduced by Ward Cunningham (Agile Manifesto, SOLID Programming). Checkout fox.wikis.com. If there's one phrase that described the whole FoxPro experience, it's the notion of “applied theory.” There's theory, and then there's the notion of applying theory in a way that makes it useful. Ever since my FoxPro days, that philosophy has permeated my thinking and writing.


We rely on all sorts of frameworks today: Angular, React, etc. And as previously mentioned, what we used to call public domain software is open source today. It was through FoxPro that I was introduced to the first, serious way to structure applications. This tied together design patterns, libraries, and other approaches to building tools.

One of the big names in FoxPro history is a guy named Yair Alan Griver (YAG). Once upon a time, he had a little shop in River Edge, NJ called Flash Creative Management and he created a thing called the Codebook. It was a somewhat opinionated way of documenting and application and applying conventions. My framework of choice was something called FoxExpress by Mike and Toni Feltman (Fox Software alums!!). The point is that through the community, we were all in it together, learning and teaching each other.

Another great framework was West Wind Web Connection by Rick Strahl (co-founder of CODE Magazine). I remember, way back in the mid-1990s, Rick showing us how we could build Web applications with FoxPro. If you went to fox.wikis.com, take note of the wc.dll in the URL when you navigate to a page. WC stands for Web Connect. Yes, Rick still maintains that framework, along with producing what I still regard as the best scholarship and work in Web development today. Before there was ASP, Ruby on Rails, or Node.js, there was West Wind Web Connect. Today the basic patterns we employ, such as the Model-View-Controller (MVC) Pattern and templating are familiar, because Rick was showing us how to do that 25 years ago in FoxPro.


For me, the most significant personal relationship and most meaningful professional relationship was due to my relationship with FoxPro. My best friend is Rod Paddock with whom I've worked on many projects, application-wise and book-wise, and also on this magazine for over 20 years. We met in 1994 in Toronto at FoxTeach. He wrote some cool content in the FoxTalk newsletter, the same publication where I got my start in professional writing. For the record, we didn't get paid hard money for those articles. Instead, the currency was coffee from this little Seattle-based coffee roaster called Starbucks. That's right...even coffee has a FoxPro connection for me! It was at that conference were Rod and I struck up our friendship and he told me about a book project he was on. That project became the book Visual FoxPro Enterprise Development. That project included me, Rod, Ron Talmage, and another guy named Eric Ranft. Eric went on to co-found a little e-signature company called DocuSign.

Although FoxPro as an active product is now history, its legacy is as relevant today as ever. I'm convinced that .NET, in no small part, owes its utility to that FoxPro acquisition. The people and ethos that were brought to bear on the Microsoft ecosystem has paid big dividends for the development world at large. And if you need any more reminding of that fact, you're reading this magazine, right?