6 ms·
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
by TravHatesMe 7y 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!
- rochak 7y agoYou managed to put in words the things I feel when I am working in this field.
- aerovistae 7y agoI do actually think code archaeology may one day be a sub discipline of the field, perhaps in another hundred years.
- KineticLensman 7y agoIn 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 https://en.wikipedia.org/wiki/A_Deepness_in_the_Sky
- shpx 7y agoSoftware archeology in a mature programming environment http://akkartik.name/post/deepness http://akkartik.name/post/deepness
- conover 7y agoThis 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?
- baroffoos 7y agoHistory 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.
- gmueckl 7y agoIn 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.
- kgwxd 7y agoWindows wouldnt survive in such a universe because the licensing servers would be long gone.
- thesimp 7y agoVinge'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.
- newen 7y agoYep Pham Nuwen :). I love The Zones of Thought books. It reallygives you an idea of how very alien intelligences might work.
- scruple 7y agoYes! 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.
- azhenley 7y agoI think it already is! See this page on "digital archaeology" describing research that studies developers and software through their "digital remains": http://digitalarchaeology.info/ http://digitalarchaeology.info/ It is ran by a professor at the University of Tennessee: http://web.eecs.utk.edu/~audris/ http://web.eecs.utk.edu/~audris/
- a_bonobo 7y agoThe Unix Heritage Society has a fun wiki where they delve into some older code bases: https://wiki.tuhs.org/doku.php 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_creation_restoration.pdf https://www.tuhs.org/Archive/Documentation/Papers/1eUnix_cre...
- keithnoizu 7y agoWhen 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_built_on_git/ https://www.theregister.co.uk/2017/05/25/windows_is_now_buil...]
- deleted 7y ago[deleted]
- gmueckl 7y agoThe 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.
- keithnoizu 7y agoI 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 >_<
- jayd16 7y ago>Who was this person? ...oh it was me.
- alexanderdmitri 7y agoand 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.
- cpeterso 7y agoMark 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/invitedtalks/lucovsky_html/ https://www.usenix.org/legacy/events/usenix-win2000/invitedt...
- stordoff 7y agoThe 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 https://devblogs.microsoft.com/oldnewthing/tag/history
- kpU8efre7r 7y ago>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?
- heywire 7y agoThe 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.