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)
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:
- Roslyn makes it easy for developers to write coding helpers for the Visual Studio code editor
- 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:
- The CLR (Common Language Runtime)
- The class libraries which consist of a huge number of "assemblies" (another fancy term for function library or just dll file)
- 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