RemObjects Go (Gold)

RemObjects Go brings the Go language to the Elements platforms.

RemObjects Go is a 100% compatible implementation of the Go language supported for all Elements platforms.NET, Cocoa, Android, Java, Windows, Linux and WebAssembly.

For .NET and the Island-backed platforms (except WebAssembly), a complete port of the Go runtime and Go Base Library is provided as well, so that any standard Go code should compile and be usable out of the box. Functionality privided by this Go Base Library is also be optionally available to the other four Elements languages on these platforms.

The goal for RemObjects Go is not to provide a full app development solution for all the platforms, as the Go language has many (purposeful) limitations that we would have to accommodate for with Language Extensions, which we do not want to do at this stage. For example, Go does not even have support for classes, which are crucial for most GUI frameworks.

The intended use for Go is mainly to allow to bring in existing libraries to use in applications (in particular on the Island-backed native platforms, where the OS-native APIs are often limited and low-level), and/or to allow simple Go-language code to be compiled as part of a larger project in one of the other languages.

That said, within the capabilities of the Go language, Go code build with Elements has full access to all the capabilities of the respective platforms – e.g. full access to the .NET or .NET Core framework library when building for .NET, or the Cocoa APIs when building for iOS or macOS.

In addition to simply adding .go source files directly to your project, Go Import can be used to import whole existing Go packages (and their dependencies) so they can be added to your project as Project References or Remote Project References.

Learn More

Getting Started

Additional Tools