4 ms·
This article resonates strongly with me. One thing that doesn't: > To which I’d reply “If you know what is missing, and you know where it is missing, why not
by bartread 6y ago
This article resonates strongly with me.
One thing that doesn't:
> To which I’d reply “If you know what is missing, and you know where it is missing, why not add it back yourself? You useless piece of crap!”
I had a friend at school who used to make the same complaint about BBC BASIC back in the 80s. If you missed a double quote you'd get an error something like:
NNN Missing "
where NNN was the line number.
Thing is, and this is true in plenty of other cases, if the computer guessed at where to insert the " and got it wrong, especially if it didn't tell you what it had done, this could lead to some pretty weird side-effects in terms of program behaviour that might be harder to debug/fix. Same is true with other languages. I mean, even if it did tell you, how many people actually read compiler messages other than errors every time they compile?
Nowadays, with background error highlighting it's pretty much a non-issue.
This, on the other hand...
> And don’t make me waste my time fixing problems that you have caused.
F###ing f### me but this boils my p###. I am sick and tired of, particularly JavaScript, architectural astronauts making breaking changes - often changing fundamental concepts - in their APIs and libraries with little consideration to the effect it will have on their users. It's particularly irksome when they've actively evangelized to build that community. Angular, D3, gulp - even TypeScript - have all made significant changes that have wasted massive amounts of my time, and the time of plenty of other developers I know.
It's not like I've gone out of my way to use OSS without "contributing back": often these are inherited projects. For my own side-projects, I try to avoid using libraries where I can because I simply don't want the hassle. (Although it's basically unavoidable, particularly if you use Node as a back-end.)
Still, you can't escape it entirely even if you limit yourself to browser APIs. There have been changes in behaviour around Web Audio, accelerometer and compass, and full screen support that have broken my code out of the blue.
It's really tedious.
Back in the day I remember that Java was much better for this: you could be fairly confident about running Java 1.0 and 1.1 code unmodified on Java 1.5, at least. It's been years since I've been in the Java game so it sounds like that might have gone to the wall now as well, at least when it comes to dependencies outside of the JDK itself.
- hrktb 6y ago> if the computer guessed at where to insert the " and got it wrong, especially if it didn't tell you what it had done, this could lead to some pretty weird side-effects in terms of program behaviour that might be harder to debug/fix. As a lot of things, this is a matter of how often it gets it wrong. For instance in ruby world, rubocop has an option to autofix. To your point, it makes it clear what it fixes so you can review. It’s also conservative enough to bail on anything that could have strong effects, like block endings. That said in years using it I can’t remember any time I really regretted making it autofix stuff.
- mook 6y agoRubocop is a linter, so it tends to have an easier time: it only needs to process input that is already correct, though it might have style issues. It doesn't need to do anything that might change the meaning of your program. Inserting quotes will change the meaning of the program, so getting it right is much harder.