4 ms·
That's romanticizing it a bit... there's been a ton of feature creep[1] and a fair amount of technical debt. It's just more manageable because they've containe
by blihp 8y ago
That's romanticizing it a bit... there's been a ton of feature creep[1] and a fair amount of technical debt. It's just more manageable because they've contained the scope of most of the core utilities and packages better than most 'modern' software. Also, don't underestimate the value of having a relatively stable set of maintainers over long periods of time.
[1] If you think about it, things like colorization belong in grep about as much as SVG generation belongs in systemd.
- BeeOnRope 8y agoHow would you do colorization of matches outside of grep, other than reimplementing grep?
- blihp 8y agoBy optionally emitting generic structural markup which you could then use to format via colorization (or whatever other means you wanted) in a terminal, a GUI, a web page, etc. That would have been more consistent with the 'one tool, one job' philosophy of Unix. So then you could do something along the lines of 'grep --emit-markup ... | colorize-markup' (completely made up switch and command names) and use aliases/environment variables/etc. so that to a user could type something like 'cgrep' to get colorized output.
- markrages 8y agobut the structure generator and decoder would be so closely coupled they might as well be the same program. Alternatively, you could have grep take a list of colors from a config file or environment variable and blindly interpolate those strings to make colored output[1]. This also allows color to show up automatically for interactive use. [1] this is in fact how grep works.
- hvis 8y agoThat's not all one might want to do the structured out. Think of converting to HTML, as one example.
- markrages 8y agolsusb | grep --color=always Linux | aha > grepped.html
- burntsushi 8y agoripgrep does have a JSON output mode, if you're curious. Of course, ripgrep handles coloring like GNU grep does.
- _bxg1 8y agoI guess what I meant was, most software projects eventually reach a point where they have to be burned down and rebuilt (or simply deprecated in favor of a younger project). Depending on the quality of the engineering it could be 5 years or 25, but it feels like an inevitability. These single-purpose GNU tools seem to be free of that phenomenon.
- asveikau 8y ago> most software projects eventually reach a point where they have to be burned down and rebuilt (or simply deprecated in favor of a younger project) Is it really that, or do new people just come along and rebuild the same thing again and again without firm understanding of the older thing? One approach would be to call GNU tools very exceptional and marvel at them (keep in mind its origins as a clone of older Unix stuff), but perhaps it's more appropriate to ask tougher questions of people operating in this other modality, that you are calling normal expectations.