Some thoughts:
From the Perl documentation (perlfaq1
):
What's the difference between "perl" and "Perl"?
"Perl" is the name of
the language. Only the "P" is capitalized. The name of the interpreter
(the program which runs the Perl script) is "perl" with a lowercase
"p".
You may or may not choose to follow this usage. But never write
"PERL", because perl is not an acronym.
Maybe it's just me, but I find this distinction between the language and the program useful. It might be even more useful in the case of language where there's multiple implementations, you'd still talk about the Foo language, but the implementations foo
and foox
could be somewhat different.
I went a step further from what the Perl FAQ says, and used code formatting for the program names, on purpose. The name of the program is also a filename on the system, a computer-readable string, so "code". Using code formatting makes the distinction between the program name and some common English word clearer, useful when you're talking about finding files with find
, or cutting text files with cut
.
As for other programs and languages, they seem to differ in how the names are written. AWK is an acronym, and e.g. Wikipedia consistently writes it fully capitalized, as "AWK", except when talking about the program, which they write in monospace font, a bit like code formatting here:
When written in all lowercase letters, as awk
, it refers to the Unix or Plan 9 program that runs scripts written in the AWK programming language.
Then again, the manual for the GNU version of the AWK language is titled "The GNU Awk User’s Guide" with just the A capitalized, but they mostly use gawk
and awk
in the text, to the point of discussing "The evolution of the awk
language", missing the language/implementation difference mentioned before.
Then, GNU sed is written in lowercase on the GNU pages, even at the start of a sentence. The manual does use sed
or "GNU sed
" in the main text, though. I don't think I've ever seen "Sed", though.
sed is commonly used to filter text, i.e., it takes text input, performs some operation [...]
I think "newer" stuff like Python and Ruby are written capitalized, and e.g. Bash's documentation consistently talks about Bash. On the other hand zsh seems to be written in lowercase on their web site, but the manual has mentions of the capitalized Zsh at some parts.
What does all this mean for the post author? At least that the style isn't consistent in other texts either, so it's hard to be totally wrong.
FWIW, I write Perl, Python and Bash for the languages, and would suggest to that others too.
I seem to have a harder time keeping the difference in cases like sed vs. sed
where both are in lowercase, and I don't think I can write AWK/Awk/awk consistently even now. I don't really like the awk style, as I find it hard to write, and the default font for tags is much lighter than other text, so it's harder to read, too.
I don't think it's easy to write a hard recommendation though, since the customs do vary.
perl
vs. Perl could depend on context.