Now he says the next version will be out "maybe in 6 more months if everything goes right." In other words: "I have absolutely no idea when or if I'm ever going to finish it."
Which, of course, is fine. It's his project and he has every right to develop/mismanage it as he sees fit. But I got tired of waiting for basic things like split-window to be implemented and went back to vim a while ago. If 2.0 ever comes out I'll definitely check it out but for now I'm happily using vim.
Duke Nukem Forever was self funded, so there was no commercial pressure to finish it. Since Allan is essentially a one-man shop I imagine the revenue from TextMate 1.0 has him set for life.
TextMate 1.0 was also a runaway hit, so the pressure for TextMate 2.0 to be an equally impressive release must be pretty intense.
We had to re-write an application once quickly due to expiration of a licensing contract. We took the opportunity to refactor it heavily based on "big rewrite" ideas we had for years.
We finished the re-write in 6 weeks and the app was better architected and with new features.
Maybe it worked because it was a relatively small app, but it can be done.
For the record, here's the letter I wrote to Allan that this post is responding to:
Subject: what happened to TextMate?
When TextMate came out, it was the most fun application I had ever used -- to this day, have ever used, in fact. I subscribed to the cutting edge updates and it seemed like every day I'd sit down to my computer to work and my editor would be filled with brilliant new features that I hadn't even considered were possible from a text editor. Indeed, who would have ever thought that one's text editor could be a source of joy or entertainment?
But since TextMate 2 started, there hasn't been a single change. Why not let people use TextMate 2 the same way? Why not let them experience the joy of watching the day-to-day morphs of new features and changes and rethinking. You could declare it was only for those who wanted to live on the edge with breakage and the rest, that TextMate 1 was always available for those who just wanted to work. But don't we deserve the option?
If you start thinking like that, then you don't deserve your customer's money.
This isn't an open source project where obligations are low - and even in open source projects there are _some_ obligations - this is a business that has obligations both contractual and implied, and if you fail to honor or modify them then you can expect customers to go elsewhere.
Actually, I don't deserve my customer's money, unless we specifically enter into an agreement where I agree to provide some service or product in exchange for that money. And to my knowledge, buying TM 1.0 in no way included an agreement that v2.0 would be released at a specific time or in specific intervals. Ergo, the creator of TM owes his customers absolutely nothing. He can go crawl under a rock and die, or he can build the greatest text editor the world has ever seen and never release any of it to anyone. It would be a great waste but that's his right.
Wanting something does not give you the right to it.
From Allan's post:
I feel I should stress that I am not posting these “status posts” in an attempt of painting some picture of TM 2.0 being around the corner to increase sales or avoid having people jump ship. Please make your decisions about what software to use/buy/support based on released software, not what I or someone else writes about “the future” (which none of us can predict).
Which is an attempt to modify the implied obligations that have arisen from:
- Previous announcements that there would be a text mate 2.
- General expectations about what normal software companies do.
The point I was hoping to make is that people have expectations based on what they believe has/will/should happen, no matter what you believe you have promised, and you either need to deliver on those or change those expectations. If you don't then you might be surprised at their disappointment, but it's pretty inevitable should you fail to manage expectations well enough.
If that sounds stupid or unreasonable to you, then I mostly agree, but these are people you are dealing with and they don't always operate in a logical fashion.
(Incidentally implied obligations are also recognized in law. They don't have to be written into the contract to exist. One example from the UK is employer supplied perks that aren't in your contract. I'm not suggesting that there is any legal obligation in this case (as opposed to an expectation), but they do arise - there's some more information at http://www.gillhams.com/articles/141.cfm )
Sometimes I feel that the openness of development in some projects today (especially in open source ones) somehow nullify the charm of finding a new release and discovering all the little new bells and whistles.
I remember many years ago when I was young and didn't have an internet connection, my friend got the new version of a music player we used on a CD from another friend. I hadn't seen it or read about it before installing it, and had a genuinely fresh and enjoyable experience trying it out.
An open source project that I like, follow and contribute to had a new stable release a while back. While reading the release notes, I noticed the number of new features added in the span of a few months were staggering, but the magnitude of which I never noticed because I was always on the trunk build.
Sometimes I wish for that childlike curiosity, suspense and surprise that accompanied these kind of things.
I'm sure all the Textmate users will be pleasantly surprised when a new, rewritten, fully polished version of their editor will be made available.
Back in October I emailed Allan asking whether he'd be interested in the concept of a "Textmate Liberation Fund" that would compel him to open the source if enough money was raised. I think Allan deserves to be able to derive some income from v2.0, and that one of the driving factors behind its lateness is his promise that it will be a free upgrade for all current Textmate owners. I can't be sure, but I wouldn't be surprised if Textmate has begun to wane in its influence and mind share amongst coders, so 2.0 therefore probably doesn't represent a lot of income for him (or anyone else associated with Macromates). Many people have offered to pay for 2.0 on his blog comments, be he won't have any of it. Admirable, but nevertheless, Textmate remains the hostage of an awkward situation.
The response I got:
"Right now we are working hard on getting 2.0 out the door, we haven't really been thinking of much other than that"
Which I find hard to believe in light of the above post.. But I still hope he'll get it out in 2010. Either Allan & co. have day jobs and no time to work on this thing, or we're looking at a Duke Nukem Forever / Netscape mega-rewrite syndrome situation. Either way, it sucks for the fans.
Allan is a computer scientist in the truest sense of the word. Intensely fascinated by doing core research and discovering new, deep insights. He has made enough money off TextMate to allow him to pursue this passion without much concern for the commercial reality of releasing software regularly to keep the natives calm. Good for him!
There's no day job to attend to, just his quest for quality as declared by Allan himself. Despite being a good friend of Allan and helping him get TextMate v1.0 out the door based on almost exactly the opposite principles, I can't help but respect his dedication to perfection and his lifestyle design around it.
I don't understand the impatient people here. TextMate 1.0 is pretty easily the best editor I have ever used for programming. The lousy multi-file search, my major complaint with it, is no longer an issue thanks to the terrific Ack bundle. I have a few minor complaints about how things work, but there is no guarantee 2.0 will be any better there. If a better 2.0 does come along, that's great, but why worry about it?
I feel the same way. I have no urgency for 2.0. Even search isn't much of an issue if you just restrict your project scope a bit. For example, for Rails apps I just open everything but log and vendor and everything is snappity snap.
Did you offer to liberate the 1.0 branch of code? I think that's what I'd be interested in. Take 1.0 and deal with the "ugly" parts. I'm sure Allan thinks the source code is somehow too ugly which is why he did a ground-up rewrite. But whatever... we all write ugly code. Get over it, realize users don't care how the code looks, just the end result and release the source code so that we can incrementally improve upon it.
Remember when Nullsoft released Winamp 3.0? I'm pretty sure this is how TextMate 2.0 will go down...
There is a significant difference between a 3D game and a utility, namely, how closely the development cycle must track the platform upon which it is to be released.
If the game development cycle is too long, the existing hardware will so far surpass your product's use of said hardware that when you release, your product will just look childish.
Not the case with a utility or a programming environment. Witness: I still use vim, even though my laptop has a Core2Duo 2.8Ghz, and dual GPUs. If vim 8.0 took another three years to release, I would not care in the slightest, and would gladly upgrade when it happens.
That doesn't mean it still doesn't apply. Mac OS X has seen some major API changes and additions in the past couple major releases (that have all happened since Allan announced his working on TM 2.0), and I can see the DNF fiasco repeat itself here. TextMate 1.x won't become completely and unrunnably obsolete, but redoing major features to take advantage of some shiny new API and therefore pushing back any potential release date? It's the same idea on a longer time scale.
API's don't disappear overnight once they've become deprecated. There are API's that have been deprecated since 10.2 or 10.3 but still work on 10.6, for example.
> TextMate 1.x won't become completely and unrunnably obsolete..
Yes, I've already touched on that. ATSUI, used in TextMate, was deprecated in favor of Core Text back in 10.5 but it still works. My point was that the introduction of Core Text caused Allan to go and presumably use that instead in TM 2.0 to get benefits like, oh, him actually working towards CJK text rendering without resorting to hacks, not that the deprecation of whatever APIs he was using before means TM 1.x is no longer runnable on newer versions of OS X.
Not that the DNF vaporware thing was any different, it was a matter of looking obsolete, not a matter of not running at all.
For all we know, Core Text-backed CJK text rendering works fine in TM2 and the wait is for Allan to finish working on other parts of the editor instead.
And FWIW, my comment about deprecated methods was made with new code for TM2 in mind, not TM1.x code being used on TM2.
That was one example of one new major API that Allan's publicly mentioned he will be using in 2.0. Obviously there would be other changes, and obviously you wouldn't just be able to use whatever has been introduced in 10.5/6 to make it happen. Ultimately every rewrite, new feature addition, feature change, etc. has the consequence of pushing back the release date.
I'm not sure what point you're trying to make anymore; I don't believe I've ever (let alone in this thread) said anything that goes against: Ultimately every rewrite, new feature addition, feature change, etc. has the consequence of pushing back the release date.
I only specifically mentioned CJK because A. you mentioned it and B. I remember from other discussions that it happens to be a feature that you want. It could just as easily have been "a shiner way to parse text in order to theme it for display" or #{random-feature-x-that-we-don't-know-of-yet}.
how many people, honestly, paid any attention at all to the trunk builds before the next major release
How many people used the "stable" version while Emacs 23 was being prepared for release? I don't know of anyone; Emacs 23 had too many useful features for anyone to wait.
Notice how Emacs users had the option of using an "unstable" version before it was released, whereas Textmate users don't have that option.
Taking a long time between versions isn't the same as going completely dark between versions though, is it?
I mean, people could see what was going on in emacs as it was being developed if they were curious. And as far as I'm aware, there weren't significant rewrites between versions.
Delicious Library. Took Shipley over four years to ship version 2, and it was rewritten at least once, and possibly twice, before it ever saw the light of day.
Good to see such a considered approach in this day and age.
In my eyes, there could be no TextMate 2, and I wouldn't complain. It is such a sturdy, reliable piece of software (with comparatively little in the same league), that it seems unlikely to experience a Quicksilver-esque exodus (although that was dead, not just on the slow burn).
I would not consider this a "considered approach." He's doing a multi-year, ground-up rewrite of a highly successful product in order to add a list of features geared towards Textmate developers (of which there are roughly 1), rather than end-users.
Meanwhile, he gets so many complaints from dissatisfied users wanting a few core features added to the 1.x version they paid for, that every 6 months he writes plaintive blog posts telling people "I'll release it in another 6 months: software is hard!"
This is the portrait of a project that's being sadly mismanaged into irrelevance, not one that's being carefully honed to perfection.
What I find amazing is the sheer cognitive dissonance of Textmate's popularity in the Ruby community; the same community that has enthusiastically embraced Agile developer practices and whose leaders tend to speak as often about the importance of good project management as they do about good coding.
Like most modern editors and IDEs, TextMate's power comes from the community of developers who extend the "out of the box" functionality.
To that end, I consider features geared toward developers to be critical.
Otherwise, it's hard to disagree that this project is embarrassingly behind schedule. I read once that the first version was only released after numerous ground-up rewrites.
Yeah, but as the previous poster said: the biggest advantage of TM is the ecosystem of plugins and environments that third-parties have developed for it. From the dev blog posts, it sounds like a lot of the stuff going into TM2 will be directly useful for people developing plugins and what-not; ergo, it's stuff that will ultimately be end-user facing. Ditto for some of the other things that the dev has been talking about (better threading support, better support for network-mounted files, etc.).
Really, though, TM1 consistently amazes me in that I don't know too many other five-year-old programs that are still as useful today as they were when they were first released.
What I consider more critical than features geared toward devs is that TextMate works as a text editor. I've been using TextMate mostly happily for years, and half of me wants to tell Allan to keep on doing what he's doing if he thinks he will get a better TM 2.0 out of it.
The other half of me is pissed off that 1.x has issues that haven't been fixed because 2.x was supposed to fix it, and while I know I don't have a right to bitch and moan and demand this, it's still frustrating. Like how non-fixed-width text does not display correctly (in this text editor). Allan had a blog post back in 2006 about how to fake CJK support and promised 2.0's ground-up rewrite with Core Text was going to solve those issues. 2006. It was also part of a series of posts about how his app was going to go Leopard-only back then, and I'm now just sitting here wondering if I'm seeing a reenaction of Duke Nukem Forever where he's doing re-re-rewrites of 2.0 because of Leopard and now Snow Leopard and...
> Good to see such a considered approach in this day and age.
Since when is holing up for multiple years to work on your commercial project with little outside communication a "considered approach"?
> In my eyes, there could be no TextMate 2, and I wouldn't complain. It is such a sturdy, reliable piece of software [...]
It's both of those things, but that doesn't mean the 1.x branch doesn't have gigantic issues. My personal gripe is that when you focus a project window, the entire project is rescanned from disk for changes. When the files live on a WAN-mounted network share, this makes it unusable.
I stick with TextMate when I can because it's a very good Mac OS X editor, but Vim and Emacs make inroads every day.
Glad someone pointed it out, I use ReMate whenever I can. It's no good for projects in heavy development though. I've had co-workers do `git pull` with ReMate active. None of the updated files appear in TM, which makes it easy to save and commit a regressed file.
I've trying Google QSB; it is super fast, looks great, and works more like QS than LaunchBar. It is supposedly extensible, so hopefully people develop for it.
It's sadder that they never got past that due to it crashing continuously. It was a wonderful tool, but nobody I know ever experienced it as a reliable one. Tell me you don't know the disruptive experience of Cmd-Space and...nothing happens. It's like having your leg fall off mid-stride.
I use Quicksilver as my sole means of launching applications (plus a few other utility functions) and I've never experienced the kind of instability you're describing. Let ß56a7's low PID testify to it's rock solidness!
In all seriousness, though, I can imagine the irritation that would be caused by crashes. I've just never experienced them, and I've been on the Quicksilver train since 10.4.1 or so.
I run into that all the time. Even opening a big file takes TM to its knees. I keep TextWrangler on the Dock for when I need to open big files or search large projects.
TextMate is one of only a very few applications for which I'd actually tell someone to buy a Mac (CSSEdit and Coda being 2 more).
It's such an essential tool for so many developers - I'm in it each day for my rails apps - that I can't imagine the pressure being placed on Allan to make it "just like 1.0 but better".
I really like Maciek416's "Textmate Liberation Fund" and see where that has the potential to make Allan more money than giving away a free upgrade.
"I know I aimed to describe some of the abstractions 2.0 will introduce, but the intent was to have someone else write about this which didn’t work out, and me writing blog posts is a serious drain on my resources"
He has been working on 2.0 for at least 2 years now and spending 15 to 30 minutes on maybe a weekly blog posting or even twitter messages is a 'drain' on resources?
I don't get it. Sounds like bad time management to me.
It takes me hours to write a blog post, and I then lose the best part of a day to following up comments, reading associated discussions on Hacker News, etc. I can see Allan's point.
This is the truth. A well written blog post, with good supporting materials, can easily take a day to write, and then a day to deal with the "response."
Using a local text editor when everything else is in the browser doesn't make as much sense as it once did.
Textmate is Cocoa right? I'd be useful if they could produce a web version with cappuccino. It'd be great to fire up a browser, point Textmate.com to my Github repository, and work.
What about when you don't have internet access? I know it is increasingly ubiquitous, but sometimes it's pretty handy to be able to function without it.
That said, perhaps it just needs a Gears-like ability to work in a disconnected state.
Text editor needs a lot to be local, because you're doing a lot with large blocks of memory, and responsiveness is critical. I like the idea about the save point being remote.
Like sharepoint, but without the destroy-file-on-save feature it triggers when you save against it in gvim in some circumstances. Doing it via git integration could be a great way to achieve this without rebuilding the world.
Could be achieved via a FUSE filesystem wrapper on linux workstations.
I think that an approach like that would have severe performance implications. The really impressive thing about Textmate is how fast it is in relation to Eclipse and Netbeans.
I think the issue with Eclipse is the latency in whatever Java uses currently for drawing widgets (SWT?).
Right click a project in Eclipse on your Core 2 Duo, and time how long it waits for the context menu to show up. Then right click any other IDE, text editor, or non-Java app, and attempt to do the same.
If Textmate isn't an open application, I can't be concerned with whether or not it's developed in the open.
In fact, developing a closed source app "in the open" is a bit questionable. The users invest time and energy into a tweaking a product which remains the sole property of the original owner. The owner, besides simply charging money for the product, can just sit on the product, throw away all the user contributions or take the product in a completely different direction.
It's hard developing software on your own and I can sympathize with the desire for compensation. I'm not sure what the solution to the situation is.
http://blog.macromates.com/2009/working-on-it/
This really reminds me of a series of blog posts by Chad Fowler, warning against the "big rewrite."
http://chadfowler.com/2006/12/27/the-big-rewrite
Now he says the next version will be out "maybe in 6 more months if everything goes right." In other words: "I have absolutely no idea when or if I'm ever going to finish it."
Which, of course, is fine. It's his project and he has every right to develop/mismanage it as he sees fit. But I got tired of waiting for basic things like split-window to be implemented and went back to vim a while ago. If 2.0 ever comes out I'll definitely check it out but for now I'm happily using vim.