XBase -> X#: What value is added to my software
Posted: Fri Mar 15, 2019 11:46 pm
Hi all,
In a VFP forum (leafe.com ProFox) a recent post and I quote:
I drafted a list as a response to have something available, if I was asked the question: What benefit does X# bring to the table if I convert from VFP/XBase/(dare I add c#) to X#? A list that we can add to. Here is what I came up with:
[*]
[*]A great DevTeam having a passion and knowledge of XBase
[*]Can do everything c# does and more in a XBase syntax, no {}
[*]Lazy as well as strict type variable declaration // We can pick up errors due to lazy declaration at compile time, not runtime. We debug quicker.
[*]Our strict typed code will run exponentially faster.
[*]It brings the power of the macro compiler and codeblock as features to VFP, previously only exclusively available to the Clipper fork of XBase.
[*]We have a pre-compiler that we can extend the language with include files the #command builder
[*]We have native support for .NET arrays
[*]We have native support for WFP, WCF, Entity Framework, webservices, window services, everything available in .NET is natively supported in X#
[*]We can create generic classes CLASS MyGeneric<T> INHERIT .... IMPLEMENT .....
[*]We can consume generic classes VAR sl := SortedList<STRING>{}
[*]Native support for FUNCTIONS and PROCEDURES the first .NET compiler allowing this
[*]We can have GLOBAL, STATIC GLOBAL, PUBLIC, MEMVAR, LOCAL DEFINES, STATIC LOCAL variables, again some of these was only available in XBase, it is now a new .NET feature.
[*]We have NAMESPACES now. We can group our code in an ordered way putting them in namespaces
[*]We can have scoped blocks, same as {} in c# defined in X# as BEGIN SCOPE / END SCOPE. We don't explicitly have to RELEASE MEMVARS, the Garbage Collector (GC) does it for us using BEGIN SCOPE / END SCOPE etc.
[*]Our code run in a Safe Mode, we can put Unsafe on when needed, the GC of .NET does the work for us.
[*]We have native support for calls into the Win32 API etc.
[*]The whole .NET framework is opensource. ILSpy can decompile anythng that is not Obfusicated... I can see c# code as if it was written in X#.
[*]I can take a compiled c#, VB.NET assembly and create a VS solution in X# code.
[*]A compiler that sits on top and is almost embedded in c#
[*]We can happily sync X# to ride the c# wave. Up to date of what is available in c#
[*]What are the chances that MS announce "We discontinue c# development", very unlikely. c# brought "c" to the every day programmer. X# brings c# to the XBase community in a XBase style syntax
[*]How much more do I have to list?
In a VFP forum (leafe.com ProFox) a recent post and I quote:
None of the responses really showed why XYZ is better or not, it got hacked into a moan and groan session, why you want to change etc. You will benefit nothing, just lots and lots of frustrations...Hi all,
I was asked for a list of current options for someone who has a VFP application and wants to migrate it to a supported language, with the least amount of re-work.
I have seen many options listed, but am sure how compatible the various alternatives are. X# looks promising, but so do some of the others. And some that I thought were good options now appear to be dormant or discontinued. So I thought I would check with you fine folks to see if you know where I might find a list of current alternatives and their level of compatibility.
I drafted a list as a response to have something available, if I was asked the question: What benefit does X# bring to the table if I convert from VFP/XBase/(dare I add c#) to X#? A list that we can add to. Here is what I came up with:
[*]
[*]A great DevTeam having a passion and knowledge of XBase
[*]Can do everything c# does and more in a XBase syntax, no {}
[*]Lazy as well as strict type variable declaration // We can pick up errors due to lazy declaration at compile time, not runtime. We debug quicker.
[*]Our strict typed code will run exponentially faster.
[*]It brings the power of the macro compiler and codeblock as features to VFP, previously only exclusively available to the Clipper fork of XBase.
[*]We have a pre-compiler that we can extend the language with include files the #command builder
[*]We have native support for .NET arrays
[*]We have native support for WFP, WCF, Entity Framework, webservices, window services, everything available in .NET is natively supported in X#
[*]We can create generic classes CLASS MyGeneric<T> INHERIT .... IMPLEMENT .....
[*]We can consume generic classes VAR sl := SortedList<STRING>{}
[*]Native support for FUNCTIONS and PROCEDURES the first .NET compiler allowing this
[*]We can have GLOBAL, STATIC GLOBAL, PUBLIC, MEMVAR, LOCAL DEFINES, STATIC LOCAL variables, again some of these was only available in XBase, it is now a new .NET feature.
[*]We have NAMESPACES now. We can group our code in an ordered way putting them in namespaces
[*]We can have scoped blocks, same as {} in c# defined in X# as BEGIN SCOPE / END SCOPE. We don't explicitly have to RELEASE MEMVARS, the Garbage Collector (GC) does it for us using BEGIN SCOPE / END SCOPE etc.
[*]Our code run in a Safe Mode, we can put Unsafe on when needed, the GC of .NET does the work for us.
[*]We have native support for calls into the Win32 API etc.
[*]The whole .NET framework is opensource. ILSpy can decompile anythng that is not Obfusicated... I can see c# code as if it was written in X#.
[*]I can take a compiled c#, VB.NET assembly and create a VS solution in X# code.
[*]A compiler that sits on top and is almost embedded in c#
[*]We can happily sync X# to ride the c# wave. Up to date of what is available in c#
[*]What are the chances that MS announce "We discontinue c# development", very unlikely. c# brought "c" to the every day programmer. X# brings c# to the XBase community in a XBase style syntax
[*]How much more do I have to list?