Hacker News new | comments | show | ask | jobs | submit login
Who is the longest-serving programmer? (tnmoc.org)
147 points by sohkamyung 10 months ago | hide | past | web | favorite | 71 comments

I wrote my first program in 1971. I'm still actively programming (http://daly.axiom-developer.org).

Not the oldest knot in the tree but I'm not dead yet.

How many junior programmers do you think you've worked with directly? How many have continued on to long careers and if you know more than a couple of them do you have any clue which of them have been active / programming the longest? Thank you for all of your hard work!

I can't recall ever having worked with a junior programmer. All of the jobs I've had involved working with people who were amazingly good at programming. My career probably underlies the old joke... "1 in 3 people can't program well. Look left, look right. If they are both good programmers then you're the 1 in 3."

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.

Knuth is 80 and has been programming since at least the late 50s: https://en.wikipedia.org/wiki/Donald_Knuth#Education

In the 70's I had a co-worker, perhaps the best programmer in the department, that had gone to school with Knuth. He told me that one day while in college Knuth was using one of the available key-punch machines to punch his program on cards. My friend was ready to punch his program so he stood nearby to wait for Knuth to finish. Knuth, working on a big program, offered to Keypunch my friends program before finishing his own because my friend's program was shorter and Knuth could keypunch quite fast.

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)

Wow, that's a great story.

Some of Knuth's early programming exploits (from his undergraduate days) are described in “Stories about the B5000 And People Who Were There” by Richard Waychoff (see section III, “The Summer Of 1960 (Time Spent with don knuth)”): http://ed-thelen.org/comp-hist/B5000-AlgolRWaychoff.html#7

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.)

Thanks for typesetting the pdfs for other people to read!

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.

Oh great, I was just able to install CWEB with `brew install cweb`. Thanks for your work!

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. :-)

> that enable literate programming

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.

I knew of WEB, which was pascal-derived. I guess CWEB is the C-derived equivalent?

Yes. WEB is Pascal+TeX, CWEB is C+TeX. CWEB is actually somewhat simpler, because for example the C language has preprocessor macros (#define) so the literate-programming system doesn't need to have its own macro system. It just has to rearrange (“tangle”) the input into the right order.

I thought it was pretty interesting that he no longer uses email. He did use it from (1975 - 1990), and he still works at Stanford.


He updated his web site quite recently though:


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

Well, except he does (or did as of that post) technically use email, just in the most wasteful and inefficient way possible:

> 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

It is quite efficient for him: he spends a day reading email in “batch mode” every few months, and it saves him the cost of context-switching, and lets him focus on writing his books.

(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.

> in the most wasteful and inefficient way possible:

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.

If you can't think of a more wasteful and inefficient way to do that, you need to hang out more with government contractors. You ain't seen nothin' yet.

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.

I had a client who would have his secretary print out all of his nonspam e-mails. He would hand-write his response on the print out, and then have his secretary fax it to us.

Eventually they decided to get more modern, and his secretary would scan in the response and send it as an e-mail attachment.

Being low or no tech is the ultimate status symbol! I remember the only billionaire I ever met didn't have a phone. He got memos from his assistants on paper and wrote his comments on them.

Not quite "no phone" but I know someone who was and is in senior technical roles at various well-known Silicon Valley companies. He only reluctantly got a (feature) phone--well after smartphones were the norm--when he had a kid and the nanny pretty much insisted.

Absolutely. I turned off my voicemail for awhile and forwarded my phone to the main number. It was liberating.

The part about scanning is how you responded to faxes in the old days. However the thing about making a quick note on paper and having a secretary who creates a nice reply is way more efficient than messing with mail directly.

Gosh, if only everyone had a secretary to expand a comment into a nice reply.

... to be read by the recipients secretary who then discards all the niceties and just tells the recipient "Acme said no on the Foo".

It sounds quite efficient for him. I would love to be able to do the same.

I like how the old school legends prefer analog. Reminds me of Dijkstra's preference for typewriters.

On a similar theme, Tony Hoare might be in with a shout - active from approximately 1958 to now. He can still be found occasionally in the Microsoft Research building in Cambridge, UK.

Cleve Moler is 78 (https://en.wikipedia.org/wiki/Cleve_Moler), he is popularly known as the co-founder of MathWorks, and co-author of numerical computing libraries such as LINPACK and EISPACK. He maintains a blog (https://blogs.mathworks.com/cleve/) and still programs in MATLAB from what I can tell. He talked about a bit of MATLAB history last year in Argonne Training Program on Extreme-Scale Computing (ATPESC) -- https://extremecomputingtraining.anl.gov/sessions/dinner-tal...).

I started programming in 1965, first paid programming in 1966 (june). Still programming, even when I was CSO (when nobody was looking).

What was your first gig, if you don't mind my asking?

First gig was summer after my freshman year working for a EE professor who was researching why the Bonneville Power Administration power distribution network would oscillate in frequency and eventually trip one or more breakers systemwide. This involved producing a state vector of 500 elements and evaluating the eigenvalues and eigenvectors of a 500x500 matrix on a CDC 3500 computer with approximately 35k of memory. To invert the matrix, he would need to read in a handful of rows and calculate the inverse of the matrix incrementally. No small feat.

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!?"

This involved producing a state vector of 500 elements and evaluating the eigenvalues and eigenvectors of a 500x500 matrix on a CDC 3500 computer with approximately 35k of memory. To invert the matrix, he would need to read in a handful of rows and calculate the inverse of the matrix incrementally. No small feat.

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? :)

So it isn't immediately clear to me how these two overlap. Probably at the core there are some similar mathematical operations, but my professor's program's thrust was on control system stability analysis, and NASTRAN seems like a pretty sophisticated FEA wrapped in a lot of useful modeling and presentation code.

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.

FEA, at its base, is solving for [x] in [F] = [k][x] where F is your input forces on a structure, k is the stiffness matrix and x is the resultant displacement, which when combined with material properties produces a strain matrix and therefore body stresses of the structure. It basically has to invert a many-dimensional matrix to do that, which is where most of the 'core' computations of a linear-static FEA solution sit. Of course, desire for more detailed simulation has always exceeded computational capacity, so slicing up the matrix operation and writing it to permanent storage (tape, disk, etc.) is a routine operation for all solvers like this.

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! :)

>...he noted that this whole system was used to decide where to locate Fermilab.

This sounds like a really cool story!

Where can I read more about this?

Upon reflection, I don’t think I addressed your question well.

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.

Thank you. I'll try and hunt down more details :)

You can see some of his papers here: http://ieeexplore.ieee.org/xpl/tocresult.jsp?filter%3DAND%28...

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.

Peter G. Neumann at SRI worked for Howard Aiken at Harvard programming the Mark IV in 1954 [1]. His short biography says he has been a computer professional since 1953 [2]

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

[4] http://www.csl.sri.com/users/neumann/#2

Consider Chuck Moore, who appears to be active still and started programming in the 1950's:


Dave Cutler (b 1942) has been continuously paid to write code for 53 years.

I'll add about him that he doesn't just occasionally write code as someone retired or a director. He's usually deep in critical parts of current projects ranging from Windows NT back in the day to the Xbox last I saw.

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.

Yep, that's what I mean.

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

Started in 1967, in support of my job as commissioning technician (bean counter title - I was only 19 and no degree) at Elliott Brothers Elstree on their 4100 mainframe computers production line. Did hardware design and supporting software/firmware for a decade before switching primary job to RTOS's and firmware. Still employed. I've posted my general CV elswhere here.

Don has the longest run though.

Shout out to Kirk McKusick[0], of BSD at Berkeley. Still writing code for the FreeBSD project to this day. He's "only" in his 60s, though.

[0]: https://en.wikipedia.org/wiki/Kirk_McKusick

Vint Cerf started in 1965. He's moved into positions that are more management oriented, but I believe he's deeply involved in technology decisions.

Maurice Wilkes programmed from 1950 almost until his death in 2010, so something like a 60 year "service record".

I wrote my first program in 1973 but didn't get paid until 1981 for the first time. Still writing code (iOS) today. You don't meet many folks programming for that long today because there were only a few % at most of the number of programmers today. Many dropped out during that time as well.

Do you remember your first program in '73? What was your first paid work in '81?

I wrote something in Basic in 73 on a teletype terminal but no longer remember what it was. 81 was working for a defense contractor on a source code formatter. In Fortran no less.

Ah, the early days of the microcomputer revolution -- filled with so much hope and dreams for robotic assistants, simulation games, and computer-aided learning -- not the scarcity-preoccupied nightmarish surveillance state linked to killer drones that we've unfortunately and ironically ended up building alongside some of the dreams using an abundance of computing power.

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

My wife's dad is 80 and has been programming for work (and play) since he was 26-ish (1965). Good stories.

Started in January 1968 on Stanford's IBM-360-67. Still going strong although I'm a little slower and my grasp of the problem isn't always as clear as it was. I don't intend to stop for some time yet.

Any ideas on the longest-running program?

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.

I would be willing to guess that there may be programs at Allstate Insurance that have been running longer than that.

From the public domain, Emacs comes close.

Why bother submitting a 1969 when Knuth is still alive and kicking.

(Does this have to be someone who specifically does software development, or any old computer scientist that likely still codes something here and there?)

1970 here

Tell us more! You said in another thread that you got a monthly electronics kit as a teenager, what's your story?

Another 100 years and it wont be a person.

But she just started a year or so ago, so not a candidate for "longest-serving".

Grace Hopper has been programming since 1930s: https://en.wikipedia.org/wiki/Grace_Hopper

"""The most important thing I've accomplished, other than building the compiler, is training young people. They come to me, you know, and say, 'Do you think we can do this?' I say, "Try it." And I back 'em up. They need that. I keep track of them as they get older and I stir 'em up at intervals so they don't forget to take chances.[34]""" https://en.wikipedia.org/wiki/Grace_Hopper#Post_retirement

Really like that part about following up/through and stirring them up. Folks lacking motivation and direction can really benefit from such stirring.

had been*

She died in 1992

She lives in our hearts, we all remember and love her. May her nano wires live on.

It just occurred me how humorously close her name is to "grasshopper". I love it when people's names describe their legacies!

Before Hopper, SW did not have bugs. ;)

I can't believe they started out the article with someone who had only been doing it since 1969! That was laughable. Programming wasn't popular back then, but it was common enough that many from that era can still be assumed to be alive. And if you were interested enough to get involved that early, there's a good chance you're still practicing.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact