I have a lot of respect for Allan Odgaard. Something happened, and I don't want to speculate, that caused him to take a break from Textmate (version 2.0 was supposed to come out 9 or so years ago).
Instead of abandoning the project he open sourced it and almost a decade later it is being released.
Textmate is now my graphical Notepad on Mac, with VS Code being my IDE and vim my text editor.
It does, and one can argue it's been maintained and updated much more consistently than TextMate. I still think BBEdit is the best "Swiss army knife" for text manipulation; I've used it for editing huge Markdown-based documentation sites in three tech writing jobs now.
Visual Studio released in 1997 pre-dates TextMate. There were also quite a few products based on Scintilla which came out in 1999.
(And you could edit not just C++/VB/Microsoft-language files with Visual Studio back then. It was extendable to support many languages, which they did.)
TextMate's key innovation was its method of parsing using regexes to build a syntax tree, which was extremely general while at the same time being approachable. This lead to a huge variety of grammars, more than any other editor and it became the standard for syntax highlighting in Sublime, Atom, VSCode, etc.
I hear you, but I think that if the only thing that VS Code did well was to highlight code, far fewer people would be using it because VS Code is not just a text editor. Far from it.
Once you add panels and toolbars with all sorts of GUI tools, consoles, language servers, remote editing, debugging and built-in commands for common external tools like Git - you've got yourself an IDE in my opinion.
However, aside from all of that, Microsoft's mastery of autocomplete - which they call Intellisense - is really what attracted people to Visual Studio and later VS Code. I know that's the reason I've always used it. Also, VS always had syntax highlighting before TextMate even if it was implemented differently than how TextMate did it.
So, I don't think it's fair at all to say that TextMate is the godfather of VS Code assuming that by saying that, we're saying that it's the reason that we have VS Code or that it's the reason that people are using VS Code... I don't fully understand implication of the phrasing but my guess would be that TextMate is the godfather of the implementation of syntax highlighting that VS Code and many others are using.
(I think if we changed godfather to grandfather, it'd make more sense to me because then you have lineage. A godfather is more there as a backup, to be your father in case your biological dad dies. But perhaps, like in the Godfather movies - you go to him for help and advice. So in that respect it sorta makes sense.)
> Once you add panels and toolbars with all sorts of GUI tools, consoles, language servers, remote editing, debugging and built-in commands for common external tools like Git - you've got yourself an IDE in my opinion.
You can have all (or none) of those features in either an editor or an IDE.
The core idea of an IDE was to provide a single UI for all aspects of development — which originally included source code editing, compiling, debugging, and testing. To handle all of these tasks within an IDE required the IDE to have a top-down configuration that would enable it to compile and run the project.
Editors like VSCode don’t compile or run anything on their own (though doing so is possible via the integrated terminal). Editors thus normally don’t require a project file. They may use files like tsconfig.json to inform internal language services, but those config files are not specific to VSCode.
I don’t know, that’s kind of an arbitrary differentiation. I guess the full Visual Studio is not technically an IDE either then because the GUI process itself does not compile anything. It calls out to the standard Microsoft C++ compiler or the dotnet compiler or whatever else it happens to be working with... like Python.
From the point of you of the user they are all an IDE I think.
Agreed! anyone reading this who hasn't used TextMate don't pass it by it is an incredibly useful tool to have in your tool belt. It opens faster than just about all IDEs and is feature rich far beyond "graphical Notepad"
I feel at least slightly responsible, as I imagine many people from the TextMate community circa 2006–2010 do. I think the decline of TextMate was mostly a community problem rather than a technical problem, and it’s a bit hard to untangle exactly what happened.
Allan had been making very fast progress on TextMate for the first several years, and the community was full of excited “early adopter” types, who were very chatty and supportive, and were actively engaged in improving the TextMate language “bundles”, trying out new features, etc. I found the ##textmate IRC channel at the time to be the best place to get technical help with pretty much any programming language.
Then at some point Allan decided that he had made some suboptimal design choices in pretty much every component of TextMate 1, and wanted to improve those with new designs. But he thought it would take more work to incrementally swap new parts in that were compatible with all of the other stuff he wanted to eventually replace, so he started in on what was a substantial rewrite of everything.
That (a) took away his incremental improvement of TextMate 1, (b) took his time away from being as responsive to user questions/ideas, (c) caused bundle authors to slow down on improvements to TM1 bundles while they waited to see what new features TM 2 had in store.
At the same time, the creation of an "insider" IRC channel took away some of the activity from the main IRC chat, the migration from one big SVN repository to a bunch of separate per-language Git repositories damped a lot of the bundle development activity as people were no longer exposed to every change to every bundle, so the bundles didn’t cross-pollinate as much.
Many of the core people in the community gradually drifted away, and weren’t being replaced by new people, from some combination of existing bundles being good enough, and less overall buzz.
As Allan was getting less feedback about the code he was working on, and less interaction overall from users, he became less motivated. As the TextMate 2 project dragged past its original timeline, both Allan and others in the community started to get discouraged. I would speculate he started to feel like more of the work was a chore rather than a joyful adventure.
There are many great TextMate 2 features which have still not been properly explored by bundle authors all these years later. It could use more screencasts, more technical documentation, more people testing zany things and making feature requests...
For my money TextMate is still the best editor available, from a purely technical perspective. The experience of customizing one’s own editor environment has less friction than pretty much anything else out there. Almost completely nontechnical people can do amazing things with it. But the community isn’t the same as it was.
* * *
Aside: Sublime Text was an unauthorized (and for at least the first few years half-baked) rip-off which borrowed TextMate bundles wholesale without contributing anything back whatsoever. In early versions [and maybe still?] people couldn’t actually edit all of the bundle items in Sublime, so its users were disempowered from customizing their own experience, arguably the main point of TextMate’s design. In the early days many of them came to complain at us about TextMate bundle items which didn’t work in Sublime. In my opinion the Sublime author profoundly missed the point of what TextMate was about and why it was special, and viewed it as nothing more than a convenient pile of existing work he could exploit to kickstart his own app.
> Aside: Sublime Text was an unauthorized (and for at least the first few years half-baked) rip-off
This puzzles me though. What "authorization" should Sublime's author have sought?
I don't know why application XYZ would/should need permission/blessing to be compatible with application ABC's plugins.
To me it's just a completely sensible decision; why would the author(s) of application XYZ want to force users to reinvent the while to write a plugin to do Ruby or Javascript or HTML or whatever highlighting, when this work has already been done so many times over?
> In the early days many of them came to complain at us about TextMate bundle items which didn’t work in Sublime.
Well this was certainly exasperating I'm sure. Sorry you had to deal with that.
> In my opinion the Sublime author profoundly missed the point of what TextMate was about and why it was special
Sublime's author has never really engaged the community much like Textmate's author, which is a shame. Though I would have to point out that a small team (both were single-man teams for most of their lives) can only accomplish so much, and I would say that ST's development has greatly outpaced TextMate's. Also I think ST has somebody working full-time on package management stuff now, not sure.
I think it’s unethical to copy an existing program’s features one by one, as precisely as possible, while adding nothing novel. If you want to make software, get your own ideas. Copying something is a lot easier than inventing it for yourself, which requires doing real research.
If you try ripping off large companies, you run the risk of getting sued. But if you do it to a 1-person company, you can generally get away with it. Still scummy.
> completely sensible decision
From a purely selfish “how can I profit without doing my own work” perspective, sure. Same is true of many types of unethical shortcuts in the world.
> ST's development has greatly outpaced TextMate
I haven’t looked in years, but when Sublime was about 4–5 years old (when I last spent some time examining it) this was nowhere close to true.
I would say instead that the man-on-the-street external impression of ST’s development has been faster.
> I think it’s unethical to copy an existing program’s features one by one, as precisely as possible, while adding nothing novel. If you want to make software, get your own ideas. Copying something is a lot easier than inventing it for yourself, which requires doing real research.
I'm not a fan of this argument. We all build upon the work of those who came before us, and usually even the most blatant rip-offs add something.
I'd even argue the opposite: We should copy good ideas. There's no point in re-inventing the wheel over and over again. If we copy good ideas, we can build on them, and we can spend time inventing new things, rather than re-inventing everything just to make sure it's all original.
(And I say this as someone whose work has been shamelessly ripped off multiple times in the past.)
I think it’s unethical to copy an existing program’s features one by one, as precisely as possible
Completely disagree that this is what ST did. Implementing TextMate's bundle/syntaxes APIs != creating a clone.
I'd argue that conceptually, TextMate borrowed at least as much from Emacs and BBEdit as ST did from TextMate.
After all, what was TextMate's raison d'être? It was not some totally new idea. It was a successful iteration of existing ideas. It was lightweight like a text editor, but highly extendable via scripting.
So, it was like Emacs, except not quite as infinitely extendable, but more friendly and had a native OSX GUI interface. And it was like BBEdit, except more extendable. (Correct me if I'm wrong on this -- I used BBEdit a bit back in the day but never dove too deeply into it)
ST iterated further upon TM's ideas and others. Yes, it implemented TM's bundles and syntaxes for compatibility reasons, which I would call a very good thing because why invent those wheels again. Any new entry into an existing software category certainly should leverage the existing ecosystem to the fullest extent possible, unless there is a very good reason not to.
It's been years since I used TM but I think ST's command palette was a big innovation over TM, and more keyboard-friendly. ST's integrated Package Control is also something I don't believe TM has an equivalent for. And ST is of course cross-platform: it's not like using TM is even an option if you're on Windows/Linux.
So I really reject the talk of ST being a "ripoff". Good software should borrow ideas and leverage existing work whenever possible. And it's demonstrably false to claim that ST offered nothing new, or that TM itself didn't borrow very heavily from other editors.
The thing that caught my attention and I found useful enough to really give SublimeText a chance was the mini-map. I see that in a lot of places now, but as far as I can recall, the first place I saw it was ST.
As a fellow early TextMate contributor, I find your take 100% accurate to the extent I was around for it. I personally drifted away because I got a new job that took up all my available time.
I might have found time here and there to contribute to TextMate after the open sourcing, but my company won't let me even look at GPL3 source. I don't even dare look at the bundles.
I still love TextMate -- but I have to be honest, I switched to VSCode recently. The community around VSCode is hard to pass up, and thanks to documentation (and it being JSON), I've found it fairly easy to configure, and in a few ways, it's much easier to configure the whole UI. (pros and cons there...)
I won't say VSCode as stable as TextMate, and it certainly doesn't feel like a native Mac app in the same way, but it's simply easier for me to find plugins that I need.
Instead of abandoning the project he open sourced it and almost a decade later it is being released.
Textmate is now my graphical Notepad on Mac, with VS Code being my IDE and vim my text editor.
Thanks Allan.