Hi John, can you briefly introduce yourself?
These days, my day job is President of N-BRAIN, though I still spend up to 30% of my time acting as lead developer on UNA. Mainly working on stuff behind the scenes, like the concurrency framework, the collaborative merging algorithm, networking code, and parsing technology, in addition to serving as resident usability expert and interface designer.
Firstly, for for those who don't know, what is UNA in the first place?
UNA Collaborative Edition is a real-time collaborative development environment for software engineers. It lets two or more developers edit the same code, at the same time. It's similar to pair programming, but better because both developers can contribute productively, whether they're located across the hall from each other or on different continents. It includes other features like chat, a whiteboard, persistent notes, team tools and team queries, and other features to enable developers to work together in real-time.
As a development environment, both Collaborative and Personal editions of UNA support most of the features that developers have become accustomed to, such as syntax highlighting, source snippets, regular expression search and replace, external tool integration, auto-complete, structure and object hierarchy views, and lots more.
What does "UNA" stand for?
UNA (pronounced 'ooh-nuh') comes from the Latin adjective for 'together'. 'Una' also means 'one' in some languages, and that kind of fits too: the idea behind the collaborative edition is several developers working together, as one. We write it in uppercase because it looks better and is more faithful to the logo.
Basic support for Groovy, Scala, and several other languages is coming in the next micro release (about two weeks from now).
And how did UNA come to be?
Four years ago, I was working on a project with millions of lines of code, maintained by dozens of programmers over the span of two decades. It was hard to understand sections of this code, and impossible for anyone to understand all of it. As there were no unit tests, changing anything could have unintended consequences that might be detected only weeks or months later (possibly by customers).
In this environment, I discovered that two heads really are better than one. Developers have different ways of interpreting code, and different ways of solving problems. Combining this rich diversity creates a strength unequaled by any single developer. Put me in a room with a junior programmer, and turn us loose on some task, and I guarantee you that I will gain new insight into the problem from this developer, and that our resulting solution will be stronger than anything I could have come up with alone.
Once I came to understand this, I immediately began looking for a tool that would make real-time collaboration the default way of working, and which would allow both developers to contribute productively at the same time. SubEthaEdit was king of collaborative editing, but only on the Mac, and even this great editor assumed you would be working alone most of the time, sharing a file or two on occasion. Plus, it's not easy to develop software without external tools integration and other features that SubEthaEdit did not have. So, since nothing existed that satisfied my needs, I decided to contract out the development of such a product.
After several false starts, I found some stellar developers by the name of Alexander and Michael, who began work on the project that would later be called UNA. Eventually, I realized my background in mathematics, computer science, and distributed computing would be necessary, and I quit my day job to work on UNA full-time. Other contractors came and went over the years, and recently we've added two new developers, but we're still a small, tightly focused group of developers who all share the same vision for the future of software development.
|Save search queries for later.png||13.17 KB|
|Quickly navigate UNA without using a mouse.png||15.91 KB|
|Quickly navigate documents with incremental search.png||5.45 KB|
|Quickly locate symbols, files, declarations of symbols.png||15.17 KB|
|One search and replace interface - unlimited power.png||5.61 KB|