[HN Gopher] The Half-Life of Code (2017)
___________________________________________________________________
The Half-Life of Code (2017)
Author : tmfi
Score : 53 points
Date : 2021-02-27 07:31 UTC (1 days ago)
(HTM) web link (sandimetz.com)
(TXT) w3m dump (sandimetz.com)
| vvanders wrote:
| Over the years one of the most valuable questions I've asked
| myself as I've worked in long living codebases:
|
| "If I had to delete this feature tomorrow how quickly could I do
| it?"
|
| If you come back to this question a few times over development it
| does a wonderful job of really forcing you to consider your
| coupling and dependencies. In most cases it's been "delete a few
| dispatch calls and nuke the whole feature namespace" which has
| held up very well when future changes come down the pike.
| Wildgoose wrote:
| I agree - code should be optimised for deletion. If you can
| throw code away it is automatically easy to maintain going
| forward.
| _Franklin1813_ wrote:
| Your disks, first example, make you eligible to get all the Half-
| Life 1 series games for free on your Steam account anyway. Just
| plug in the key. It was one of the first things they ever did on
| Steam.
|
| They've given them away any number of times. We're talking 20+
| year old games, still available on a double-click download, still
| eligible to redeem your CD-Key for free extra versions online
| that are updated regularly.
|
| And that's precisely it... if you don't support the least-
| objectionable version of what everyone else has, they have
| absolutely no incentive to compete with them anyway. You not
| buying a game, just means you don't have those games. They're not
| suffering, they have made enough money from Steam to last, pretty
| much, forever. It's one of the biggest video game incomes to a
| single company in the world.
|
| And... 16 years later my games still work like they did before
| Steam came along. My account still has all my games. I can
| install it on any number of PC's I like. I can literally install
| it at a friends house, sign in as me, play my copy of the game
| together, and then remove it. I can double-click install and play
| games I haven't played in 16 years. And I can buy, gift and
| redeem games through a simple website and get them instantly.
|
| I'm only sorry that Steam doesn't do more normal software, I
| would happily pay for portable, follow-me versions of quite a lot
| of things I use, but they either have their own crappy ideas of
| how to do it, or they don't have a similar service at all.
|
| I don't care about "friends", or streaming, or their
| controllers... and they respect that. I have small-mode Steam in
| my taskbar with notifications off. It stays there. I click it, I
| find my game in a pure list of games, I play my game, it goes
| away. Oh, and it backs up my saves/config for me, but that's
| optional too.
|
| Valve are never going to do what you ask... it's their games and
| their launcher, in effect (that's all Steam is) and it's a damn
| sight less intrusive than ANYTHING else. I won't even install
| Origin. The GOG launcher is a mess of huge screens and images
| when I just want a list. I quite liked the Desura launcher but it
| went bankrupt, because nobody wanted to buy their games on other
| services. GOG even match some of my games to Steam, so I get
| Steam and GOG versions of them. I can't recall the last time I
| loaded GOG to play a game that's on my Steam.
|
| Honestly, Steam gets a bad rap because of silly reasons. Just
| install it. Put it in small mode. Close it when you don't want
| it. You will not notice a single difference, except that you
| don't need your CD, and you can do it on your new computer in ten
| seconds and a few double-clicks rather than having to reinstall
| every damn thing all over again.
|
| Whatever you're scared of... it's been running for 16 years and
| still dominates the PC games market, with well-funded rivals. It
| totally laughed off Games For Windows Live, which was an
| abomination far worse in scope. EA's bringing their games back
| from being Origin-only to Steam too because they realized their
| mistake when nobody followed them. Now it's competing with
| Windows Store, which is another abomination that I've never seen
| anyone actually use except by mistake.
|
| Load steam. Take it out of your startup if you like. Put it in
| small mode. Turn off notifications. Redeem your key. Play those
| games you have, in a far more friendly and simple way. Delete
| them when you're done. Close Steam if you don't want it doing
| things on your system. And you can repeat that every year if you
| like, with everything you put on the account.
|
| "If they go bankrupt then I'll lose my games". Yes. Same as
| anything. And your old CD's won't keep working forever, sorry to
| tell you this. I can't install Age of Empires 2 from CD and play
| it any more. You need all kinds of shit to make it work on modern
| Windows. But I can just double-click on AoE2 (several different
| modernized versions) on Steam and down it comes and just works,
| whatever computer I'm on.
|
| Honestly... you're not going to go back to the CD era, ever. I'm
| surprised even GOG have lasted this long. Yet Steam still takes
| in so much money that it's beyond funny. You don't have to
| participate in the shit you don't want to... CS 1.6 is still
| there and unadulterated if you don't like CS:GO, for example (and
| 1.6 is also free if you have your Half-Life key...)
|
| You can either jump from service to service, hoarding your
| offline copies that will stop working anyway (GOG had to re-do a
| LOT of work to get everything running on Windows 10, Windows 11,
| 12, 13, etc. will only ever have the same problems and you don't
| escape it even by using Linux clients), or you can pay literally
| nothing and have a more convenient service that you can stop
| using any time you like.
|
| Your principle is harming absolutely nobody but yourself... Steam
| aren't missing the money you give GOG.com. You could buy GOG's
| entire library and barely make a dent in Steam's.
|
| And all because you objected to the first versions back when it
| was still green. You've literally missed out on Half-Life 2, for
| instance, for no good reason. That, in itself, is a loss greater
| than anything Steam's ever done in its existence.
| rockbruno wrote:
| Is this a pro-Steam bot or something? The post has nothing to
| do with the game Half-Life, lol
| _Franklin1813_ wrote:
| Yikes! You're right, I saw the title and thought this article
| was about something else and then went off on a rant.
|
| Too much coffee.
| filoeleven wrote:
| I expected this to be a (welcomed) repost of a different article
| about the half-life of code. There was some good discussion in
| that post, and that article has charts which do a good job of
| showing a codebase's evolution. Interesting stuff.
|
| https://news.ycombinator.com/item?id=13112449
| 0x4d464d48 wrote:
| I've always been partial to the concept of ravioli code which I
| read about from John Papa. Contained modules that do a job that
| can be added or removed. You decide whether or not you need that
| modules fucntionality with no other module having a dependancy on
| other modules.
|
| I agree with the spirit of this article, having a responsive code
| base with easily replaceable code. But this becomes a problem
| when you have a code base with sprawling legacy modules with
| essential functions for core customers that new code must
| interface with.
|
| I worked for a company that attempted to incorporate agile
| methodology to add features on to a large legacy system to try
| and stay responsive to customer feedback. The problen was when
| new features were added we were only adding on to the "cruft"
| mentioned in the article. As unintentional as it was new code
| would start to tightly couple with legacy code. In spite of that
| we kept continuously adding new features with the predictable
| results of more tech debt, bugs and on-call catastrophes.
|
| I'm all for responsive code that instantly reflects customer
| requirements but it requires a lot of discipline and planning.
|
| Ideally, "legacy code" wouldnt exist at all and keeping a low
| half life should help with that. But in the real world, with
| people being the irrational, nepotic, lazy and self-deluding
| creatures we are, thats not going to happen. I'd caution anyone
| to really know what theyre doing before rationalizing poor design
| choices by thinking "it's not technical debt if were going to
| throw the code away anyway!"
|
| I'm sure that's what the original authors were thinking when they
| wrote that awful legacy monstrosity you're dealing with now.
___________________________________________________________________
(page generated 2021-02-28 23:01 UTC)