4 ms·
There are actually a few nagging bugs in Textmate which require fundamental changes to address. Allan also seems to be somewhat of a purist, given this rewrite
by tdavis 17y ago
There are actually a few nagging bugs in Textmate which require fundamental changes to address. Allan also seems to be somewhat of a purist, given this rewrite and the fact that he can't get a simple blog post "good enough" to put out there. He likely considers it a good thing because he wants to do it.
Code very much does get stale, at least to the developer looking at it every single day, and sooner or later almost everybody wants to throw everything out and start over. We generally don't do that because we can't justify it in terms of the business, but when you're a solo developer I suppose you can do whatever the hell you want ;)
- eli 17y agoYup, I think you're probably right. We generally don't do that because we can't justify it in terms of the business True, but Joel's point is that a rewrite can actually be bad for the code not just the business, because you throw out years of real-world testing and bugfixes. And to be honest, unless Textmate 2 is significantly worse than 1.x, I'll buy an upgrade license.
- tdavis 17y agobecause you throw out years of real-world testing and bugfixes Very true, but you also get to trade in on the experience and information gleaned from the use and development of a product over many years. I think it is safe to say that Allan knows far more about Textmate now than he did when he started it, and perhaps that insight has allowed him to bring some significant improvements to the text editor as a whole. Maybe I'm just biased; I tend to rewrite stuff before I've even written it once.
- gommm 17y agoTrue, but Joel's point is that a rewrite can actually be bad for the code not just the business, because you throw out years of real-world testing and bugfixes. I think that applies on project with multiple developers and whose developers are not in the company anymore. When it's a solo developer, he still has the experience and doesn't lose so much from throwing out the code
- DougBTX 17y agoThere's truthyness in that statement... but I've re-written code from years before that I wrote myself; it's easy to forget all corner cases you handled in old code. It forces you to take a step back from your new, clean, way to solve the problem and make sure it really does cover those forgotten cases too. The added uncertainty really hurts the predictability of a re-write.
- bmelton 17y agoA little offtopic, but I would say this is the reason that vigilantly commenting your code is essential, especially for a one man shop. I've learned this the hard way enough times to make it stick to the point now that even when I'm just writing regular, mundane CSS, I make sure to comment in every workaround I write, no matter how routine. It takes longer, but it's worth saving me from myself.
- rbanffy 17y agoThat's why you should write automated tests for your corner cases (and of course not only the corner cases). If all corner cases you knew about are properly tested, your rewrite should function properly.