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.
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.
I hope no one reads that and assumes that’s all TextMate is. TextMate is the godfather of all modern “smart” GUI code editors — VSCode included.
BBEdit magic was all through AppleScript, which was always inscrutable for me.
(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.)
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.)
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.
From the point of you of the user they are all an IDE I think.
On the other hand Visual Studio Code is just an editor, like Textmate.
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.
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.
> 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.
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'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.)
AFAIK, Sublime is/was cross-platform? I wouldn't call that nothing novel.
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.
(I also don't think SublimeText "just ripped off" TextMate and didn't add anything new. They added Windows and Linux support, for one.)
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.
But it took him way too long, unfortunately.
Had him realized he couldn't move the project forward and open sourced it earlier, it could have been a different story.