5 ms·
Broken features aren't used
- jlgaddis 10y agoI remember hearing about some feature being removed from OpenSSL not long ago after it was discovered that it couldn't have been used because... it didn't actually compile(?), if memory serves. Sorry, I don't remember all the details at the moment (it's almost 7am and I've been awake for ~36 hours). I'm assuming that's what this is about but maybe not.
- shalmanese 10y agoThat was the notorious Dual_EC_DRGB which was backdoored by the NSA but was broken inside of OpenSSL without anyone noticing: https://nakedsecurity.sophos.com/2013/12/22/the-openssl-software-bug-that-saves-you-from-surveillance/ https://nakedsecurity.sophos.com/2013/12/22/the-openssl-soft...
- BWStearns 10y agoThere is also the corollary that if you have a feature that no one uses then make sure it works before deciding that your users don't like it. A feature can be awesome in its desired form but if it's janky as hell or unreliable then it won't get used. If the implementation sucks it's not proof that the feature sucks.
- granos 10y agoThe contrapositive would then be that if you find some really janky/unreliable feature that people are using, it must be pretty important to them and you should tread lightly when modifying it.
- BWStearns 10y agoTrue. I should have specified that the volume of use for poorly implemented features is only not useful for determining that it is a bad feature. Lots of use indicates that it may be a great feature, or that it's not the feature you thought it was (https://xkcd.com/1172/ https://xkcd.com/1172/)
- paol 10y agoRather bizarre logic regarding unit tests. Surely the correct thing to do is to add telemetry to the application to get metrics on feature usage. Of course this may not be practical for small utilities, like ls in the example. By the way ls -p (well, -F actually) was quite useful in the time before coloured output. I remember it being turned on by default on some systems I used way back when.
- masklinn 10y ago> Of course this may not be practical for small utilities It's utterly undoable for utilities (small or not) even if you ignore the likely blowback à la W10 telemetry.
- paol 10y agoLots of large applications have extensive telemetry without any significant blowback (as far as I'm aware). MS Office, Firefox, Chrome, ... It's not undoable for utilities either, just the effort/benefit ratio probably doesn't justify it.
- masklinn 10y ago> Lots of large applications have extensive telemetry without any significant blowback (as far as I'm aware). MS Office, Firefox, Chrome, ... Not sure about the others, but AFAIK Firefox telemetry is only enabled (or at least sent to Mozilla) on pre-release channels. > It's not undoable for utilities either It's undoable in the sense that you'll be bundling more telemetry code than there is actual utility code, and downstream is going to remove it as soon as it lands.
- vertex-four 10y agoFirefox Health Report is on and shared with Mozilla by default on release builds - it prompts you about it on first run. There's additional telemetry in pre-release builds.
- cm3 10y ago
- cm3 10y agoThe only reliable way to find out who uses a feature is to release with it removed. And that is the problem.
- coldcog 10y agoHave just added alias ls="ls -p" to my .bashrc.
- martin-adams 10y agoWhat about adding a deprecation notice and see who comes screaming.
- gkya 10y agoDepends. You want only the contents of a directory when you ls it. Many scripts and programs depend on determinable output from utilities like ls, find, ps, etc.
- martin-adams 10y agoVery true. You could also add a suppression flag to keep scripts running. I think I'd rather have a script die from a deprecation notice than the feature being removed.
- gkya 10y agoThe thing is that it may not die, but instead use the warning as input.
- caf 10y agoThis is pretty much the only way drivers for very old hardware get removed from Linux, too. If it's been broken for years without any complaint...
- stevekemp 10y agoInterestingly I use `ls -p` all the time, just to list directories: # ls for Directories. function lsd { ls -1p $* | grep '/$' } Works nicely.
- lmm 10y agoTests prevent you from accidentally breaking features. If you want to deliberately break a feature to see whether anyone uses it, you can still do that. Surely it's better for this to be a conscious decision rather than random accident.
- erez 10y agoThis is a weird one, but it seems the point isn't "Broken features aren't used" but rather "unused features don't get maintained and tend to break" and also the point of the article isn't broken features but "on whether to remove features, and which ones to remove"
- lokedhs 10y agoI have used -F (a bit more extensive version of -p) since forever. Adding an alias from ls to "ls -F" is the first thing I do on a new system. I surely can't be the only one, and I'm surprised that the article's author suggested it's never used.