Visual FoxPro -- Microsoft's Little Secret
Written: Jul 26 '02 (Updated Dec 21 '04)
|
Product Rating:
|
|
|
Pros: Powerful, fast, excellent software development tool!
Cons: Large library of functions, database not that robust, Microsoft wants it to die quietly.
The Bottom Line: Visual FoxPro 6.0 was an excellent development tool. Unfortunately, nobody knows if Visual FoxPro will be around for the long haul.
|
|
|
| bkiser's Full Review: Microsoft Visual FoxPro Professional Edition 6.01 ... |
I spent about 9 years in some version of FoxPro, including this version, so please forgive me if I sound a bit fanatical. It's a great product that has gotten better over the years. A development product like Visual FoxPro is highly technical and for use by programmers, but I'll try to keep this review somewhat in layman's terms (as much as I can). If you have any questions about Visual FoxPro after this review, please feel free to email me.
Visual FoxPro started over ten years ago as a product called "FoxBase", which was basically a dBase clone. Before too long it grew into a new package simply called "FoxPro." It distinguished itself from the other xbase products (dBase, clipper, etc) and rose to prominence. Microsoft bought it from Fox software around 1992, and released a version shortly after called FoxPro 2.6 for Windows. Version 3.0, renamed "Visual FoxPro", came out around 1995 and had lots of bugs, but it was object-oriented and looked more like the common Microsoft programming environment that we know today. There was no version 4, as this number was skipped to bring the product to the same version as the other Microsoft products--version 5.0. Version 5.0 was a dramatic improvement over 3.0, offering basically the same interface, but improved performance and lots of bugs fixes.
Visual FoxPro 6.0 is a fully object-oriented database programming environment. It includes inheritance and encapsulation, two of the major defining attributes of an object-oriented language. For xBase programmers, Visual FoxPro (for the rest of this review, I'm going to call it VFP) is THE xbase development language. It's highly flexible and allows all the functionality that one would expect in a modern language. It's faster than Visual Basic for most tasks. It lets you create executables that are freely distributable with no licensing or royalty fees. This is great news for consultants or anyone that writes and sells software for a living. VFP also ships with the default VFP database, which is handy and reliable enough for small business (much more on this later). Software tools ("wizards") are included to automate many tasks, like creating screens from scratch, generating and printing reports, displaying database information, and much more. However, the real power of VFP lies in the tools that let you create user interfaces and in the programming language itself. It's really a full-featured language. It's grown from a powerful language in the early '90s to having a very thick user's manual now in 2002. Some people are overwhelmed by the complexity of VFP, but after programming in C , Java, Visual Basic, and several other languages, I can honestly say that it's easier than most others. It's on a par with Visual Basic, in my opinion. Definitely easier to learn than Java or C , and the development tool is much more powerful and mature. The editor is a typical Windows type editor. VFP 6.0 does NOT have intellisense, which is a Visual Basic ability to "guess" what a developer wants to type, but VFP 7.0 does. Of course, the language is NOT cross-platform, as it's a Microsoft product. You can still find an old product called FoxPro for UNIX that came out around 1992 or 1993, but it's seriously out of date and primitive by today's standards.
The VFP 6.0 IDE (Integrated Development Environment, or simply, the user interface) is very nice, and somewhat resembles the standard Microsoft interface. It contains the property palette and similar menu items and toolbar, but also contains something called the "command box." The command box allows you to enter VFP commands and see the results real-time. It's somewhat similar to the Visual Basic intermediate window (I think that's what it's called), but with minor differences. This is useful for testing a line of code before actually putting it in the application (I'm thinking of monster SQL statements that I used to run).
VFP has a strong following, so there is lots of third party support. There are VFP user groups on Usenet, and plenty of web sites and users groups devoted to VFP. I tend to use www.Experts-Exchange.com to ask (and occasionally answer) questions. www.universalthread.com is another great site with much downloadable code, but navigating the site takes a little getting used to. www.vfug.org is a user's group that is another great resource.
Some negatives to the product:
Unfortunately, rumors have been abounding for several years about the demise of VFP. These appear to be just rumors, but Microsoft does not support VFP as much as its other products. You see much less advertising, and there are many fewer annoucements and press conferences about VFP than there are for VB or C#, two other Microsoft languages. Ken Levy, Microsoft Product Manager, told me in email that the VFP development team has been warned not to step on the toes of the venerated Visual Basic team. Microsoft would rather the consumer buy Visual Basic and SQL Server (Microsoft's enterprise database) rather than just VFP. VFP is *CHEAP*, and Microsoft makes much more money from a Visual Basic/SQL Server solution.
VFP 6.0 came out before .NET, so it obviously cannot take advantage of the new common IDE or common runtimes (the "core" files necessary to run the programs one writes in VFP). Because of this lack of integration with .NET, the future of VFP is probably a little more in question than it was previously. Many people, including well-known VFP professionals, say that Microsoft is discreetly trying to drive users away from VFP and towards the more expensive software solution of Visual Basic and SQL Server, Microsoft's entry into the database market.
Although VFP 6.0 can use ActiveX objects, it cannot create them. I'm not sure what is possible with .NET, but prior to .NET, only Visual Basic and Visual C could actually create Active X objects. You can, however, create reusable classes that other VFP programs can use.
Although VFP ships with a "native" database in the xBase format, you can also use ADO (ActiveX Database Objects), just as Visual Basic does, to access databases.
The dBase file structure that VFP tables are based on is also a problem. It's a 20 year old file format that is prone to file corruption (flip your PC off with a VFP program running and you might see what I mean), and it lacks many features seen in the enterprise-level databases like SQL Server, Oracle, and DB2. It cannot hold that same volume of data that these larger databases can, although a medium-sized business and some larger businesses can probably use VFP just fine.
Many users also complain of poor performance and "clunky" programs using VFP. The fact is, VFP can make very elegant screens and high performance applications. I think these flaws exist because VFP is a powerful language, and easy to get the basics, but difficult to learn WELL. It's not taught in schools, so most everyone is self-taught. I was one of those people that wrote "clunky" application for several years before I really got the grasp of VFP. It really just takes lots and lots of experience to write the best applications in VFP.
VFP is so complex and so rich that I certainly can't cover it all in one short review, but it's an enterprise-level development language that is just as powerful as Visual Basic. Whether it survives, unfortunately, may not be determined by the quality of the product alone. Even great products need company support.
*** 2/9/2003 Update ***
I'm happy to say that I just finished beta-testing version 8, so at this point, it's still surviving. :)
*** 12/21/2004 Update ***
This little love affair has a sad ending, I'm afraid. Although Visual FoxPro is now up to version 9(!), I haven't developed a serious Fox application in over 4 years. I am now a C#.NET developer, and now work with several other ex-FoxPro developers.
Recommended:
Yes
|
|
|
|
Epinions.com ID: bkiser
|
|
Reviews written: 33
Trusted by: 18 members
About Me: I'm a Systems Consultant for the Kentucky Commonwealth Office of Technology.
|
|
|