“It’s just a different language, and different target platforms, but a lot of the core knowledge developers have will carry over,” Hoffmann said. “As a developer, you need to learn, understand and appreciate each platform individually. And then you need to design an application for that platform with that in mind. Silver is designed for developers who work in this mindset.”
Silver also includes an abstraction library called “Sugar” that provides APIs for common tasks to be shared across platforms. The library provides what Hoffman described as “toll-free bridging” between platform-specific classes, to connect shared code with platform-specific code.
Keeping pace with Swift
In developing more advanced capabilities for Silver, Hoffman said RemObjects plans to reproduce the Swift language as it is defined by Apple as closely as possible in the same way the company treats its C# compiler.
“We’re not trying to redefine what Swift is, or drive the language forward on our own,” he said. “That’s not really our place to do. Our goal is to improve these compilers mainly along the lines set forth by their owners—Apple and Microsoft, respectively. C# 6.0 is coming soon and has many exciting features, most which we already support. And Swift is evolving rapidly as well: Apple just shipped the first beta for Swift 1.2, and we already have support for the changes and new features in our compiler.”
(Related: Apple’s Swift gets major release)
One beta feature RemObjects is working on for Silver is exception handling, a feature iOS doesn’t currently support, in order to improve .NET and Java integration. The company is currently focused on fixing front-end bugs and testing its full tool chain against Silver support, along with expanding Silver’s Swift base library with additional classes and functions. The library will be fully open source upon release.
Hoffman stressed that ultimately Silver gives developers more choices, without complicating the code of whatever language Swift compiles to.
“We hope that developers will accept Swift as a valid language choice for the .NET and Java platforms,” he said. “People often conflate .NET and C# as a set of choices that go together. But working on the .NET platform never meant you had to necessarily use C#; .NET has always been very language-agnostic. The same goes for the Java/Android platform. There are many languages available for the JVM already, and now Swift is as well. Writing an Android app doesn’t have to happen with the Java language.”
More information about Silver is available here.