Slashdot Mirror


Microsoft to Open Source FoxPro

rah1420 writes "Microsoft has announced that it will open-source the core portions of the Visual FoxPro DBMS software to its CodePlex community development site. At the same time, Microsoft has announced that it will no longer be making new versions of the FoxPro DBMS."

33 of 172 comments (clear)

  1. Umm, no. by dudeman2 · · Score: 4, Informative

    See first comment in the article by a Microsoftie:

    NOTE that the released part is Sedna and NOT VFP nor VFP core elements!

    Sedna is a project Microsoft has been working on for the past year or so. Sedna is built using the extensibility model of VFP9 and provides features like better connectivity to SQL Server, integration with parts of the .NET framework, wrappers for Vista APIs to make it easier to write applications that run on Vista machines, as well as better support for VFP data in Visual Studio.
     

  2. Rushmore technology anyone? by wandazulu · · Score: 4, Interesting

    Will the Rushmore technology that was so attractive to Microsoft in the first place be included in whatever they release? The way I understand it, Microsoft bought FoxPro from FoxBase to get Rushmore to add to Access 2, and then they wanted to dump FP. Apparently there was such a vocal outcry that they've kept FoxPro going, until now.

    I'm curious because I really want to know what made FoxPro the speed demon it's always purported to be. I read somewhere that it was the first dbase-class database program that used bitmap indexes, but that was contradicted by another article from somewhere else.

    1. Re:Rushmore technology anyone? by Just+Some+Guy · · Score: 4, Interesting

      I'm curious because I really want to know what made FoxPro the speed demon it's always purported to be.

      It's not. It may be quick for the common case of a small table (10K lines) on a local drive, but move outside that and it's horrid. FP supports multi-user access by putting the data files on a network drive. If you want to query it, your machine has to read to entire file, throw out the lines it doesn't want, and present the results. My company has about 40 people using the same legacy FP database from a RAID 1+0 system over gigabit ethernet, and it's still hundreds of times slower than running similar queries via SQL to any "real" database.

      Let me put it this way: I wrote a program to export our FP tables to tab-delimited text files and then import those into PostgreSQL. This takes about 25 minutes, and we run it hourly - and it's still worth the pain. Reports altered to query PostgreSQL instead of FP typically see speedups of several hundred times, multiple users can run the same reports simultaneously, and you can actually run the reports over a slow link since only the query and resultsets have to traverse the network instead of the whole table.

      I know this will come across as flamebait, and I'd normally not say this, but anyone who claims that FoxPro is fast is a hobbyist programmer. It's simply not fast by any imaginable standard other than the trivial case of small files on a single user's drive.

      --
      Dewey, what part of this looks like authorities should be involved?
    2. Re:Rushmore technology anyone? by k12linux · · Score: 4, Insightful

      FoxPro IS fast or at least was when I used it last. BUT only if you are retrieving limited datasets that are indexed correctly. If your query can use indexed columns to limit the number of records returned you are ok.

      I did the programming on a system which resided on a Netware v4.11 server back around 1993 and it had one table with somewhere around 3 million records. Queries were lightning fast if you didn't match too many rows and the query was optimized to work with your indexes. Queries which couldn't utilize indexes, however, were painfully slow.

      Having said all that, however, I can't think of any legitimate reason to use DBASE style databases these days. With free DB servers like MySQL and PostgreSQL why bother?

    3. Re:Rushmore technology anyone? by Just+Some+Guy · · Score: 4, Insightful

      Queries were lightning fast if you didn't match too many rows and the query was optimized to work with your indexes.

      But even indexed queries pale when compared to a "real" database. Since FP is file based - that is, each client has to read the files directly - even the index files have to be transmitted over the network to do those lightning fast queries. At some point you saturate your NIC, and after that all the processing power, RAM, or fast drives in the world won't make it a millisecond faster.

      Compare and contrast with any client/server system, where all those queries are consolidated into one cache shared among all clients, and only the actual requested rows have to be returned. By its inherent architecture, FP simply cannot ever hope to be as fast.

      --
      Dewey, what part of this looks like authorities should be involved?
    4. Re:Rushmore technology anyone? by mplemmons · · Score: 3, Interesting

      Yup, Visual Foxpro was fast as hell, although IMO the speed topped out around version 3. And not just fast on rinky-dink tables, as long as they were reasonably indexed. Stick the server component of a c/s solution on the same server as where the data resides, and performance was great for tables having over 1M records. It was a good on the "back end" of web servers, for example.

      More than speed though, I enjoyed the data-centric programming language. It was a joy to use and a bunch of functionality could be smashed into just a few lines of code. I miss it.

      I think the real reason for it's demise is that it was cutting into the per-seat profits of SQL Server. Throw a VFP application on a file server and it was available to a bunch of users for free. We still use a server-based app where I work that is run several thousand times per month, trouble-free.

    5. Re:Rushmore technology anyone? by nogginthenog · · Score: 2, Informative

      If you want to query it, your machine has to read to entire file, throw out the lines it doesn't want, and present the results
      That is incorrect. FoxPro only reads only the data it needs.

      I know this will come across as flamebait, and I'd normally not say this, but anyone who claims that FoxPro is fast is a hobbyist programmer. It's simply not fast by any imaginable standard other than the trivial case of small files on a single user's drive.
      Another lie. I've written FoxPro apps that are used in 100+ multiuser environments with multi gigabytes of data. Fast as hell.

      I'm not saying it's better that client-server but to say FoxPro is slow is wrong. You can write crap applications in any language you know.

    6. Re:Rushmore technology anyone? by sutekh137 · · Score: 2, Informative

      Let's see... I just did a query against a 1.5 GB table (DBF) that has an index file (CDX) of 240 MB. I did an indexed query that returned 435 records or so, and it did it in 1.11 seconds.

      So, you are mistaken. Either that, or my machine downloaded 240 MB in under a second. Sorry, our network isn't that fast. *smile*

      I don't know much about file servers, but the entire index file does not need to come down. Not sure if that is a boon of the file server or of Foxpro, but I have been fighting that myth for ten years -- Foxpro does NOT pull entire files down...neither the index files nor the data file.

      Let's get some other "duh" stuff taken care of. ANY system will be slow if you pull down a lot of data. That's because the data is coming down. It has to traverse the network to become truly local. If it isn't coming down, like some sort of DataReader thingamabob, then OK, it isn't down. But then don't try joiing that table to another local one, because then you'll just have to wait _then_.

      Foxpro is incredibly fast. We have custom applications totalling more than 600,000 lines of code. Everything from old DOS-based input screen to an imaging system (scan, classify, viewing) housing more than 5 million images/files across 2 SQL Server databases (yes, VFP does wonders with SQL Server databases as well). The file-based DBF problems arise as they would with any file-based solution: size limits, contention issues, corruption, etc. But we have over 50-60 users regularly pounding our system, a mix of DBF data and SQL Server data, and it works pretty darn well.

      Foxpro's other advantage is what it does with client side data. I can read in an XLS file (one line of code), bring in data via a SQL Server query (3 lines of code), and query a local DBF file (one line of code). Each query will reside in it's own local cursor which can then be indexed, browsed etc. Even better, those cursors can then be joined, filtered, and queried to build another cursor with all of that data brought together. I hear Microsoft is still working on a local engine with that kind of power for .NET. It's called LINQ, and it isn't out yet. Foxpro has been doing this stuff for more than 15 years. I've accessed text files, Excel spreadsheets, AS/400 DB2 data, and SQL Server data all at one time and generated reports that can be viewed, printed, and/or exported back to Excel. All coming from million+ row data sources, all heterogenous.

      Foxpro has a lot of problems, sure, and I am digging .NET. But I have never seen anything do what Foxpro can do with varied data sources and local cursor speed in 15+ years of business database programming.

      And one more time: FOXPRO DOESN'T PULL DOWN THE WHOLE INDEX FILE WHEN DOING QUERIES! *phew* *smile*

  3. If only all orphaned software would go this route by davidwr · · Score: 4, Insightful

    I wish all companies would open-source or at least make available free-as-in-beer their obsolete-and-non-competing products. If they can't make it free, then make it $1.

    Except for games, which have a commercial nostalgia market, most software over 10-15 years old wouldn't be commercially viable even if it did run on the latest operating systems.

    I for one would love to fire up Windows 3.1 with a 15 year old copy of Microsoft Word and print to my Postscript printer, just to see how fast it is on my modern PC.

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
  4. Re:Open source is not a verb by aapold · · Score: 5, Funny

    I'm glad we have someone to grammar our articles.

    --
    "Waste not one watt!" - CZ
  5. License by MrWGW · · Score: 2, Insightful

    I don't suppose anyone knows what open source license the software in question was released under? I looked in the article, without success.

  6. Re:Open source is not a verb by L.+VeGas · · Score: 4, Funny

    Don't verb that adjective! It bad's the language.

    Excuse me, I have to go full my belly.

  7. Re:Foxpro by An+ominous+Cow+art · · Score: 2, Interesting

    I've been programming in various versions of FP since 1989 or so (FoxBase+). Since the language is built around the idea of manipulating tables, doing so is incredibly easy compared to the awful hoops you have to jump through in more modern or general purpose languages (Java, perl, python, C/C++).

    That said, it feels very dated working in VFP. Especially with things like arrays, which are horribly crippled compared to the equivalent in perl or python. VFP's OO-ness isn't all it could be, either. I'd hoped the 'open source' part of the announcement would mean someone (maybe I?) would be able to add associative arrays to the language, but there is some confusion about whether VFP itself or some derivative called 'Sedna' is actually being open sourced. I need to find out more.

  8. Re:If only all orphaned software would go this rou by swerk · · Score: 3, Insightful

    I heartily agree. I've been bitten many times by abandoned software, Animator Pro on DOS had a sort-of spiritual successor in Animator Studio, but it died there, lost between Windows 3.1 and 95. Blender was nearly lost to a similar fate; fortunately enough money was raised to buy out the source and release it under the GPL.

    Being at the software vendor's mercy for an application's longevity sucks hard, and it's one of the reasons I've been embracing Free and open software so passionately. As long as anyone still cares, the program will live on. Good software shouldn't die. That said, anything related to FoxPro can and should be erased from existance as soon as possible as far as I'm concerned, but surely somebody's happy about this, so good for them.

  9. Re:How's that relate to Jet? by Volante3192 · · Score: 2, Informative

    I know Access uses JET, but I haven't run across anything saying Exchange uses it... If they did, I could use eseutil to fix this stupid broken Access mdb I was just told about today instead of the not-working jetcomp.exe tool.

    Apparently ESE stands for Extensible Storage Engine as well...so I'm gonna have to say Exchange doesn't use JET.

  10. Probably the MOSL by wiredog · · Score: 2, Funny

    Microsoft Open Source License: You can look, but you can't touch.

  11. Status of "intellectual property" by burnin1965 · · Score: 2, Interesting

    It would be nice to see Microsoft start to open source (that is with a GPL or equivelant license) at least some of their products. But why FoxPro? This is the same software package which got Microsoft into trouble over copyrights. I believe all the "intellectual property" issues surrounding FoxPro have long been settled, am I right?

    burnin

  12. Shared Source by argent · · Score: 4, Informative

    That was the first question that came to mind for me, too.

    The relevant part of the actual announcement on Microsoft's site reads "To reiterate, today we are announcing that we are not planning on releasing a VFP 10 and will be releasing the completed Sedna work on CodePlex at no charge. The components written as part of Sedna will be placed in the community for further enhancement as part of our shared source initiative. You can expect to see the Sedna code on CodePlex sometime before the end of summer 2007."

    Shared Source is not Open Source.

  13. Re:How's that relate to Jet? by Volante3192 · · Score: 2, Informative

    Further comments, apparently ESE was meant to succeed the Access JET, but that didn't happen.

    http://en.wikipedia.org/wiki/Extensible_Storage_En gine

    So it's apparently a flavor of JET...but different.

    I could "see" them opening JET Red (Access) in about 10 years, because there are no plans to make it 64 bit, but not JET Blue (ESE/Exchange). That'd open up Exchange and MS wouldn't want to do that.

  14. Crazy by N8F8 · · Score: 2, Funny

    Between FoxPro and VB it just amazes me that any company can afford to repeatedly crap on it's customers and still survive.

    --
    "God fights on the side with the best artillery." - Napoleon, Marshal of France - speaking truth to power
  15. Take Note! by Nom+du+Keyboard · · Score: 2, Interesting

    Take note, Microsoft has (to appearances, at least, while waiting to see if they provide everything necessary to compile up and run the current FP release) done something good here. Would that all other software companies follow suit with orphaned software.

    --
    "It's the height of ridiculousness to say for those 9 lines you get hundreds of millions."
  16. Re:Umm, still no by sweatyboatman · · Score: 5, Informative
    The article is vague and misleading. Alan Griver (who heads Microsoft's VFP team has been talking alot on his blog about it). Here's the straight-dope...

    How about open sourcing the core product too?
    We've been asked this for years. That's not going to happen. The main reason is that there is too much intellectual property in the VFP core codebase.


    That seems pretty definitive to me.

    For clarification: Sedna (the stuff that's going into CodePlex) is not now (nor was it ever intended to be) the next version of Visual Foxpro. It's just a set of VFP-based tools intended to help current VFP developers to make better use of new features in Vista/SQL Server/etc...

    Meanwhile, VFP 9 is getting a final service pack and then that's it as far as Microsoft is concerned. There's certainly no plans to open-source the IDE or the VFP engine because, frankly, Microsoft would never do that. Some of the technology (and people) from VFP is going towards the LINQ project, but .NET is still a long way from offering the kind of streamlined data-oriented programming that Foxpro offers.
    --
    It breaks my pluginses, my precious!
  17. Re:glad to see foxpro dead by dheera · · Score: 5, Funny

    This is probably a money-making plot on Microsoft's part. They will "open source" it, but then when you read the million pages of fine print, you find out that it isn't open-sourced under GPL, but instead, they'll probably rather put it under one of their own crafted licenses that says that if you modify and redistribute and portions of the code, you must include the string "I like porcupines" and a link to the Microsoft homepage.

    And then when someone does redistribute it like other source code (without reading the M$ license), they'll sit quietly for about 3 or 4 years, while this person's redistributed code becomes ever more popular. Eventually, it will become incorporated in digital cameras worldwide, database software that drives the next Google, and your next-generation toaster.

    Approximately 1 year after that happens, and $1 billion have been made off the redistributed code, Microsoft will sue for not following the license. They will cite the fact that "I like porcupines" is not in the code and that a link to the Microsoft homepage is not included. They will complain that the lack of a link to Microsoft will have decreased Vista sales by $3 billion (because, naturally, the price of their OS is probably 3 times that of the code in question). They will demand the profits, win the case, and said company will have the option of either paying the legal fees, or being bought out by Microsoft.

    On another note, "open source" of itself does not always mean "free to redistribute", it just means you get to view the source.

  18. Re:Open source is not a verb by drix · · Score: 3, Funny

    Actually, I think it richens the language.

    --

    I think there is a world market for maybe five personal web logs.
  19. Your Comment is Incoherent by sweatyboatman · · Score: 2, Insightful

    FoxPro is glacially slow. Its proponents will swear up and down that it's the fastest database environment in the world, but the reality is that it's only fast at running FoxPro code.


    It's only fast at running code in it's own language? You don't say! I'd be pretty impressed at any language that could run code written in another language.

    Perhaps what you meant to say was that Foxpro is only fast when dealing with data. In that case you are correct. I wouldn't write a protein-folding program in Foxpro, because, well, that would be stupid. But there's no language in the world that works with data as well as FP.

    Fortunately for you, though, Microsoft is not really making anything of significance open-source. Though Foxpro's death will only be assured when they turn out the lights in 2015.
    --
    It breaks my pluginses, my precious!
  20. What about Bob? by RonMcMahon · · Score: 2, Funny

    I guess there is still hope that they will FINALLY open up the code to Bob! I can hardly wait! I'm dizzy with excitement over how I can apply this awesome technology and UI breakthrough in my Vista apps!

  21. (XBase was cool!) Re:what's next? by Tablizer · · Score: 3, Insightful

    FoxPro? Who still uses FoxPro?! What ancient MS product is next?...

    Although they never got their GUI conventions right, the XBase language was outstanding for ad-hoc and small-scale data chomping. You can tell it was invented by people who had to deal with data and tables all day long.

    Unlike MS-Access, there was an easy path to ad-hoc manipulations and script writing. In MS-Access the language world and mouse world are too distinct. Xbase allows a more incrimental, integrated approach.

    And unlike SQL, it easily allows one to do cursor-oriented manipulation and see intermediate results. Sometimes cursoring around is easier than bulk, declaritive queries that SQL gives you. Newer dialects of XBase incorporated SQL to allow one to use whichever is best for a task. (However, index dictionaries were never standardized across dialects.)

    I used to do all kinds of table-oriented stuff in XBase, like store programming code or expressions in the tables. Think of it as Design Patterns where you can easily query, search, and print the patterns rather than dig thru linear code. It was also easy to generate tables programatically. Meta-programming was a snap. Data dictionaries could drive a lot of the app, even the GUI.

    The newer stuff tends to put bulky API's between you and the data, which slows one down. There is no such fense in Xbase (usually a good thing for productivity, but it does have its downsides if you are not careful and not used to it.)

    Ah, the good ol' days. -Tablizer-

  22. Irrelevant by DaMattster · · Score: 2, Interesting
    Unfortunately, I would have to say Microsoft's actions are largely irrelevant. FoxPro was fantastic in its hay day but it is a bygone technology. I am not terribly familiar with FoxPro but I would wager, in its present inception, that it does not scale nearly as well as SQL. If the license is GPL or BSD, it could find a new lease on life in UNIX, FreeBSD, and Linux. I could see FoxPro being adapted as an LDAP backend or a configuration backend. But much beyond that, Microsoft is open sourcing FoxPro because there is little or no threat posed as the technology is, as the tag line points out, abandonware.

    Please don't be to harsh when you mod me for this speculation: What if Microsoft open sources this product with a different goal in mind? For instance, maybe M$ is curious to see what new ideas become of their abandonware? Perhaps, the community might give it a new lease on life and re-develop a market for it? Should that happen M$ could close the source again, if the license is not GPL, LGPL, or BSD. Just my thoughts anyway

  23. Re:Umm, still no by killjoe · · Score: 2, Informative

    There is an open source project inspired by VFP but based on python. It's called Dabo http://dabodev.com/ . Check it out if you are interested in getting on board with something that isn't obselete.

    --
    evil is as evil does
  24. Re:Open source is not a verb by lordSaurontheGreat · · Score: 2, Insightful

    Open source is not a verb
    maybe that's why Microsoft is having so much trouble with OSS... they don't know what it is
    --
    Consider yourself spoken to.
  25. DABO by JShadow · · Score: 2, Interesting

    Well there it is! I worked with VFP starting with version 6, and when version 8 came out the rumors started flying about VFP being discontinued at some point. Microsoft fired back saying that the lack of VFP in Visual Studio didn't mean anything, and they would be continuing development and supporting all the VFP code out there for some time to come. Well, looks like the rumors were right.

    And I really don't care, because when I started hearing those rumors I started searching for a replacement, just in case. I found DABO, which was created by a couple of VFP supporters from back in the day. It's built on Python, has a data model which mimics in many ways the simplicity and robustness of VFP. Plus it can use any database for the back end! It's open source, free, and getting better all the time; and it's not even at version 1 yet! I've only been tinkering with DABO, but now it's time to move.

  26. Re:glad to see foxpro dead by Master+of+Transhuman · · Score: 2, Informative


    Yes, I used FoxPro back in the early nineties. It was a great product under Fox, but when Microsoft purchased it, they supported it only for a while, then let it languish while they pushed Access (an UTTER POS with all the "reliability" and brain-dead design decisions Microsoft is known for).

    I was at a computer show in San Francisco standing at the FoxPro booth actually when I heard that Microsoft had bought them.

    But I don't think the "Jet" engine came from Foxpro. I might be wrong about that. I think the Access engine and the FoxPro engines were separate for a long time. A quick Google indicates that Microsoft bought Fox for their "Rushmore" database technology which ended up being included in Jet.

    --
    Richard Steven Hack - This sig is TOO GODDAMN SHORT TO DO ANYTHING USEFUL WITH! MORONS!
  27. Re:glad to see foxpro dead by ggeens · · Score: 2, Informative

    Didn't MS just buy FoxPro, to steal the 'jet' engine from it to stick into access?

    A few years ago, I ran into a couple of FoxPro-based applications and I learned a little about the history of the product.

    FoxPro was rather popular with application writers and there are still a lot of small business applications based on it. Apart from the technical merits, it had one big advantage over MS Access: you could bundle FoxPro with your application for free, while Access required an Office license for each PC.

    Microsoft bought the company mainly to destroy a competitor. They ended up supporting the product for a long time, probably due to support contracts.

    --
    WWTTD?