Gold brings Google's Go Language across platforms, with language support for all Elements Platforms.
Built on over fifteen years of solid compiler knowledge and technology, with Gold, you can use Go to write code directly against a wide range of development targets, from .NET over Java and Android to Cocoa. And you can also share a lot of non-UI code between platforms.
With Elements, you can now leverage your Go 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 Go language syntax is now available on all of them. And of course you can mix Go code with any of the other four Elements languages in your project, if you like!
import ( "fmt" "time" ) func main() { isFinished := make(chan bool, 1) go doWork(isFinished) import ( "fmt" "time" ) func main() { isFinished := make(chan bool, 1) go doWork(isFinished) <-isFinished fmt.Println("Done!") } func doWork(isFinished chan bool) { fmt.Println("doing things...") time.Sleep(time.Second * 2) isFinished import ( "fmt" "time" ) func main() { isFinished := make(chan bool, 1) go doWork(isFinished) <-isFinished fmt.Println("Done!") } func doWork(isFinished chan bool) { fmt.Println("doing things...") time.Sleep(time.Second * 2) isFinished <- true }
Go is not just a language; it also comes with a vast base library of APIs for a variety of interesting areas, from math over encryption to network communication, from HTML parsing to image processing. We've ported this library to be fully source compatible with Gold, so for a subset of Elements platforms, you now have access to native versions of these APIs – from any Elements language. These include:
Beyond just the base library, the Go ecosystem is ripe with literally thousands of great free open source libraries, from database drivers to full web engines to video processing; from general utility libraries to whole middle-ware implementations. With the Go support in Elements compiler and the base Go library, many of these libraries are now available to compile for any of the above platforms so they can be used directly from, for example, your .NET or iOS project.
You can find just of of many such collections at awesome-go.com.
Of course, the Go language is deeply integrated into our development environments. Develop your Go projects in our smart yet lightweight IDEs, Fire on Mac or Water on Windows – with project templates, code completion, integrated debugging and many other advanced development features. Elements also integrates Go into Visual Studio 2017, 2019 or 2022.
With Elements, all languages are created equal. Even within the same project, you can mix Go, C#, Swift, Java, Oxygene and Mercury. This is great news in two fronts:
If you're a dedicated Go developer, you can continue to use Go as your main language, but fall back to adding a source file written in another language here and there – for example to use a feature not available in Go (such as classes), or reuse some source you found online.
And if you're using one of the other languages for your main work, you can now add snippets of Go code to your projects if you like, to leverage Go's strengths where applicable.
Gold, like all 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, Go 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.
Gold is available standalone (Go-language only) or as part of the full Elements package with all six languages.
Either edition supports all platforms, includes the Fire and Water IDEs so you can work on Mac and Windows, and comes with a full year of free weekly updates and support.
Licenses cover a single named developer. Volume discounts, site licenses, as well as academic and personal-use licenses are also available.