Codename "Mercury" is a BASIC language implementation that is backwards code-compatible with Microsoft Visual Basic.NET™
With Mercury, you will be able to build your existing VB.NET projects, and leverage your Visual Basic™ language experience to write code for any modern target platform. That includes:
You can read more about the platforms supported by the Elements compiler, here, and the full Visual Basic™-compatible Mercury language syntax will be available on all of them. And of course you can mix Mercury code with any of the other four Elements languages in the same project, if you like!
The Mercury language will be deeply integrated into our development environments. Develop you projects in our smart yet lightweight IDEs, Water on Windows or Fire on Mac – with project templates, code completion, integrated debugging for all platforms, and many other advanced development features. Of course Mercury will also integrate into Visual Studio™ 2017 or 2019.
With Elements, all languages are created equal. Even within the same project, you can mix Mercury, C#, Swift, Java, Oxygene and Go.
Mercury, like the other five Elements languages, comes with an extensive tool chain that takes care of all parts of your development process – from IDEs to work in, over the compiler and auxiliary build tasks, all the way to your final product.
It also integrates deeply with the existing ecosystem for whatever platform(s) you are targeting. For example:
On Mac or iOS, you have full access to the entire range of Cocoa APIs. You can use .xib files, storyboards, asset catalogs etc. just as you would in Xcode.
On Android and Java, Mercury seamlessly uses the platform tools for "dex'ing" your Java code or creating .apk files, and has support for pulling in external Gradle packages like you'd expect.
On .NET, you have full access to the framework library and third-party .dlls and libraries, and you can use NuGet packages to pull in code. You can target the full desktop .NET Framework, as well as .NET Core or Mono. And so on.
... and so on.
As part of the Elements family, Mercury automatically inherits a lot of additional special features, including but not listed to:
While building Mercury, we are also looking at VBLang for historical requests, and see what we can add to our implementation. At this stage we already implemented the following requests: (This list is expanded each time we implemented something):
Additional candidates are: