← Back to context

Comment by Ericson2314

4 years ago

"source code being worthless" is actually a huge red flag that something is deeply wrong with the way our industry works. There is too much in-house knowledge that isn't being codified. Software production shouldn't be like e.g. Jet engine production, where it's all nontransferable lore.

I posit if everyone was automatically build able and deployable (say with Nix) across the board. Source code would have more value.

Now, it still would be true that less source code is better than more source code, so line by line / marginally source code is a liability. But reproducible functionality would be valuable.

The remaining worthless might have to do with much especially b2b proprietary software being utter crap, and all the value being in the sales relationship and none in product/service being traded.

You could do all that and the code would still not have any intrinsic worth, because if a company gets their hands on it they don't automatically get a team of developers with domain expertise to maintain it going forward. That's where the real value is. Knowledge and experience can never be codified.

  • So your saying it would take someone the same amount of time to say recreate an OS like windows, without the source code as it would to become proficient in building and maintaining it?

    I don't buy that, if I wanted to create a $HIGHDOLLAR application, and It was possible to get away with stealing the source code i'm sure it would happen more frequently.

    Its not that the code for windows/etc is worthless, its that anyone attempting to make any money selling a clone that was obviously based on it would be put out of business.

    If OTOH, they sold a license to resell products based on the XP64 code base you can bet there would be LTS/embedded/etc type companies pooping up selling their own versions.

    So while the effort to get a functioning build system and learn the code base is considerable, its a lot easier than reinventing the wheel. Hence why the code _DOES_ have value.

  • I usually read "domain expertise" as "communications failure"

    The purpose of the code is as much to communicate with other humans as it is to communicate with computers.

I think it’s incentives, partially.

Programmers say their job is to put themselves out of their jobs. People don’t want to be out of their jobs, really. And we know that doesn’t happen. If anything, it locks them into their job, as “subject matter experts”.

Also, most applications are built on a million layers of reusable abstractions. Even in the highest level of the code people are using frameworks and other libraries. A lot of source code is just business logic and glue code when you remove the stuff it is built upon, which tends to be much better (and many times, open and free).

  • > Programmers say their job is to put themselves out of their jobs. People don’t want to be out of their jobs, really. And we know that doesn’t happen. If anything, it locks them into their job, as “subject matter experts”.

    I agree it is a fools errand to ask people to work against their incentives, but by https://en.wikipedia.org/wiki/Jevons_paradox I don't think there is actually disincentive given enough risk tolerance to let the new equilibrium emerge. Write better programs, and increasing the demand for programming.

    I think the bigger problems is most programs are bad and alienated. Programming with everything nicely packaged and ready to be modified is like working with a clean workbench / shop. If you've never been in a clean one, cleaning seems like a chore, but if you have, working in a dirty one seems not only inefficient, but gross and undignified.

    It's "take care of your tools, and your tools take care of you" vs being "lord of my garbage heap of tech debt". Any self-respecting craftsperson should choose the former.

    • > I think the bigger problems is most programs are bad and alienated. Programming with everything nicely packaged and ready to be modified is like working with a clean workbench / shop. If you've never been in a clean one, cleaning seems like a chore, but if you have, working in a dirty one seems not only inefficient, but gross and undignified.

      You hit the nail on the head here.

      I've worked a bunch of different jobs since college.

      I have worked in exactly one clean, mature codebase.

      The difference to all the others I've been in was like night and day.

      I think seeing even "acceptably decent" code is incredibly rare in our industry.

      To be fair, that's probably in large part because producing acceptably decent code is prohibitively expensive for any new product, and once you've gotten a new product off the ground and producing value, you've set the cultural norm that crappy code is what we make here.