Interview: John De Goes Introduces a Newly Free Source Code Editor
"The
tools market is dead. Open source killed it. The only commercial tools
that can survive today are the ones that leapfrog open source tools." Thus argues John De Goes, president of N-BRAIN,
which creates and provides UNA, a source code editor. After all, in the
midst of the competitive IDE space, mainly populated by IntelliJ,
Eclipse, and NetBeans, there are other players—lighter in
weight and fleeter of foot. These are the pure source code editors. The
personal edition of one of them, UNA, is now being distributed for
free, since a few days ago. We find out more from John, who made the announcement here on Javalobby.Hi John, can you briefly introduce yourself?
I've
been a software developer for more than 20 years now, having written
dozens of programs in Pascal, Fortran, C, C++, Java, JavaScript, PHP,
and other languages. Likely more than a million lines of code, all
told. I absolutely love software development—it's my life's passion.
I devour books on software engineering and computer science and have
even written a few books myself, on 3D game programming (albeit not
recently).
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.
What are the languages currently supported by UNA?
Currently, we have mixed levels of support for the following languages: Ada, assembly language, batch files, C, Cobol, C++, C#, CSS, Eiffel, Erlang, Fortran, Haskell, HTML, Java, JavaScript, Lisp, Lua, Pascal, Perl, PHP, properties, Python, Rexx, Ruby, Shell, Smalltalk, SQL, VisualBasic, Verilog, XML. For some of these languages, we just do syntax highlighting, keyword completion, and so on. But for any language supported by Exuberant CTags, we offer much broader functionality, which includes structure views, object hierarchy views, go to declaration, parameter hinting, and so on.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.
| Attachment | Size |
|---|---|
| version-control.png | 92.85 KB |
| una-screenshot.png | 132.84 KB |
| tools-interface2.png | 102.52 KB |
| tool-interface.png | 87.26 KB |
| source-snippets2.png | 163.01 KB |
| source-snippets.png | 96.27 KB |
| smart-autocomplete.png | 175.84 KB |
| Save search queries for later.png | 13.17 KB |
| right-click-tools.png | 182.52 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 |
| jump-to-symbol.png | 163.57 KB |
| java-extensions.png | 168.28 KB |
| file-templates.png | 57.95 KB |
| file-templates2.png | 92.71 KB |
| instant-search.png | 163.06 KB |
| johndg.png | 70.47 KB |
| johndg.png | 26.37 KB |





Comments
Mike Miller replied on Mon, 2008/06/09 - 2:13pm
Geertjan Wielenga replied on Mon, 2008/06/09 - 2:45pm
Andrew McVeigh replied on Mon, 2008/06/09 - 3:06pm
It's a great looking editor, and it's fantastic to see new tools and innovation in the editor space. I wonder though about the "free single user" play though. When I started it up, I realised I couldn't collaborate with anyone and I lost interest. I wonder if a "free" mode with limited collaboration (or limited connectivity) is going to be more effective as a tactic for getting people interested.
Cheers,
Andrew
Andrey Kuznetsov replied on Mon, 2008/06/09 - 6:52pm
It does not work.
Here is the console output:
C:\Program Files\UNA-1.0>java -jar unaclient.jar
10.06.2008 01:37:57 net.nbrain.una.unaserver.database.L E
INFO: DatabaseHomeDirectory = C:\Users\andrey\.UNA\\server-personal\database\
java.util.logging.ErrorManager: 2Handler.reportError caught:10.06.2008 01:37:58
net.nbrain.una.unaserver.database.I E
SCHWERWIEGEND: java.lang.NullPointerException
java.lang.NullPointerException
10.06.2008 01:37:58 net.nbrain.una.demo.J$A run
SCHWERWIEGEND: Can't start application: null
java.lang.NullPointerException
at net.nbrException in thread "AWT-Ev
Geertjan Wielenga replied on Tue, 2008/06/10 - 4:04am
Mike Miller replied on Tue, 2008/06/10 - 9:09am
in response to:
Mike Miller
My setup is a bit different - JAVA_HOME points to a 1.4.2_X version because our product is 1.4 but my JRE is 1.6 so that I can run Europa. It appears that UNA ships with a 1.5 version of Java.
Tried resetting java home to my 1.6 and still didn't work. Also made sure I was running their shipped version (1.5) but still hangs after the splash screen.
Mike Miller replied on Tue, 2008/06/10 - 9:36am
in response to:
Geertjan Wielenga
Alexander Parshuto replied on Tue, 2008/06/10 - 10:16am
Did you run Una as a root? Do you have access rights to a temp file system? Please make sure that you have access rights on temp file system?
@Andrey Kuznetsov: could you please send full stack trace to support@n-brain.net
thank you in advance.
Andrey Kuznetsov replied on Tue, 2008/06/10 - 10:31am
Alexander,
I posted complete console output. I have no idea why output just stopped in the middle.
John De Goes replied on Fri, 2008/06/13 - 8:33am
in response to:
Andrey Kuznetsov
Hi Andrey,
For some reason, the installer fails to create an appropriate directory (.UNA in your home directory) on some variants of Windows XP. If you download the raw distribution, create a .UNA directory in your home directory (echo %HOMEPATH% to find it), and copy the /syntax/ and /server-personal/ directories to the .UNA directory, then everything should work fine.
Creating the .UNA directory must be done from the command-line, as in every case so far where the installer fails, users cannot create the .UNA directory from Windows Explorer either.
Our next installers (to be released today or Monday) have a workaround that attempts to address this issue.
If you have any other questions, feel free to email us at 'support' or use the Community Forums (http://www.n-brain.net/forums/).
Andrey Kuznetsov replied on Sat, 2008/06/14 - 5:03am
Well, in fact installer created .UNA directory. However not in my home directory, but direct under c:\.
John De Goes replied on Sat, 2008/06/14 - 10:24am
Andrey Kuznetsov replied on Sat, 2008/06/14 - 2:27pm
serena lin replied on Sun, 2009/08/09 - 9:57pm
Kookee Gacho replied on Tue, 2012/05/29 - 6:25am
Dean Schulze replied on Wed, 2012/08/29 - 4:05pm
Raging Infernoz replied on Sat, 2013/03/30 - 12:30pm
Collaborative IDEs, and pair programming sound pretty similar, but does not seem very Introvert friendly, if used much; this is important, because I bet most developers are Introverts, like myself.
What happened to http://www.n-brain.net/ and UNA?
The domain is on a holding page and the editor seems to have disappeared; the company must have gone bust, so this looks like a zombie article; so I'm astonished this is still listed in Popular Links!
NetBeans just keeps getting better.
Eclipse is a functional and cluttered UI mess, including the regurgitated project structure abominations, it should never have allowed, which make Maven migrations painful; so I avoid using it as much as possible.
Intelli-J is plain too expensive given than NetBeans exists; I only pay for tools which are economically priced or excellent value for money e.g. Directory Opus.
I want nothing to do with collaborative cloud editors, they are a privacy and security nightmares waiting to happen, because they are all-in 'solutions'!
Collaborative projects can need a lot more visibility than just source code, so distributed source control systems, multiple monitors, and selective desktop sharing are far more useful.
Michael Je replied on Fri, 2013/04/05 - 7:42am
Eclipse is a functional and cluttered UI mess, including the regurgitated project structure abominations, it should never have allowed, which make Maven migrations painful; so I avoid using it as much as possible.
http://babul-ilm.com