So Fedora 38 has chosen to break fgrep and egrep, to the fun of everyone who has them in scripts, especially scripts in crontab entries.

$ fgrep fred /dev/null
fgrep: warning: fgrep is obsolescent; using grep -F

Adding output to standard error is an *incompatible change*. And this is happening only because the GNU Grep people are <redacted because I cannot think of quite the right phrase>.

I have filed a Fedora 38 bug over this fgrep/egrep change and we'll see if it goes anywhere. I did my best to keep my system administrator's voice down, but I did not entirely succeed in hiding my views.

https://bugzilla.redhat.com/show_bug.cgi?id=2188430

2188430 – grep-3.8 is incompatible with previous versions of grep for fgrep and egrep

One of my opinions on egrep/fgrep versus 'grep -E' and 'grep -F' is that the former are rather nicer to type than the latter, and that matters. One extra letter, all lower case, no shifting needed. And egrep and fgrep have been there for a very long time.
Unsurprisingly, usage of egrep and fgrep is common across the shell scripts (and probably other things) that are shipped by assorted open source packages. GNU Grep's decision to loudly deprecate and then remove these names is a giant and pointless middle finger to the general free/open source ecology, one that will require hundreds of projects to undertake pointless work just because GNU Grep people want to get rid of 'redundant' commands that have been there since, oh, V7 Unix in the 70s.
@cks Personally, I'm partial to "grep -P" over "egrep/grep -E" when I need extended regular expression support. I prefer PRCE in vim with ":perldo" also.
@atoponce @cks How is this relevant? What either of us prefers doesn't mean that our preferences work their way into everyone else's code.

@orc @cks

> How is this relevant?

It's a discussion about grep(1) options, which could lead to an interesting discussion about the regex differences between "grep -E" and "grep -P".

> What either of us prefers doesn't mean that our preferences work their way into everyone else's code.

I'm not saying they should. Curious how you read that from my reply.

@atoponce @cks Grep is the particular case here, yes, but I read it as the thrice damned FSF not giving a fuck about backwards compatibility. It's why people shouldn't mess with published interfaces if at all possible. (cf: https://qz.com/646467/how-one-programmer-broke-the-internet-by-deleting-a-tiny-piece-of-code)
How one programmer broke the internet by deleting a tiny piece of code

A man in disrupted web development around the world by deleting 11 lines of code

Quartz
@orc @atoponce @cks Yes, they ought to know better -- but the original sin here is with the POSIX standards committee, which opened the way by deprecating the names themselves, for similar silly reasons (see "RATIONALE"): https://pubs.opengroup.org/onlinepubs/9699919799/utilities/grep.html
grep