Unix/Linux Shell Shebang: Who Gets to Use the First Char?
i tweeted this:
there's no “.py3” file name extension for python 3. But i think python should adopt that. Make things a lot easier.
then someone retweeted but adding: “those poor things who don't know shebang”.
the unix shebang is a hack. It wants to own the first char of a file and first line. But, so do others, witness:
- File encoding declaration
#-*- coding: utf-8 -*-. [see Python: Unicode Tutorial 🐍]
- Unicode BOM mark. [see Unicode BOM Byte Order Mark Hack]
so, there's this precious first line. Who gets to use it?
O, so file name extension is a ugly stupidity of Microsoft Windows, but it's ok if it's moved into the first line of your file?
“I liken starting one's computing career with Unix, say as a undergraduate, to being born in East Africa. It is intolerably hot, your body is covered with lice and flies, you are malnourished and you suffer from numerous curable diseases. But, as far as young East Africans can tell, this is simply the natural condition and they live within it. By the time they find out differently, it is too late. They already think that the writing of shell scripts is a natural act.” — Ken Pier, Xerox PARC (~1980s?)
A better design is a meta-data scheme. Examples: