A First Peek at Water, our New IDE for Windows

Hi everyone.

I wanted to take a moment and give a shoutout to let you all know that we've started shipping the first preview builds of Water, our upcoming IDE for Windows.

While we're not quite ready for a public preview yet, Water has been available as a beta download for all users with an active Elements or Suite subscription for the last few weeks now, and is getting updated weekly.

screenshot

Why Build Our Own Windows IDE?

Our decision process to invest the resources to create our own Windows IDE has been a long one. Traditionally, we have focused on Visual Studio as our go-to IDE on the Windows side, and both us and our users have been very happy with it for over a decade now.

However, when we created Fire, our IDE for Mac, we realized that a different IDE experience is possible and, dare I say, necessary. Users were not just happy, they loved Fire; it's fast, always responsive, and lets you focus on your coding, giving you a much more lightweight and freeing development experience than any of the major IDEs for our target platforms – be it Visual Studio, Xcode or Android Studio.

Therefore we wanted to bring that same experience to Windows, where the vast majority our users still does most of their work.

(Of course we will continue to support and integrate with Visual Studio as well – so no worries.)

screenshot

Fire and Water

Water is, in essence, based on the same underlying code base as Fire.

We really took our cross-platform philosophy to heart and Fire/Water, which, once complete, will be the poster child for how to create "the same app for multiple platforms".

Fire started out as a pure Cocoa code base (written in Elements, of course; in this case mostly RemObjects C#). The initial phase was to convert all the non-UI base code to use Elements RTL instead of core Cocoa classes, where possible. This conversion took about two months (for the rather large code base that Fire is) and the end result was that all the base code for Fire not only now compiled for .NET (and in theory, Java and Island), but that it actually was a lot cleaner and more streamlined than the original Cocoa-based code, as well.

At this stage, we had a working IDE base that compiled for .NET, but no GUI on top.

Our next (and ongoing) phase is to abstract the user interface, as well. In many cases, we want to redesign and rethink the UI from scratch – because Windows UI looks and works differently than Mac UI does. Of course the goal is for Water to feel like a native Windows app.

Sharing Code

How much code is shared and how more is recreated especially for Windows depends on the scenario. For example, the Options dialog (which is being worked on right now) is mostly a very thin XAML file that just binds to the exact same properties as the corresponding XIB file does on Mac – almost no code duplication. Other views are more drastically different, and require more custom platform-specific code.

In case you're curious, the code editor and everything that drives it (syntax highlighting, code completion, popups etc.) is actually 99% shared code. From input handling all the way to "drawRect", the same code base gives us a super fast, super flexible native Cocoa and native WPF text editor. Pretty cool, huh?

screenshot

Features, Scope and Timeline

We're not promising any specific timeline for official release at this stage, but we're anticipating to ship a "1.0" well before the end of the year. That said, while rough, Water is already pretty usable, and some of our developers here at RemObjects have already been using it full time for a while.

Scope wise, we're shooting for rough feature parity with Fire when the first release of Water ships. Right now, we're focusing on getting the missing pieces in place that Fire has and Water does not yet (mainly in areas where UI/UX needs to be re-invented or reconsidered).

Of course, we're moving forward with features in Fire at the same time (the upcoming 9.2 release has quite a few nice additions!), and Water will benefit from these automatically as well. About 90% of feature work is on under the hood shared code – such as the new XML Code Completion engine the team has been working on – and will thus automatically work in both IDEs.

As with Fire, our initial focus for Water "1.0" will be on a superb editing and coding experience, as well as great project management and browsing that goes along with that.

Customer Responses so far

Of course it is still early days, and these are rough previews with many things still left to do, but already quite useable. Here's some things people have been saying on the beta forums:

I haven't played with Water much, but I like what I see. It loads instantaneously, CC is instantaneous, XAML loading is instantaneous (get the pattern here???).

and:

What can I say, I am seriously impressed by the speed of this thing! It loads instantly and loads a solution in 2 seconds where VS2015 takes 26 (!!!) seconds to load the same. Amazing!

and most succinctly:

It is fast, light, pretty and pretty fast. Really nice!

But don't take their word for it. Get your Elements license, if you don't already have one, and check out the Water previews yourself (they get better every week!).

Yours,
marc

marc hoffman

marc hoffman

Chief Architect and CEO here at RemObjects Software. Project Manager for Elements and lead developer of Fire, our awesome new development environment for the Mac.

Read More