Q&A: Dev Options in UNA's Collaborative IDE
New integrated development environments have become rapidly shadowed of late by monoliths such as Eclipse and Visual Studio. However, that has not deterred Boulder, Colo.-based startup N-BRAIN Inc.
, which launched its first IDE, called UNA Collaborative Edition 1.0, earlier this year.
UNA Collaborative is an editor that helps multiple developers write code simultaneously on the same project in real time. I wrote about version 1.0 back in June. Last week, I conducted an exclusive interview with John De Goes, president of N-BRAIN Inc. He talked about where UNA is headed and how developers will be able to leverage the product's modular design to add to their box of tools.
Will Kraft: What new core features are going to be in UNA, and what's the timeframe for the releases?
John De Goes: In 1.1, the big feature is in-document highlighting of errors and warnings, which is based on UNA's ability to recognize errors and warnings reported by compilers, validators and lint tools. You can configure tools to highlight errors and warnings whenever a document is changed, or whenever it is saved. So we're essentially bringing real-time (or near real-time) syntax checking to UNA for dozens of languages and hundreds of tools.
Other features in 1.1 include default tools for most languages, improved incremental search and a Java 1.5 development environment that can be dropped into UNA to provide the kinds of features seen in Eclipse and IntelliJ Idea.
For 1.2, the main feature is something we're calling "project mixins." A mixin is essentially a bundle of tools, together with their supporting runtime environment. Users will be able to create mixins from directly inside UNA, and [can] easily add community-created mixins to their project. This will remove the need for the average user to do any tool configuration (which, we've found, is the number one impediment to widespread adoption of UNA).
For 1.3, the main feature is a plug-in framework. This won't be an ordinary plug-in framework. Rather, the framework will be built on a dynamic language, and will allow plug-ins to seamlessly take advantage of the networked nature of UNA Collaborative Edition (plug-ins will work unmodified for UNA Personal Edition). Because we're using a dynamic language and providing a high-level interface to UNA, it will be possible to write powerful plug-ins for UNA with less effort and fewer lines of code (when compared to environments such as Eclipse that require you write low-level plug-ins in Java).
We schedule minor releases about two months apart, with UNA 1.1 due out this week.
Tell me more about the upcoming modular design that will be in future releases.
De Goes: We want to focus on providing the core infrastructure necessary for real-time collaborative software development. Beyond that small kernel of functionality, we want to open UNA up and allow the community to take it in whatever direction it wants. So, down the road, we'll be providing the hard features like real-time collaborative merging, project synchronization and many-language parsing, but we'll let the community add the bells and whistles that simplify everyday development.
Both mixins and plug-ins are a step in this direction.
What is the difference between mixins and plug-ins?
De Goes: For the 1.2 release, a mixin is simply a bundle of tools, together with whatever programs or files they need to run. For example, the Java 1.5 development environment we're releasing alongside UNA 1.1 is essentially a mixin, but to use it, you have to manually copy it into your project. Once you do that, you get lots of Team Tools, like compile, build, test, analyze source code, debug and so forth. Tools can have very tight integration with UNA -- for example, displaying tooltips or formatted HTML. But they remain separate from UNA in the sense that they can't change or extend the UNA development environment.
A plug-in is a fundamental extension of the UNA environment. It has capabilities that go beyond any tool. For example, a plug-in could support automated refactorings, provide an interface to a bug tracking system, or enable users to video chat.
For the 1.3 release, mixins may also include plug-ins. For example, if you added a mixin for Groovy development to your project, then you might get a Groovy refactoring plug-in as part of that mixin.
Lastly, many IDEs are being open sourced these days, to great success (namely Eclipse). Is this the path that UNA is going to take eventually?
De Goes: I don't know what will happen in the far future, but we don't have any immediate plans to open source UNA. UNA is headed down a different path: the path of software-as-a-service. In the coming months, UNA will become less of a product and more of a service -- specifically, the service of real-time collaborative software development.
The SaaS model doesn't work well for standalone applications like Eclipse, but is a perfect fit for networked applications like UNA Collaborative Edition, which requires a server (and all the administrative headaches that come with that).
However, I do expect that the vast majority of mixins and plug-ins for UNA will be open source. In fact, if you want to submit a mixin or plug-in from within UNA, then we will require that you open source it. So all the mixins and plug-ins you can get from inside the UNA environment will be open source. You'll be free to modify them as you see fit.