Hi Jeff,
let me add something: X# lets you use your VO code as in the past (with some limitations), and even supports the use of the VO GUI classes and the dataserver classes (DBServer and SQLSelect).
Therefore there are differences to C#, and if someone recommends to look at C# code: this means "how" the problem was solved, and not the C# syntax itself. Sometimes X# accepts a similar syntax as C#, but sometimes the syntax is different.
C# does not difference some things, where X# instead makes a difference.
Take this sample C# class declaration:
Code: Select all
public partial class InputBookDocumentList : object, INotifyPropertyChanged
In X# this code would be written (IMHO more clearly):
Code: Select all
public partial class InputBookDocumentList inherit object implements INotifyPropertyChanged
C# for example does make a difference between the inheritance from a class or the implementation of an interface - IMHO a very important difference.
And C# uses the dot "." for everything: separation of namespaces, static methods, properties and normal methods.
X# insteads makes a difference: the dot is only for namespace separation and static methods (both things that does not exist in VO), but uses the ":" for methods and properties (access/assign) like in VO.
This makes code IMHO easier to read.
C# uses the parentheses { } for everything, but X# uses
Code: Select all
begin namespace - end namespace
class - end class
if - else - endif
for - next
and so forth - again compatible to VO, and IMHO much easier to read.
The Xbase language is much easier to read because it is more explicit, and it permits to keep large projects maintainable for years.
Therefore I'm very, very happy that X# lets us use the .NET Framework and all the new tecnology with such a clear language.
Wolfgang
P.S. and let not forget the dynamic arrays, macros and other goodies of the language