Chapter 2

The history and philosophy of X#

If you are born in the 80s or even later you completely missed the "golden age of databases for the PC" which probably started the day when Wayne Ratliff had no real work to do at this job at the Jet Propulsion Laboratory in Pasadena, a nice city very close to Los Angeles (I wished that I could have worked there too, but at least I have been there for a short visit once).

In this short chapter, I'll give an overview of the important events that finally led to the development of X#. If you are known to X# and have no "history" as a VO- or FoxPro-Developer, you are probably surprised to learn that the roots of X# reach back to the early 80s.

A short history of X#

It all started in the 80s. The decade when most of us started programming. The happy days of software development when the future looked nothing but bright (and we were all a lot younger).


Disclaimer: I am not an eyewitness for every single event listed in the table. I played around with dBase when it first came out, I used dBase III for a small application (but never finished it), but besides that, I have just watched the development of Clipper and its morphing into Visual Objects and later into the first incarnation of X# only from a distant. So, if anything is not correct in this table, please let me know so that I can keep it as accurate as possible.


Year Event
1978 Wayne Ratliff develops a database programming language with the name Vulcan at the Jet Propulsion Laboratory (USA) for his own use. Later he starts selling Vulcan as a product.
1980 Wayne Ratliff sells the rights for Vulcan to Ashton Tate which had been founded by George Tate and Hal Lashlee in August of that year after they discovered Waynes Vulcan software.
1982 Ashton Tate releases dBase II for the IBM PC
1984 Ashton Tate releases dBase III in Germany
1984 With the release of FoxBase (later FoxPro) the first "dBase-Clone" appears on the market
1984 Nantucket was founded by Brian Russel and Berry George ReBell in a restaurant called Nantucket Inn in Malibu/California.
1985 Nantucket releases Clipper 1.0 (Winter `85) as the first dBase compiler
1987 The Nantucket GmbH was founded in Cologne as the German subsidiary of Nantucket by Dr. Burak Kozan and others.
1988 Ashton Tate releases dBase IV after several postponements
1990 A beta version of the first Clipper compiler is presented at a Clipper conference in Cologne.
1990 Project Aspen (which later would become CA-Visual Objects) was started by the German Nantucket developers.
1991 Ashton Tate is bought by Borland (the company mostly known for its Paradox database and the programming language Turbo Pascal)
1991 Borland releases dBase IV 1.1
1992 Nantucket was bought by Computer Associates (CA) for an (estimated) amount of 80 million.
1994 CA releases the first version of Visual Objects as an advanced DMBS development system with an advanced OOP version of Clipper (originated from the Aspen project)
1997 CA-Visual Objects 2.5 is released.
1998 Borland changes its company name to Inprise Inc
1999 Inprise sells all rights of dBase to Ksoft Inc. The company was later renamed to dBase LLC
1999 Project Harbour starts as an open-source version of Clipper. The Harbour developer states a 100% backward compatibility with Clipper.
2001 Inprise Inc. changes its name back to Borland Software Corporation
2002 CA sells the rights for development and distribution of Visual Objects to GrafX (which was based in West Palm Beach, Florida)
2002 Microsoft releases the .Net Framework 1.0 after several years of development
2003 GrafX starts developing Vulcan.Net as a successor to Visual Objects for the new Microsoft .Net Framework
2007 GrafX releases Vulcan.Net 1.0. It's the first incarnation of an xBase language for the .Net Framework
2009 Borland is bought by MicroFocus
2015 Former employees of GrafX and other developers started X# as an open-source successor of Vulcan .Net by using the Roslyn compiler platform that provides an API for inner services of the .Net compiler.
2015 XSharp BV was founded in the Netherlands to continue the development and distribution of X#
2017 GrafX goes out of business with year-end
2017 XSharp BV releases X# 1.0.1
2023 XSharp BV releases the latest version X# 2.17 in August
2024 Expected X# 3.0 release for .Net 7

Tab 2.1: The mandatory timetable with all the X# related historical events

The philosophy of X#

The philosophy of X# from my own experience is to offer programming language that is familiar to the majority of XBase, VO, and FoxPro developers and C# and Visual Basic developers as well as an open source project that leverages all the functionality of the .Net runtime has to offer.

I asked Robert van der Hulst, the inventor of X#, for his opinion and he was so kind to answer this:

To create an open-source implementation of the XBase language, to help existing XBase developer, coming from various XBase products, to extend the life of their products. With X# they can move their apps from the existing Win32 environment to any platform that supports .Net.

By doing so we hope to extend the lifetime of existing products written in XBase languages. X# uses open-source products, such as Antlr and Roslyn, and is also developed as open-source to give something back to the community.

The impact of Roslyn

You may have read this on several occasions. X# "sits" on top of Roslyn (so to speak) or is based on Roslyn or depends on Roslyn.

Roslyn is just one of these Microsoft "codewords" that the company used extensively in the 80s and 90s - like jackets with rolled-up sleeves (for example the one that Michael Jackson wore in the famous Thriller video).

The official name is .NET Compiler platform.

(all the pictures in this section have the copyright of Microsoft - taken from https://docs.microsoft.com/en-us/dotnet/csharp/roslyn-sdk/compiler-api-model)

Alt The Roslyn Compiler Pipeline

Fig 2.1: The Roslyn Compiler Pipeline

Even if an X# developer doesn't know anything about Roslyn and/or doesn't care at all (both are legit points) there are two takeaways that every X# developer should be aware of:

  1. Roslyn makes it easy for developers to write coding helpers for the Visual Studio code editor
  2. Roslyn makes it easy for the X# development team to implement the latest feature of the C# language

Argument 2 is especially compelling because we can expect that most C# features of a new C# version (remember, in 2022 C# is already at version 11 - a nice overview C# versions) will be implemented in X# sooner or later.

A (very) short history of .Net

X# is a 100% .Net language. It always needs the .Net runtime for execution (this might change with .Net 7 and the native code compiler but that's another topic).

The .Net runtime is part of either the .Net Framework or .Net 6, 7 or 8.

The terms ".Net", ".Net Framework" and even ".Net runtime" basically mean the same. There is also a .Net Framework SDK by the way which includes some additional command line tools.

.Net Framework consists of three main parts:

  1. The CLR (Common Language Runtime)
  2. The class libraries which consist of a huge number of "assemblies" (another fancy term for function library or just dll file)
  3. The language compilers for C#, F#, and Visual Basic

In 2016 Microsoft decided to turn the .Net Framework into an open source project and make it cross-platform. The first version was .Net Core 1.0. With the announcement of .Net 5.0 as the successor to .Net Core 3.1 in 2019 the addition "Core" was dropped so .Net Core just became .Net. The current version is .Net 7 but .Net 8 has been already announced for the end of 2023.

There is a short chapter about .Net 7 in this book too.

X# 2.x always needs the .Net Framework.

What does "need" actually mean? Only, that the .Net Framework had to be installed first. The latest version is 4.8. Since Microsoft decided to stop the development of the .Net Framework in favor of ".Net Core" there won't be any version beyond 4.8 (but as you know you can never know this for sure;).

How good is .Net?

Since .Net is not an option this question is more of theoretical interest. From my very long experience with the .Net Framework, my overall experience is very good. The CLR, the class libraries, and the compilers are all very solid, rich in functionality, and very well documented. And everything has been free and open source since the switch to .Net Core. Especially .Net 7 makes a very good impression on me.

And I also know Java and even did some application development with it. Java is also a very good framework and runtime and is at least on the same technical level as .Net. But as so often, comparing .Net and Java would be comparing first-class organic apples with first-class organic oranges because both frameworks are often used in different environments. If there is one thing that .Net is superior over Java, it's the first-class support by (at least) half a dozen component vendors who offer everything a developer's heart can desire for a usually affordable price.

Year Event
2000 Microsoft announces the "Next Generation Windows Services" (NGWS) which became the .Net Framework a few weeks later
2000 The first beta version of the .Net Framework was released at the PDC conference in San Francisco. Microsoft Executive Paul Maritz pointed out that the core of .Net will be standardized and eventually become open source (which actually happened a few years later, long before .Net Core).
2002 Bill Gates shows the first version of the .Net Framework at the PDC conference in Orlando/Florida.
2002 Visual Studio .Net was officially released on Feb 13th by Bill Gates who described it as "the first fully integrated development environment for building XML Web services and next-generation Internet applications.
2003 Microsoft announces "Longhorn" at the annual PDC as the first OS with a UI based on .Net (and some other crazy features). It took only one year until the Longhorn project was canceled.
2005 .Net Framework 2.0 appeared as the "real" version which was almost feature complete according to the features originally planned. All the "database classes" have changed only in small details until the final version 4.8.
2006 The most important and usable pieces of the shattered Longhorn project are integrated into .Net as version 3.0 (the real version took another year and was released as .Net 3.5.1. One of the important features was LINQ).
2016 Microsoft announces .Net Core as the cross-platform successor to the .Net Framework. Later the name will be changed to just .Net.
2022 .Net Framework 4.8 appears as the probably last version of the .Net Framework.
2023 .Net 8 is planned for a release at year end

Tab 2.2: A very short timetable with all the .Net-related historical events