I don't want to pick on Allan Odgaard, but I think the way he's handled the TM2 project is pretty bad.
Allen is a great guy and I love TM. However, here are some facts. TM2 has taken SIX YEARS. It was "90% done" 2009.
This is a living, breathing case study in why quick customer-driven releases are better than "big upfront plans" and "giant system rewrites." Anyone who has developed a major application knows what I'm talking about. These "big rewrites" almost always take much longer than expected, as has clearly happened here.
I have learned to listen to what your customers want, and just build it. Develop it in a few weeks, release it, and then ask again what your customers want. Some people call it "customer-driven development" and I think that's a good way of phrasing it.
Agreed. You have all these great ideas on how to do things better, but along the way you inevitably forget all the work it took just to ship version 1 (let alone v2 with all this improvements both feature and design wise).
Well, I think the GP is just saying that it's all the more tempting in that circumstance. If it looks like nobody's breathing down your neck, you might be more willing to risk a rewrite. And we love writing code so much that I think we've all heard the siren song of starting afresh.
Oh, not at all — but it does make the potential hubris of a rewrite (slightly) more understandable. When you have no time for a rewrite because competition is fierce, the question never really comes up; it's not necessarily the conscious avoidance of "second system effect" that it might seem.
Even HN isn't immune to the problems of a karma system, whereby long detailed comments get tl;dr, and karma is as much affected by visibility as quality. A quick throwaway reply to something that ends up at the top of a post on the front page can easily gain as much karma as a long detailed reply at a later date.
It looks to me as though the source is freely downloadable from github if you want to compile it yourself, but the Mac installer version is being sold at its usual price.
Since you can certainly sell a GPL'ed app, is this "well-planned open sourcing" going to continue to sell the installer version, start giving it away, or discontinue it? I don't see any mention of this issue on either site, but maybe I just missed it.
I'm betting it was from Mercurial and he didn't bother to roll over the history.
From the readme:
>sudo port install ninja ragel boost multimarkdown mercurial
Yes it says later that it's only for a the SCM library tests, but it is ported to Github. Why not test the SCM library with git if you were using that? Seems more likely that he used Hg and was testing with it as well.
I don't understand the negativity being shown towards TextMate in this thread. This thread is about an extremely popular editor going open source, something people have been asking for for a long time and something we should all be THRILLED about, regardless of whether we use it.
Can we save the editor wars for another thread and maybe, just maybe, actually talk about the code?
I'm personally super excited. Ever since reading this blog post I've wanted to cobble together an editor with some level of libclang integration, but the amount of wheel reinvention involved kept it an idle idea. As a TM user already, having the codebase available is way more than I could've asked for.
Like you said, I don't think it has to do with the open-sourcing per se. The open sourcing is good news.
I'm not a TextMate user, but from what I've seen, this is confirmation that the TextMate author isn't going to release TM2 even though he advertised it as an incentive to buy TM1 several years ago, and has subsequently continued to promise.
> ST2 is native enough for me and cross-platform should be on the list of every programmer's requirements for a text editor.
I used to feel this way. I worked really hard to make all my configs and editors act the same across OS X and a few unix platforms. Then one day I woke up and decided I just wanted to work with the best editor on the best platform. (Both personal, subjective opinions, of course.) And that choice has worked out great for me.
When I was first looking at Sublime Text and I saw it as a disadvantage when I noticed they had Windows version. I don't mean to come across as smug, I just mean that I fundamentally feel that OS X is a lot better than Windows. (A personal opinion.) My point is that I need to be philosophically aligned with my editor's developer. And if they have chosen to support Windows, they could have spent that time pushing the OS X app forward, which doesn't align with my position. I want the best editor possible, not the best editor on every platform.
The other way I look at it is to applaud their ambition and results with creating a great cross platform editor. I think cross platform software is incredibly important, but I would paradoxically prefer my editor was not. In other words, I'm glad that ST exists, but I don't it's for me.
You're right, that is absolutely the most important thing. But as we've seen with TM, the way the project is run is really important too. It's a totally self-centered sentiment to say I wish my editor development to be exclusive to my platform, but it would certainly result in a better app for me to use.
Luckily my preferences have nothing to do with the outcome, much like the weather.
I thought about this a little more Considering the amount of attention that specific software licenses get with regards to choosing software, I think it's not so uncommon to want to be philosophically in line with your app of hooves developer.
The fact that they have a windows version is nice, but when I say cross platform I mostly mean Mac/Linux. It's one of the main reasons I chose vim in the first place. Mac/Linux/Windows GUI/Terminal. And not to start a flame war: OS X isn't getting any better for developers. It's ok. It's just not their main focus. Lucky for everyone Linux is rad and getting better all the time. Now if only there was a cross platform Fireworks like program I could switch for good...
And while it's unlikely: I may find myself in a position where I have to use Windows. I'll be glad not to need to learn a new editor I don't want to. Or maybe I'm away from my Macbook and I want to code? We aren't all complete masters of our own destiny like DHH. I like to be prepared. :)
If you haven't heard of it, ST2 has something called "Vintage Mode" which adopts a fairly large subset of the Vi/m commands. It will completely change the command set of ST2 and gets close enough to Vi for most of my needs. Notably absent is the search/replace syntax of vim, but ST2's works well enough I suppose.
Vintage mode is admittedly getting more complete every day, but as a regular Vim user the absences that exist are often a jolting distraction — attempting to use some command that doesn't exist jerks you out of your flow and it feels so inefficient to then have to remember the Sublime way of doing things.
I find it more annoying than the lack of, say, Cmd + T in MacVim, so I've found myself spending more and more time using that — even after a concerted effort to use SublimeText for a while.
This is the biggest problem with learning vim. I was an Emacs user for ages, and I could use other text editors fine. The "Emacs mode" in them usually just meant readline hotkeys: C-p and C-n for previous/next line, C-a and C-e for beginning and end of line, and C-k for delete line. These are the only real movement commands I used in Emacs, and they work in almost anything. Even nano has most of these.
But now my hands are wrecked. My fingers have minds of their own. My muscles have learned a subset of vim that does not seem to be a subset of any vim plugin maintainer's usage. I'll be in Vimperator or Eclipse vi-mode or Vintage and I'll hit cf" and nothing will happen, and I'll realize I'm completely lost. I lose my chain of thought and it takes me a non-negligible amount of time to realize that I'm going to have to hold down shift and use the arrow keys like some sort of Notepad user. I become irrationally angry and wish horrible torture upon the poor soul who wrote the (altogether pretty good) vim plugin I'm using, because who are they to not include EVERY SINGLE VERB AND NOUN that my fingers have painstakingly learned over the past few years. I slam my keyboard against the table, throw the mouse through the monitor, then roundhouse-kick the tower off the desk before I set fire to my desk every time a vim plugin is incomplete.
Vim has reduced me to a pathetic teary wreck every time I have to use a text editor that isn't vim.
I turned on Vintage mode within the first hour. Pretty nice! Funny how the single thing that turns so many off of vim initially becomes the thing you can't live without when checking out other editors.
> cross-platform should be on the list of every programmer's requirements for a text editor
As a member of the set of "every programmer", I have to disagree with this. I develop on the same machine every day. I don't care if my editor is cross-platform. I just want a good editor. It being performant and feeling "nice" for my purposes is way more important to me than being able to use it on machines where I won't ever use it.
I really want to like ST2, because it seems to have the fastest text engine of the current crop of editors; but as a Mac application, it's just barely better than Emacs.
1) The GUI is incomplete: look at the preferences, for instance. To change a setting, you have to open the defaults settings file, find the setting you want, copy it into a different file (user settings), and change it there. Actually, I take it back: it's worse than Emacs in this regard.
2) What GUI is there often works strangely. For example, if you open a folder you get both a sidebar and a tab bar. You can put files in the tab bar by double-clicking them, or you can browse the directory in the sidebar. But if you select a file in the sidebar which is not open in a tab, you end up with a tab bar with no selected tabs, which is quite jarring, since tab bars in all other applications always have one active tab. If you only have one tab visible, it looks like it's active even if in fact you have selected some other file in the sidebar (the fact that active and inactive tabs look very similar in the default theme does not help).
3) The default theme gives you a window that is a strange mix of light gray and dark gray, with no apparent logic. It looks like parts of two different applications got mashed together. I have yet to find a theme that looks satisfying.
The fact that settings are in a text file that I can easily sync is a GOOD thing. I don't have to rely on some godawful third party service to sync settings, I can just export them to Dropbox or throw them on a Git repo. This is one of the many things people love about Vim too, that you can set up your editor in a minute instead of trawling through GUI menus.
While flat files are a good thing, that doesn't preclude having a good interface in your app that lets you edit them. Furthermore, that is not an unfair expectation for an app that wants to be considered a good Mac citizen.
The last bit is in response to the parent post by frou_dh:
I feel ST2 is healthily past "good enough" as a Mac application.
The difficulty here is to ensure said interface doesn't make trivial changes to the flat files. Emacs has this down. As a counterexample, Visual Studio 2010 stores its settings in an XML file that, after pretty-printing, is quite human-readable. But, formatting aside, VS tends to reorder elements in this file even when you don't change anything, making sensible source control unnecessarily difficult. The somewhat manual workaround is to store important settings in a well-formatted settings file and use this as what VS calls "team" settings, because the IDE doesn't write or rewrite team settings files; this is also a nice solution because you probably don't want to sync things like window sizes and positions between a desktop with a 27" monitor and an 11" MacBook Air, and team settings only override local settings when they're defined.
I 100% agree with this. I was able to easily sync my settings between Linux, Windows and OS X for ST2, and easily find options because they are all in ONE file (Ctrl+F -what I need-), esp. considering they are very well documented. Still not as good as Netbeans for PHP/HTML (especially since it's not free), but a good settings system.
I have no issues with the settings. They are well documented and can easily be transferred from computer to computer. This is an editor targeted at developers, and as such I think we are capable of editing a config file.
I too still prefer TM1.5. TM2's UI is, quite simply, horrendous. That sidebar looks like something from the OS9 days. This combined with the changes to the menus and the change from ATSUI to CoreText rendering engine results in an app that quite simply isn't TextMate.
If I'm going to be moving away from TextMate as I know it, it's going to be to something better, not TextMate's uglier brother.
I tried ST2 for a month and ultimately decided it wasn't making me any faster or more productive than I was in TM1. When I do finally get to a place where I'm ready to leave TM1, it'll probably be for Chocolat. I've already bought my license.
I'll need to give Chocolat a look. Also, seeking not so much a replacement for Textmate as a product with a promising future. (I don't think this would be news if Textmate were going in a productive direction.)
I wonder if there is still enough interest in the app where people will contribute all of the community's desired changes -- I hope there is.
I don't get what you mean by "if there is still enough interest". If you wanted a particular feature or change, couldn't you just fork Textmate and then implement it? That's the advantage of it going open-source. We are not at the mercy of some developers who don't think our requests are worthwhile. If I want something on top of my open-source editor of choice, I can just "get up to speed"  with the source and go ahead and implement what I want.
I do think we rely a little too much on other people to do things that we want for ourselves. If you really want a feature and no one else offers to do it, then you will have to pony up and do the legwork yourself. And that's a good thing.
 Getting acquainted with the source code doesn't have to be that hard, either. It is a bit of a problem in less-organized projects, but still better than a closed-source base. As a developer, I think this is something more people should be used to. That is, rolling their own solutions when they don't get what they want.
>If your effort spent on tools speeds up your time-to-stuff, then the assumptions embodied in 1) are invalid.
Effort spent on tools != effort spend on adding some feature I'd like on a programmer's editor. I could just switch to something better.
Plus, you probably overestimate how more productive a tool like a programmer's editor makes you.
The truth is an editor can make editing less repetitive, but it's not like an order of magnitude better. Not even 2x or 3x more productive. Thing is, there are very successful programmers using all kinds of editors, from Emacs and Vim to Eclipse (notch), to Textmate, to Notepad++. And tons of classic unix programs, including C and Unix itself, were written in ed or similar primitive editors.
I'm going to be a bit pedantic: switching to another editor is also effort spent. Learning how to use Eclipse, IntelliJ, Visual Studio, Vim, Emacs, ed, etc. etc. Some stuff is simple (text input from a keyboard), but they each have their own weird incompatible little worlds.
Sorry, I didn't mean to attack you or anything. I'm just praising the model and abilities of open-source and how much power it gives to the user.
I'm extending this idea of rolling your own code to anything/everything open-source, not just text editors. If you're playing a game, or using a webapp and there's some feature or pain point you want to add... well now writing it yourself is an option!
Don't get me wrong, I'm not saying you have to write it because you have a thousand other things to focus on or that the reward/effort ratio isn't worthwhile or whatever reason. But you can.
But you can't tell me that having the option to do so isn't so freaking awesome. Would you prefer abandonware instead? Or seeing where Textmate 2 was going (evidently, nowhere) if it wasn't open-sourced?
>I'm just praising the model and abilities of open-source and how much power it gives to the user.
Well, what I'm tried to say it that much of this is "potential" power and not actual. It takes a community or at least several interested programmers to actualise it. Else, it's just the same as if the user didn't have the option at all.
>But you can't tell me that having the option to do so isn't so freaking awesome. Would you prefer abandonware instead?
No, sure, Open Source is better than closed source abandon-ware. Only pointing it that open source can be abandon-ware too (tons of abandoned projects on SourceForge and GitHub -- and not all for lack of interested users, mainly for lack of interested programmers).
Personally, I think that everyone should have some form of programming chops. If only so people can program in the features that they want/need into the software they use.
That's why I think programmers as users (that can contribute back!) are so beneficial. Heck, they can even help the lead programmer debug by finding stack traces, culprit lines in code, working on things the author can't make time for, etc. etc.
You're right in that it's "potential" power, but I think it's just a matter of time of getting more people into the open-source and contributing mindset. I don't think enough of my coworkers or previous peers from uni respect the power of open-source. They just see open-source software as something... 'fixed'. It's either good, or not. They don't realize that they can easily change it with some determination.
On a sidenote, have you read about the "Cathedral and the Bazaar" , by Eric S. Raymond? I thought it was quite an eye-opener on the merits of open-source vs the closed-source alternative.
Do you know all about batista's personal life, all his responsibilities, all of his schedule? While it is possible that he could do the work and choses not to, I don't think you have enough information to say that he definitely can do it and choses not to. People have to prioritize their lives, and there is only so much time to go around. I for one have a thousand things I'd like to do, but personal time limits and higher priorities prevent me from doing them. Finite resources cannot be made infinite.
I agree. Sublime is targeting cross-platform compatibility. To me that's diluting the virtues of all the systems it works on. It's not the best editor for Mac OS X, it's not the best editor for UNIX. It's not the best editor for Windows.
I prefer stronger opinion with an editor. I don't care if you have an awesome editor that only works on Windows as long as I have an awesome editor that works on my preferred OS.
Awesomeness is what editors should be about. I have to work with it all day long, it better be.
Have you used Sublime? What parts of it are not native enough on Windows and Mac?
The keyboard shortcuts follow whatever is expected on that platform. They have support for specifying different keyboard shortcuts for different OSs so 3rd party packages can also provide out-of-the-box settings that are native to each platform.
It does Lion-style save/resume your workspace so even if you shut down and restart, it opens all your sessions with unsaved work and scratch buffers still the same.
I'm not sure I found anything that made me feel this was a Mac app ported to Windows or vice versa.
No fucking way, you don't always control the environment you work on, and sometimes you want to switch OS without losing your tools. Sublime Text 2 gives you the freedom to do this. And Sublime is completely awesome on every platform.
I don't work in vi if I don't have to though, and I like editors that feel natural, are a pleasure, leverage the virtues of the OS I use, and interact with the shell. Textmate 1 has been able to do all that. It's just my preference, nothing more.
The way TextMate2 was going, I'd bet it's something like, it wasn't getting done, and the author was too busy or uninterested to continue, so open sourcing it probably is a way that it may actually ever get finished.
You don't think it has anything to do with Sandboxing requirements in the App Store and Mountain Lion having an option not to allow non-App Store applications? I'm seriously asking, not trying to start a flame war here.
Marco talked about the current status of TM2 on Build and Analyze a few weeks ago, and from what he said, it sounds like it has some structural performance problems that weren't getting addressed. In addition, he said that requests for bug fixes and features were constantly getting rejected by the developer, which to me hints at either a loss in interest in the project, or a lack of time to devote to developing it.
That setting only changes the ability to launch an app right after download by double clicking it. It doesn't actually prevent the program from running, you just have to take more steps to launch it the first time.
However TM is being kept out of the app store for other reasons, such as it's ability to prompt for an administrator password to allow writing to protected files.
Yeah, this is not true. There is a separate setting which controls a pop-up confirming whether or not you want to run an app that you downloaded, the first time you attempt to run it. The setting referred to here actually BLOCKS the running of new non-app-store (or, by default, non-signed) applications.
Apparently, you can alt-click and select open, but my gut tells me that this was an oversight and will not last long. This feature was touted as a potential way to protect children, and if overriding it doesn't even require entering a password it fails at that pretty badly.