4 ms·
It’s not the best, far from it, but it was fascinating to me so I will share. I used to work for a large newspaper. Engineering wasn’t the focus of the busines
by throwawayacc2 4y ago
It’s not the best, far from it, but it was fascinating to me so I will share.
I used to work for a large newspaper. Engineering wasn’t the focus of the business, it was only a means to an end, it was just something they needed to have a competitive website. As a result, the churn rate was very high. But more interesting there was also a very high return rate. Engineers would come and go and return and leave again all the time.
As a result, the code base was a path work of various engineers with various skill level, different directions by different heads of engineering, repurposed old projects, legacy code and last minute additions by urgent request from the editors, among others.
The part I was most familiar with was what I can only describe as a sort of next.js but unlike it, it wasn’t planned or designed but rather it sort of grew organically over the years.
The fascinating thing to me was precisely this phenomenon. Some projects have a clear design and purpose and are built so from the start. Sort of like a building or a mechanical clock.
Others just evolve over time, they change, mutate, evolve, incorporate other bits. More like a biological organism or perhaps nature taking back a derelict settlement.
At first as you can imagine it was difficult to wrap my head around it. But in time, I started to see the beauty in it. It had historical bits. There was code written in 2010 that ran in 2020. Others you could tell little habits of the writer. Not everything gets stamped out by the linter. There was this guy who wrote “class ClassName extends React[“Component”]” - I have no idea why but I would run into code written by him and immediately recognise, ah yes, that’s that guy.
It’s certainly not an example of a good code base, but to me was interesting being able to see the code as a living organism with a history and fingerprints of it’s creators rather than a well designed machine.
- dumpsterlid 4y agoSounds like the codebase really was a living thing in a sense
- aerovistae 4y agoThe book "A Deepness in the Sky" features people living on an ship whose operating system is thousands of years old. One of the main characters is considered a software archaeologist of sorts - he's an engineer, but in a sense also a historical researcher. I can't emphasize enough that this notion is only a side point in the story and not a main aspect of the plot, sadly, so I wouldn't go reading it in hopes of hearing more. (Although it is a great book regardless.) I have often considered trying to write a scifi novel centered around this idea because I find it so fascinating.
- edfletcher_t137 4y agoThe "software archeologist" idea has lived rent free in my head ever since I read the novel nearly twenty years ago. It's an absolutely fascinating premise, one I can most definitely see being viable to grow into a fully-fledged novel. I would definitely read that.
- jiggawatts 4y agoWe're half-way there already. I've been telling people that the volume of software written has exploded exponentially, and the real skill anyone in IT has now is not knowing how to use a piece of software on a computer, but simply knowing that a piece of software exists to solve a problem. These days I work largely in a cloud / devops role, and I can't even begin to list everything that I ought to be using but can't because there aren't enough hours in the day to keep up with all of the new developments. That's within a single language, a single web framework, and a single cloud provider! I see projects where architecture astronauts stitch together multiple clouds, multiple languages, and some random junk on-prem that was installed over a decade ago by someone who has passed away since then. Within the expected lifetime of such a system, you'll need a software archaeologist to figure it out!
- kragen 4y agoDRMaciver wrote a novella about it. Programmer at large, it's called. Largely about cultural variation in gender and sex norms. https://www.drmaciver.com/category/programmer-at-large/ https://www.drmaciver.com/category/programmer-at-large/ (down) https://archiveofourown.org/works/9233966/chapters/20941043 https://archiveofourown.org/works/9233966/chapters/20941043
- latexr 4y ago> I can't emphasize enough that this notion is only a side point in the story and not a main aspect of the plot Is it sprinkled throughout the story, or a mostly uninterrupted block of text? As in: is there an easily findable chunk of the book one could read for that idea alone? If so and you could provide a few keywords or a direct quote, I’d be interested in grabbing the book to read that.
- konfusinomicon 4y agoi relate to this currently and that is a great way to think about it. thank you for posting this.
- codethief 4y agoPeople here on HN have compared the evolution of large and old code base to the evolution of DNA before and I think it makes perfect sense: E.g., in both cases, complexity has grown organically over the years/millennia and logic tends to be spread out over dozens of files/genes; change one line of code/gene and suddenly it will impact lots of other things; et cetera.
- atq2119 4y agoThis is a natural development as the field matures. I've worked in codebases that had roots in the 1980s, and large chunks of code survived virtually unmodified from the 90s. I'm sure some here could tell stories of even older codebases. Living codebases that have such old roots but have seen gradual maintenance and refactoring such that the whole thing didn't degenerate into spaghetti deserve a lot of respect in my opinion.