Slashdot Mirror


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.'"

43 of 79 comments (clear)

  1. Henry is right by MichaelSmith · · Score: 5, Insightful

    Its quicker to code something simple like getopt than to argue about it.

    1. Re:Henry is right by Zontar+The+Mindless · · Score: 4, Funny

      I'll just leave this here and be on my merry way. Thanks.

      --
      Il n'y a pas de Planet B.
    2. Re:Henry is right by Z00L00K · · Score: 1

      Unfortunately the decision to no longer be open was also the decision that caused Unix to be overrun by Microsoft.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    3. Re:Henry is right by MichaelSmith · · Score: 1

      Microsoft isn't open. I think it was more a question of accessibility. More people understood windows than unix, so server side windows had a head start.

    4. Re:Henry is right by Anonymous Coward · · Score: 1

      Well memed sir, and prompt.

    5. Re:Henry is right by Z00L00K · · Score: 1, Interesting

      I never stated that Microsoft was open, but at the time they only provided the cheap and simple MS-DOS, nothing more. Windows came later and wasn't something to care about until late 80's, before that it was just a toy.

      The problem for Unix was that by going closed they also charged a lot for the use of it without realizing that they then gave Microsoft basically an open goal to play towards.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    6. Re:Henry is right by Zero__Kelvin · · Score: 2

      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.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    7. Re:Henry is right by Anonymous Coward · · Score: 1

      [..] 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.

      They still don't, as I witness on a daily basis.

    8. Re:Henry is right by Zero__Kelvin · · Score: 2

      Well Linux is far more popular than Windows in big business these days, so while it is true that many haven't, most of the big names have.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    9. Re:Henry is right by dbIII · · Score: 1

      and keep paying for it decades after you realize you got in bed with the devil.

      I had some loser who claimed to be subcontracting to Microsoft threaten a software audit on me a couple of years ago on the basis of an NT4 server licence and something like five CALS not being renewed since 1998 or 1999. The place went to Samba some time around then.

    10. Re:Henry is right by Stormwatch · · Score: 1

      at the time they only provided the cheap and simple MS-DOS, nothing more.

      Microsoft also produced Xenix, the most popular Unix variant of the 80s.

    11. Re:Henry is right by Megol · · Score: 1

      Don't confuse people with facts. They (generally) don't want to know anyway.

    12. Re:Henry is right by Zero__Kelvin · · Score: 2

      It's funny how you get it bass ackwards, then go on to describe Gates perfectly at the end :-)

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    13. Re:Henry is right by Anonymous Coward · · Score: 2

      If you were not at a college though, Unix was already a $40000 item and so inaccessible. Remember the
      conferences where you had to show your ATT license to even get into talks about unix?
      This led to much more interest in other OSs. For example, if you worked with RSX11M, it was
      sysgenned from source, so everyone who had the OS had the source code. Many add-ins and tools
      got contributed to public domain by folks who had no access at all to unix.

      Some will remember too the legal machinations that tried to decree anyone who ever saw unix was
      contaminated, thus BSD could not have been written without copying ATT code, hence BSD could
      not be released and hence loads of folks would have been forever unable to give out (or probably sell)
      their OWN code. Fortunately UIL (ATT successor) lost that one but Unix was never never free until
      the BSD rewrite was done. That Linux and Gnu also got done confirmed this.
      Having your OS fall into proprietary hands can become a hideous nightmare.
      Keep in mind that outfits like Sun and DEC, which were fairly easy going, got absorbed by
      others. Oracle in particular seems much more interested in control than Sun ever was.
      So if it isn't public domain or some kind of open source/free license, and if you haven't a copy
      of the code so licensed, beware.

    14. Re:Henry is right by Zero__Kelvin · · Score: 2

      Bass ackwards is the correct use of the term as used by The Dixie Flatline. You would know this if you were a true geek and had read Neuromancer.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    15. Re:Henry is right by Antique+Geekmeister · · Score: 1

      getopt is a critical function now used by nearly all C or C++ programs that handle command line arguments. The "quicker to code" version you may write to get or care about the few arguments you use in a particular function may, indeed, work well on your limited environment. Unless you're quite good and quite thorough, they are unlikely to perform well on multiple architectures or to be really small and fast for hardware from the 1980's. If you look at the code at https://en.wikipedia.org/wiki/..., it is quite good. This is how we were expected to write 35 years ago. It has extremely well defined behavior and uses loops rather than the modern fondness for recursion, because calling subroutines was considered _expensive_ due to the context switching needed for all subroutines.

      At that time, I was already working with BSD 4.x releases of UNIX. I'd begun to get fond of being able to see and compile my own versions of critical software.

    16. Re: Henry is right by NoNonAlphaCharsHere · · Score: 1

      Maybe you shouldn't've made fun of him for that.

    17. Re:Henry is right by sconeu · · Score: 1

      It was 1984, FFS!!! Windows didn't even exist. The AT had barely come out. PC-based servers were Netware.

      --
      General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
    18. Re:Henry is right by SivDotnet · · Score: 1

      I think you need to look up the Reverend Spooner!

      In the UK we have terms like:

      Betty Swollocks (Americans don't understand this one) :)
      Cupid Stunt!
      Centle Mase
      Jut nob

      etc etc.

      --
      Martley, Near Worcester UK.
  2. Funny Fact: by tomxor · · Score: 4, Informative

    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.

    1. Re:Funny Fact: by Hognoxious · · Score: 2

      The bastards! At least Lennart's leaving BSD alone (for the moment).

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    2. Re:Funny Fact: by boudie2 · · Score: 1

      "Speak of the devil and he shall appear" - old saying.

  3. Not quite how I remember Henry Spencer. by tlambert · · Score: 5, Interesting

    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? ;^)

    1. Re:Not quite how I remember Henry Spencer. by thogard · · Score: 2

      Ok, outside of one of the coolest open source gurus...
      Henry promoted the concept of a one way trip to mars.

  4. Overrun by Kunedog · · Score: 3, Funny
    .

    Unfortunately the decision to no longer be open was also the decision that caused Unix to be overrun by systemd.

    ftfy

  5. Re:Who needs getopt (or getopt_long etc) by gringer · · Score: 3, Insightful

    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
  6. Re:Who needs getopt (or getopt_long etc) by rgbatduke · · Score: 4, Informative

    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.
  7. His regex work is still in use in MySQL by Anonymous Coward · · Score: 2, Informative

    https://github.com/mysql/mysql-server/blob/5.7/regex/

  8. Re:Who needs getopt (or getopt_long etc) by TheRaven64 · · Score: 2

    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
  9. Re:Who needs getopt (or getopt_long etc) by K.+S.+Kyosuke · · Score: 1

    Why bother with a special getopt library, though, when a generic parser should do the same job just fine? It's a stream of tokens like any. Use something like META and you're fine.

    --
    Ezekiel 23:20
  10. Damn it, that's GNU Henry Spencer by Outtascope · · Score: 2

    Without GNU, Henry Spencer is just a dude. Now, who wants to buy a plushy?

  11. Eh? by DontBeAMoran · · Score: 1

    ...fateful decision commercialize Unix.

    I think missed a word here.

    --
    #DeleteFacebook
    1. Re:Eh? by nomadic · · Score: 1

      Back in the good ol' days Bell was just a bunch of long-haired hippies playing folk songs in the woods and writing code. Then all of the sudden they turned into a multibillion dollar multinational corporation and started selling UNIX. It was terrible.

  12. Re:Who needs getopt (or getopt_long etc) by Antique+Geekmeister · · Score: 1

    Because burning even a few hundred bytes of memory with a more general parser would have been an unacceptable burden for single programs on hardware that had only a few megabytes of memory, total.

  13. I remember by Anonymous Coward · · Score: 4, Interesting

    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.

  14. Re:ESR by OneAhead · · Score: 1

    Modded down; irony +1 :)

  15. Re:ESR by OneAhead · · Score: 2

    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.

  16. No, lets confuse people with facts. by fyngyrz · · Score: 4, Informative

    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.
    1. Re:No, lets confuse people with facts. by Stormwatch · · Score: 1

      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.

      Maybe the right question is not who was first, but who was first in the mainstream market. In this sense, it is only proper to credit the "1977 trinity".

  17. Re:ESR by Tenebrousedge · · Score: 1

    Why don't you explain that term. In particular, explain why there is some default assumption that all viewpoints deserve an audience.

    --
    Those who advocate genocide deserve every protection afforded by law, and none afforded by common human decency.
  18. Re:Who needs getopt (or getopt_long etc) by K.+S.+Kyosuke · · Score: 1

    I meant today, not back then. (On the other hand, META and similar things existed even back then.)

    --
    Ezekiel 23:20
  19. Re:ESR by Jay+Maynard · · Score: 2

    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!
  20. Re:ESR by Tenebrousedge · · Score: 1

    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.

    Citation needed. And also explain why any third party commercial service has to give you a platform, because the opposite of that has been a point of jurisprudence for centuries in this country.

    --
    Those who advocate genocide deserve every protection afforded by law, and none afforded by common human decency.