Hacker News new | ask | show | jobs
by TravHatesMe 2623 days ago
A project of such scale and longevity always seems to pique my interest. I bet there are some interesting historical artifacts in that codebase. Why is old code so fascinating?

Decades ago someone as insignificant as you wrote this code. I find it especially interesting to come across comments in code, which allow developers to express themselves outside the confines of the language. I feel like a historian in this context, analyzing this person's thoughts and state of mind. Perhaps the author included elements of emotion or humour. Who was this person? An insignificant developer, as I am -- did they ever become something of themselves?

I think the developer's story is rarely told, but it's a story worth telling!

8 comments

The Old New Thing can be an interesting read, that sometimes digs into why things are the way they are in Windows.

https://devblogs.microsoft.com/oldnewthing/tag/history

I do actually think code archaeology may one day be a sub discipline of the field, perhaps in another hundred years.
In Vinge's "A Deepness in the Sky" [0] one of the characters is a Programmer-at-Arms, and one of his roles is essentially software archaeology - not for the fun of it, but to keep the deeply layered software of a starship functional.

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

Software archeology in a mature programming environment

http://akkartik.name/post/deepness

This is a fantastic book. Software is written and rewritten over thousands of years, layer upon layer, powering interstellar vessels and their “automation”. It makes you wonder what Windows will look like 100 years from now, if it’s still around. Will it be easier to just write another layer on top or dig down into the original source and modify?
Vinge's "A Deepness in the Sky" can be used to explain current big industrial control systems. A typical distributed control system these days transfers data across many different layers, transforming the data when it crosses each layer. Starting deep down in the plant:

* reading the 0-10V or 4-20mA signals from sensors.

* AD converters convert the values into a digital representation in field devices.

* move the data to real-time controllers that run control algorithms and send outputs back to motors/valves/pumps/etc.

* those controllers move the data often via raw Ethernet packets to other real-time controllers and Windows stations used for operator visualization.

* some Windows workstations gather data into databases for historical usage. Sometimes this is a SQL type database, sometimes a flat database used to get better storage performance.

* then data is moved to local databases that can be used by the onsite teams to analyze it in an office environment.

* then that data is then moved into big data offsite/remote storage for analysis of how the medium and long term performance of the industrial installation and comparison to other installations in other parts of the world.

* from that reports are made with key performance indicators and graphs.

And each time the data is passed up a layer the format of the data and timestamps may be adjusted to match operating system that the data is passed to.

History seems to suggest that it will eventually get bogged down with too much junk but its too hard to rewrite and keep compatibility so eventually some fresh project without the legacy will be able to become the technically superior product and everyone will move over to that.
In theory, yes. In practice, either of two solutins will take hold: either the old system is put into a container on the new system or the application software itself obtains an emulation layer for the old system interface during the port. Either way, not a lot will be gained.
Windows wouldnt survive in such a universe because the licensing servers would be long gone.
Yes! Thank you do much for bringing this up. I read about this book in a comment on HN many years ago and have been trying to find it, or the book title, ever since. Going to bounce this to the top of my reading pile.
Yep Pham Nuwen :). I love The Zones of Thought books. It reallygives you an idea of how very alien intelligences might work.
The Unix Heritage Society has a fun wiki where they delve into some older code bases: https://wiki.tuhs.org/doku.php

Here's a paper of theirs where they dig into a 'first edition Unix': https://www.tuhs.org/Archive/Documentation/Papers/1eUnix_cre...

I think it already is!

See this page on "digital archaeology" describing research that studies developers and software through their "digital remains": http://digitalarchaeology.info/

It is ran by a professor at the University of Tennessee: http://web.eecs.utk.edu/~audris/

When I worked on Azure we had some access to the windows team data and documentation, and used an integrated build environment for some services. There are some interesting things going on under the hood mostly around building components in isolation against the spec of other libraries/services.

Also I'm a little shocked their using GIT instead of source depot in their workflow, apparently they switched in 2017. Who knew. [https://www.theregister.co.uk/2017/05/25/windows_is_now_buil...]

The switch to git was widely publicized at that time. As far as I know, the Windows team is the only large scale team using git. Facebook is using Mercurial, Gogle is using some concoctions around Perforce, I think, and is working on a Mercurial transition. And all of these attempts for trying to make DVCS work at scale are straining their respective systems to their breaking points.
I must have been in a cave that month or something. It's a fascinating move imho considering how few people actually knew what git, svn, cvs etc. were when I worked there back in 2010. So much myopia towards outside technology but Satya and Scott Guthrie were always on top of things with a good vision of how microsoft and open source should co-exist. I legitimately regret leaving only to have ballmer leave a few weeks later followed by Satya's, who was previous vp of the division I worked in, promotion. All those unvested shares >_<
The product that I maintain at work started life in the late 1980’s as a DOS application written in a mix of C and ASM. All of the original code comments are still present. Every once in a while I’ll go spelunking through some of those for fun.
Mark Lucovsky, one of the original Windows NT kernel developers, gave a talk called "Windows: A Software Engineering Odyssey" at USENIX 2000 talk with a lot of historical details about the Windows code history and development processes:

https://www.usenix.org/legacy/events/usenix-win2000/invitedt...

You managed to put in words the things I feel when I am working in this field.
>Who was this person?

...oh it was me.

and oh ... what was I thinking ... oh gosh, why is there an interface of an interface's interface, and .... oh boy, that's an embarrassing comment:

// absolve previously implemented anti-pattern by recursive reversion of the abstraction inversion

... ok, yeah that was an awkward time in my life now that I remembering it, this is exactly why I stopped listening to Enya while writing code.

>Who was this person? An insignificant developer, as I am -- did they ever become something of themselves?

What do you mean did they ever become something?