Hm - this started out as an email to
pozorvlak, but it seems to have turned into more of a blog, so here it is.
As I'm sure anyone bothering to read this will know, I'm a coder, and I like to be aware of what's going on in the market for the tools I might find myself using. There is of course one tool that we tend to hold pretty close to our hearts - chefs have their knives, musicians their instruments, we have our text editors. Laughable isn't it? But we do seem to get quite exited about them.
In the last year or so, I've been getting less excited about the old ascii crunchers though - because it seemed to me that they weren't going anywhere. Vim and Emacs seem mostly functionally equivalent (and I do regularly use and customise them both) - IDE's can be fun - I tend to code java in netbeans now, but they can't yet offer the uniformity of interface or efficiency of use that the two old stalwarts do...
Anyway - I was curious about what was going to happen next, and I was writing to pozorvlak about one big possibility.
So, here's the next editor battleground: The Network.
Obvious when you think about it - that's where everyone else is duking it out - why not the editors?
Dramatis Personae:
Viman old stalwart
Emacsanother old stalwart
Googlea network mogul, getting into editing
Gobbya new, network-centric editor and protocol
The story is easiest to tell if we start with google:
Google bought a web-office company - last year I think it was. One of these groups of people who want to host your office apps, and have you access them through your web browser. The idea's not new - people have been trying it for almost as long as I've been on the web. Early ones were all forms and CGI - they sucked. Google just released
this.
That absolutely does not suck - it is in fact, very cool indeed. Google store your data, so you can access it from anywhere, and you don't have to worry about backups. Google run the application, so you never have to worry about compatibility ever again (they can import and export excel and html, but those are only the edges of the system - users of google spreadsheet will trade google spreadsheets, and since they're all running the same programme, there're no versioning issues to worry about). That's a slight lie, since your browser has to be compatible, but if it's Firefox or IE, then it is compatible, so you're ok. Google manage your security as well as your bank manages your online money. They allow you to specify precisely who can see, and who can edit your document. They also allow you to concurrently edit with someone else - there's a chat window at the side of the screen to help. Concurrency just works - you're both editing the same thing at the same time. We no longer need to collaborate through clunky versioning systems like CVS.
Google didn't just buy (and finish) a spreadsheet though - they're working on the word processor. Once that's out, I have serious doubts
about the business sense of Office or OpenOffice.
So, there's the first contender for the crown - business orientated rather than code orientated, but very definitely in the editing
documents world now.
Next up,
gobby:
A collaborative text editor and protocol. I haven't used it yet, but they're talking about it on #haskell as I type. From the web page, it
sounds cool, but early on in development. Looks a little more programmer orientated to me than the google stuff - and they don't insist on
holding all your data themselves. So, if google is the centralised approach, it looks like gobby is the decentralised version (looks like
it does need a server, but the server is lightweight enough that you can run them ad hoc wherever the documents happen to be - as you might
imagine). I'll write more when I've tried it.
Next up:
emacs:
The oldest text editor still in common usage (yes, even older than vi - just). The link there is to a gobby implementation in emacs lisp. Seems like the emacsers are embracing and extending, adding gobby's collaboration stuff to their massive set of other editing tools and
widgets. This seems to me like a short term winner for coding, because emacs already has excellent support for every language out there - I
seriously doubt that the gobby editor can come close to matching that kind of support.
(as it happens, the #haskellers were using this, not vanilla gobby. Emacs has syntax highlighting and so on for haskell. Gobby, I suspect, does not)
Finally, we have
vim:
Who, so far as I can tell, are missing the boat... This seems like a pity to me, since I'm writing this in vim - I quite like the thing...
I'll not count them out just yet though, because I know that vimscript is turing complete, so I can well imagine someone implementing the gobby protocol in it.
So, at the moment, my money's on google for the business market, with Microsoft likely to come late to the party with a "Windows Live" product that does the same thing. Of course, the MS one will be integrated with windows and won't run on macs - there's a fair chance that they'll be able to shoehorn themselves into the market that way. But google are already good at integrating with windows - check out the google desktop. They're already pre bundled on some OEM machines, and MS are in increasing amounts of trouble with various courts for trying to stop that kind of thing from going on - so I'm still betting on google.
I imagine many of the sort of people who might read this are likely to be quite posessive about their data, and pretty unwilling to just hand it over to either google or microsoft. Who gets the data, and what that means is beyond the scope of this post, I think. Maybe I'll write about that later if either the whim takes me, or there's some sort of demand. For now, I think it's enough to say that I think most office type data will be managed in this very centralised way pretty soon.
For the coders, it looks like the gobby protocol's got it. It's already integrated in emacs, it'll probably be pulled into vim, netbeans,
eclipse, etc. I guess we'll not have a clear winner here - though the gobby editor might turn out to be cool enough to carve out a bit of a
following.
Anyone know of any other players? Thoughts on why my predictions are wrong? ;)