Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Mercury Brings Visual Basic to Feature Parity with C# and Adds Multiple Platform Support

Mercury Brings Visual Basic to Feature Parity with C# and Adds Multiple Platform Support

This item in japanese

RemObjects Mercury refreshes Visual Basic for .NET by adding support for current .NET features while also making it available for more platforms, including WebAssembly, iOS, Android, and Linux.

Mercury attempts to fill a gap created by Microsoft announcement that they will not evolve Visual Basic as a language. This implies that "future features of .NET Core that require language changes may not be supported in Visual Basic".

As .NET (and C#) evolve, Mercury will keep being updated to support the latest platform versions and features, and also to be kept compatible with features added to new versions of C#, as it evolves.

According to RemObjects, besides being 99.9% compatible with Visual Basic, Mercury adds a number of new language features, including mapped types, zero-overhead inline types; extension types, which can be used to add new methods and properties to existing types; lazy properties; interface delegation, which can be used to delegate the implementation of an interface to a local property of a class; Records and many more.

Mercury is part of RemObject's Elements, a multi-platform compiler and toolchain with support for C#, Swift, Go, and others. This makes it possible to use Mercury on all platforms where Elements is available, which include .NET, iOS and macOS, Android, Java, Linux, native Windows, and WebAssembly. Mercury gives access to all native APIs on each platform. For example, you can use the Android SDK or NDK to create Android apps, Cocoa and CocoaTouch for macOS and iOS apps, and so on. In particular, to make it easier to use Cocoa's APIs, Mercury includes multi-part method names.

As a final note on Mercury, it is worth noting it can easily interoperate with the rest of languages supported by Elements, so you can mix Visual Basic with C# in the same project, or with any other of the available languages.

With the exception of Swift, which you can get for free, Elements and related IDEs on all platforms are premium products available under a subscription model. According to RemObjects, the compiler will remain functional indefinitely after you cancel the subscription, but the IDEs will stop working, so you will not be able to use them anymore and will be required instead to use the command line to run the compiler.

RemObjects Mercury should not be confused with the Mercury language, a logic/functional programming language inspired in Prolog and extending it to enable the creation of complex systems.

Rate this Article