ESR Shares A Forgotten 'Roots Of Open Source' Moment From 1984 (ibiblio.org)
Eric S. Raymond recently documented one of the first public calls for free software, which happened immediately after AT&T's fateful decision commercialize Unix:
[I]n October 1984 I was in a crowd of people watching a presentation by a woman from Bell Labs describing the then-new getopt(3) library, written by AT&T as a way to regularize the processing of command-line arguments in C programs... Everybody thought this was a fine idea, and several people asked questions probing whether AT&T was going to let anyone else use the getopt code they had written. These questions related to the general anxiety about Unix source code distributions drying up. Frustration mounted as the woman gave evasive answers which seemed to add up to "No, we refuse to commit to allowing general access to this code." Which seemed to confirm everyone's worst fears about what was going to happen to Unix source code access in general. At which point Henry Spencer stands up and says (not in these exact words) "I will write and share a conforming implementation." -- and got a cheer from the assembled.
If you're thinking "That's not a big deal, we do this sort of thing all the time," my actual point is that in October 1984 this was indeed a big deal. It took an actual imaginative leap for Henry Spencer to, in effect, say "Screw AT&T and its legalisms and evasions, if they're going to cut off source access we hackers are gonna do it for ourselves"... [H]e got an actual cheer exactly because he was pushing forward, exposing the possibility of doing not just small projects and demos and quirky little tools but at competing with the likes of AT&T itself at software production.
Raymond also remembers this as an important moment for him. "I was a young, unknown programmer then -- just 27, still figuring out what I wanted. I watched Henry make that promise. I heard the cheer, and felt the change in the air as culturally, we realized what the solution to AT&T fscking us over had to be. And I thought 'I want to be like that guy.'"
If you're thinking "That's not a big deal, we do this sort of thing all the time," my actual point is that in October 1984 this was indeed a big deal. It took an actual imaginative leap for Henry Spencer to, in effect, say "Screw AT&T and its legalisms and evasions, if they're going to cut off source access we hackers are gonna do it for ourselves"... [H]e got an actual cheer exactly because he was pushing forward, exposing the possibility of doing not just small projects and demos and quirky little tools but at competing with the likes of AT&T itself at software production.
Raymond also remembers this as an important moment for him. "I was a young, unknown programmer then -- just 27, still figuring out what I wanted. I watched Henry make that promise. I heard the cheer, and felt the change in the air as culturally, we realized what the solution to AT&T fscking us over had to be. And I thought 'I want to be like that guy.'"
Its quicker to code something simple like getopt than to argue about it.
http://michaelsmith.id.au
In the business world more people understood Unix than Microsoft by far at the time. The problem was that Unix was much, much more expensive than Windows Server, and people hadn't yet learned the lesson that you get even less than what you pay for, and keep paying for it decades after you realize you got in bed with the devil.
Funny fact: Hotmail ran/runs on both FreeBSD and Solaris.
Hotmail originally ran on a mixture of FreeBSD and Solaris operating systems.[21] A project was started to move Hotmail to Windows 2000. In June 2001, Microsoft claimed this had been completed; a few days later they retracted and admitted that the DNS functions of the Hotmail system were still reliant on FreeBSD. In 2002 Hotmail still ran its infrastructure on UNIX servers, with only the front-end converted to Windows 2000
from https://en.wikipedia.org/wiki/...
In Microsoft's most recent EEE plans... they are now trying to get their fingers into both the Linux and FreeBSD foundations.
Not quite how I remember Henry Spencer.
On the other hand, he did do the getopt thing. His regex thing was far, far, far more important. Also: Perl, anyone?
Henry was an important, important person around that time. So was UToronto. Too bad UToronto kinda bailed on us all at the time of the BSD lawsuits.
Hi Henry; still alive. Yourself? ;^)
Unfortunately the decision to no longer be open was also the decision that caused Unix to be overrun by systemd.
ftfy
Except when you need to account for arguments appearing out of order. Or multiple arguments. Or the same argument that can override or revert itself. Or a mixture of short and long arguments, where all long arguments have a short alias, but not necessarily the other way round. Or if you want parsing to stop (or pass-through) at the first unexpected argument. Or if you want environment variables to influence the method of argument parsing. Or if you want to allow long arguments to start with a single '-' rather than the usual '--'.
Ask me about repetitive DNA
Well, yes, but for most coders older than the dawn the "custom code" starts with a template C application in a build-ready template directory with a pre-built makefile and perhaps a bit of structured shell, so that they are basically cloning fragments to parse this or that kind of data. At one point I had templates for using getopt but, as you say, you end up cloning lines either way and adding one level of indirection doesn't really save you much, even if you don't really have to remember all of the getopt stuff because IT is templated instead of simple CL parsing. Ditto parsing in bash -- I don't even try to remember it, I just copy my superlong bash script template (which also has useful fragments that illustrate loops, conditionals, sed-isms, awkeries, some regex stuff), delete what I don't need, and modify what I do.
This is the way "reusable code" really works a lot of the time. Once you've solved a particular problem, especially the second or third time, the trick goes into your code "library" and from then on you just copy them and hack them to fit, you don't rewrite them from scratch. And thus we spare reliance on memory at the level of detail and instead use our brains efficiently, as lookup engines and problem solving engines.
rgb
Even when the experts all agree, they may well be mistaken. --- Bertrand Russell.
https://github.com/mysql/mysql-server/blob/5.7/regex/
Unfortunately, getopt doesn't really handle those cases well. For simple cases, I much prefer the OpenStep mechanism, where every option is inserted automatically into the user defaults dictionary. For more complex ones, see something like clang's options parser.
I am TheRaven on Soylent News
Without GNU, Henry Spencer is just a dude. Now, who wants to buy a plushy?
I was working for Western Electric when Unix first appeared. I had the opportunity to camp out on a PDP10 based system in the Labs, which is where I taught myself C (along with K&R first edition) and learned Unix. Source was on the machine. Looked at the Bourne shell code, which I described as seagull (G-gol). He bastardized the preprocessor to allow writing C code that looked like Algol. I was really sad when I heard AT&T wanted to close the source and "monetize" Unix. I felt that they didn't know what they had in Unix and C, and what could be done with them had they allowed the community to work and expand what was there. Then came Linux, and the rest is history.
To be clear, yes, ESR does seem to be a bit of a jerk, but so does RMS (in a totally different way). I nevertheless feel that both have things to say about Open Source that are very much worth considering, even if one ends up discarding them. More generally spoken, I think the coexistence of these kind of dissenting opinions is essential to the viability of the Free / Open Source Software community. One may even take that as a metaphor for society (though I must admit I haven't deeply thought about how much merit that metaphor really has).
Back on topic: TFA merely seems to be a short and perfectly innocuous reminisce on an inspiring moment (at least for ESR). I don't see anything remotely wingnutty or offensive in it, and even if you're right about him presently having lost his relevance, the story is set more than 30 years ago... Maybe I'm too naive, but I see it as an edifying story: have the guts to stand up and do what's right, and maybe someone will be citing you as an inspiration some 30-odd years later. I really don't see much wrong with that, other than the fact that it's not exactly earth-shattering news.
Facts like people were writing and widely sharing open source code well before any of this nix-specific event came along in 1984. Go look at early issues of Byte, Kilobaud, Dr. Dobbs and so forth and so on.
I had source code of my own published and shared nationally in November 1977, and I wasn't anywhere near the first.
This kind of hype reminds me of Apple/IBM/Radioshack/Commodore and fans variously claiming they were the "roots" of the PC market. Look into the history of Altair, Imsai and SWTPC, for instance. Not saying who was first, I'm not sure by any means -- but I am sure who wasn't.
I've fallen off your lawn, and I can't get up.
Because no-platforming amounts to shutting down speech you disagree with. All that does is make the speech more desirable to those who oppose the orthodox view, and give it currency.
The only answer to speech you disagree with is not shutting it down, but rather more speech opposing it.
Disinfect the GNU General Public Virus!