Who is the longest-serving programmer?
tnmoc.org
tnmoc.org
Not the oldest knot in the tree but I'm not dead yet.
Most of the programmers I used to work with no longer program. A lot of them "retired into management". I was offered management jobs several times in my career and I turned them all down. I know nothing about management. I can barely manage myself. But management seems to be the likely fate of programmers in their late 30s / early 40s. Management pays more. And nobody wants to hire old programmers as they are "not a good culture fit".
Old programmers have the best war stories though. So there is that.
While watching over Knuth's shoulder, my friend noticed Knuth speeding up and slowing down at irregular intervals. Later he asked him about that and Knuth replied that he was fixing the bugs in my friend's Fortran as he punched it out.
(I wrote my first program in 1967)
At the other end, he said recently that he still writes two or three programs a week, mostly in CWEB. (If you're not familiar with CWEB, it is his own invention: it's basically C, with preprocessors (ctangle and cweave) that enable literate programming.)
Some of his programs he puts up here: https://cs.stanford.edu/~knuth/programs.html — the most recent is from December 2017. (They are in .w format; if you don't have the patience to install CWEB and run cweave+tex on them, I've typeset them here: https://github.com/shreevatsa/knuth-literate-programs/tree/m... — last updated September; needs another update.)
I was going to claim that I've packaged CWEB for Homebrew so it's easy to get for MacOS users. I went to see if it still works and isn't moved to boneyard, and yes, it's there, but git log didn't show me in the commit history. Just to make sure I wasn't nuts I had to check my notes and found the original commit: https://github.com/Homebrew/homebrew-core/commit/77aa909188b... . Apparently there's been some history rewriting that I don't quite understand.
And actually `ctangle` and `cweave` already come with a TeX distribution like MacTeX. So the reason for providing a pre-typeset version is not so much that CWEB is too hard to install; it's just that people tend to not use it properly and either try to read the .w file directly, or (even worse) the generated .c file. :-)
And if you've not actually dug into primary sources, you probably don't know what Knuth means by "literate programming" - what it's come to mean is a pretty small sliver of what was intended.
https://www-cs-faculty.stanford.edu/~knuth/news.html
"2018 began for me with an absolutely incredible 80th birthday celebration called Knuth80, held in the delightful city of Piteå in northern Sweden. ..."
So maybe he's just using that email-via-printouts thing as a ruse to avoid having to answer to emails from "important people" expediently? I would totally pull that move if I could.
> My secretary also prints out all nonspam email messages addressed to taocp@cs.stanford.edu or knuth-bug@cs.stanford.edu, so that I can reply with written comments when I have a chance
(Note that the only email he reads is bug reports: if you send something by email that is not a bug report, he says he ignores it, though I've been able to sneak in an odd thing or two (a comment on a TAOCP section) by including it along with bug reports… the catch of course is that to use this trick, you have to find an actual bug in the books.)
The emails are printed for him by his secretary on the back of one-sided printouts, so he's not wasting any “new” paper for the emails. He scrawls (with pencil) his replies on the printouts, and hands off the pile of outgoing mail to his secretary (who only comes in once a week or something), who contacts the recipients, asks them for their postal mail address, and sends his reply by post.
It works very well for him, and he doesn't have to waste time filtering email, typing into a computer, etc. He does everything with pen-and-paper (including writing programs like TeX and METAFONT over several months, without typing them up into a computer until the very end), so it just matches his most comfortable working environment.
I mean, that's a drop compared to the paper waste in most companies. And it's not inefficient. Paper copies make annotations easier which makes replying easier and better quality.
Also, this is unlikely to be more than a trickle. He talks about spending a day every three months responding to correspondence, as well as rather making a point out of refusing to respond to unsolicited emails. Chances are that his secretary also simply deals with a good deal of the email in the way, you know, a secretary does.
Eventually they decided to get more modern, and his secretary would scan in the response and send it as an e-mail attachment.
My contribution to this effort was to read in values for the C matrix and produce it in the format that the rest of the program required. One summer's work.
I met with him a few years ago and he showed me the current version of the program--not much had changed in 40 years, to my astonishment. Also he noted that this whole system was used to decide where to locate Fermilab.
Turns out that the result of the computation showed where the poles and zeroes were for the system. If too close to the y-axis, the system could slip into being an oscilator. Too far to the left, and there was too much damping.
This was my first astonished exposure to the idea that we could build something and not know how it was going to operate. "That thing I built does what!?"
Interestingly (at least to me), I can't help but put this into context by reflecting on the other pieces of software I'm familiar with that were developed in this era. In fact, the main one I do know does essentially the same maths operations as yours, and is also still used today. It's a little bit of code that basically underpins modern mechanical engineering and its name is derived from NASa STRuctural ANalysis.
I wonder if / by how long you beat them at developing what is fundamentally an FEA engine with modal analysis capabilities? :)
The huge challenge for this was matrix operations on a machine that was way too small for the task, where intermediate results need to be written to tape. And it appears, at least in current versions, NASTRAN is significantly larger, and handles a broad range of engineering problems.
This software was closer to LINPACK and EISPACK, which it predated.
Expanding on from that, working out eigenvalues and eigenvectors for a matrix allows you to solve for harmonics, as you're well aware. Harmonics in a structural context are used to identify modal vibrations (e.g.: at what resonant frequency a drum skin vibrates for a given surface area, material and tension). It's essentially analogous to solving harmonics in electrical systems, like how a mass-spring-damper system is analogous to an RLC circuit.
NASTRAN is the granddaddy of FEA packages and was produced for NASA (hence its name) way back in the early days of computational simulation for their space programme. Well before the days of desktop workstations, companies (including the one I work for) would bundle up their model, ship it off to a company that had spare mainframe capacity and a solver licence, have them run it during their downtime and then receive their results back some time later.
Basically, as a kid of the 80s all of this sits in 'computing prehistory' for me so it was a fascinating (to me) exercise to place your work in the context of big software packages with which I'm familiar from a similar era. My last comment about beating NASA at writing a numerical solver for matrix inversion was just a bit of a silly joke, but it's similarly cool to realise that it's in fact true for other big numerical packages like LINPACK! :)
This sounds like a really cool story!
Where can I read more about this?
I don’t have any reference to the decision about Fermilab as it was a verbal discussion. He mentioned that Scoop Jackson, often called the senator from Boeing, was angling to have it located in Washington. My professors friends at Bonneville called him in a bit of a panic to say that the power grid would not be able to handle the load. So he ran a simulation, knowing that power grid rather well, and demonstrated that the lights across the Pacific Northwest would dim every four seconds. Same simulation for Illinois showed no flicker.
Or http://ieeexplore.ieee.org/document/4074017/
and https://www.sciencedirect.com/science/article/pii/S030402080...
Unfortunately, these seem to be behind a paywall.
Here is one that might be more relevant: http://bonneville.ipac.dynixasp.com/ipac20/ipac.jsp?session=...
His work centered around control systems, but he was very heavy on numerical methods.
As far as I know, he is still active at SRI in computer security, with publications on computer hardware/software design as recently as 2015 [3][4].
[1] http://www.nytimes.com/2012/10/30/science/peter-g-neumann-an...
[2] http://www.csl.sri.com/users/neumann/short.bio
[3] http://www.nytimes.com/2012/10/30/science/rethinking-the-com...
https://web.archive.org/web/20080709050817/http://colorforth...
Chuck Moore of Forth fame was the other mention in these comments that just stayed digging deep into systems pushing the state of the art of his style of tiny, flexible, stack-oriented systems. Both of them contributed to real products, too, instead of only theory.
I originally started to write something that explicitly called out some of the other examples as cases of talented amateurs (in the best possible sense of the term, and only vis-à-vis actual coding as opposed to producing books and theorems).
But, the cases of Cutler and Moore are probably what we mean by "longest-serving".
Don has the longest run though.
I can't claim anywhere near that length of service as many people here or in the article, but my start is close to yours.
My dad bought me a KIM-1 with 1K of RAM around December 1978 when I was a teenager -- and we built the power supply for it together. I wanted to build a robot -- inspired by the B9 robot from Lost in Space and the Huey, Dewey, and Louie drones from Silent Running.
Before the KIM-1, I had built my own electronic circuits with parts from Radio Shack like NAND gates, NOR Gates, and Flip Flops -- which was (in a way) a form of programming. And I was wiring simpler circuits before that from Radio Shack 100-in-1 kit -- and also before that on my own even as a young boy with wires, switches, lights, and batteries (sometimes things my father brought home for me discarded from work).
Playing with digital electronics was a good basis for doing machine language programming on the KIM-1.
I was first paid to do programming around 1980 or so by a high school teacher (Jack Woelfel) who also had a computer business selling Commodore equipment and software (American Peripherals). It was to write an editor for educational software for the Commodore PET -- which I named PeTeach for "PET" + "Teach". Reusing a letter in the middle of a word was a popular fad then -- even though it is confusing and in retrospect a bad choice of name.
Forty years later, I can still keep hoping that we can still get more of the dream of Ted Nelson's "Computer Lib / Dream Machines" or the Australia Project (from Marshall Brain's Manna, the last chapter) than the nightmare of "Slaughterbots" (the video) or Terrafoam (from Manna, the earlier part of the story).
And us grey-bearded and/or grey-haired programmers can still keep trying to make a difference by creating and supporting the better aspects of computing (including the basics like simplicity and directness) -- informed by notions of broad social benefit and not extreme concentration of power and wealth. The late John Perry Barlow was a good example in that direction. The late Douglas Engelbart was another. Alan Kay, Dan Ingalls, and Chuck Moore are also good examples.
But as Manuel De Landa says though, the world is made of a mix of meshworks and hierarchies that keep turning into each other -- so there are no easy answers. http://www.t0.or.at/delanda/meshwork.htm
"The Skills of Xanadu" by Theodore Sturgeon is an inspirational story of what might yet be possible from a healthy mix of meshworks and hierarchies: https://archive.org/details/pra-BB3830.08
I misread the title and now I’m curious.
It’d take a massive effort to keep hardware up for as long as these people have been writing programs for it.
(Does this have to be someone who specifically does software development, or any old computer scientist that likely still codes something here and there?)
Really like that part about following up/through and stirring them up. Folks lacking motivation and direction can really benefit from such stirring.
She died in 1992