Live data from Hacker News

The cloudy layers of modern-day programming

vickiboykis.com

21–30 of 177 posts

Re: The cloudy layers of modern-day programming

#21

If you feel like "modern programming is boring configuration mess" then ask yourself - what have you done in order to have interesting job, projects, challenges, etc? I mean, if you decided at some point that $big_salary for throwing JSONs via REST from CRUD app is what you want to do until you pay your loans (e.g decade), then it's fine, but don't be shocked that you aren't doing bleeding edge R&D at some fancy plac…

Every project I worked on was JS/Node hell. Then I decided to switch to Elixir/Erlang and now I’m much happier. Of course, there are uninteresting or badly engineered projects but overall it’s much better.

Re: The cloudy layers of modern-day programming

#22

What scares me about ChatGPT is less so that I’ll lose my job (though it’s possible), but more so that I’ll be using language models to work at higher and higher levels of abstraction doing mainly configuration tweaking. Some of the particular pain points expressed in the article should be removed with AI in the loop development, but it’s another step away from “real programming”, which is what attracted most of us t…

Its already like this. My first job in the 90s I wrote our own linked list classes, a logging framework and a persistence layer. Now it feels like I write css and yaml all day.

Re: The cloudy layers of modern-day programming

#23
post #17

Do architects reinvent the I-beam every time they design a new building? No, of course not. The reason society works is because you can reuse abstractions that other people have already invented . It allows you to scale. Without economies of scale, you end up with Baumol's cost disease, which is extremely obvious in the US in industries like child and elderly care. We don't want most software devs to be doing anythin…

I like this allegory because it puts the complexity into a visual mindset and brings to light an interesting question about the nature of our abstractions.. For example:

Are our abstractions I-beams or Pre-Fabs[0]?

We all know that the rise of pre-fabs is, at its heart, the story of cheap developments all lazily (and hastily) thrown together in arrangements that are of low quality, mid-to-low beauty and do not last for very long.

Skyscrapers of the early 20th century stand today (with I-Beams) and are considered by many to be beautiful, maintainable etc;

People want pre-fabs, since they're cheap, the economy will always be in the pre-fab.

But pre-fabs have a limited shelf-life, and reconstruction is more expensive than spending a little extra up front cost.

[0]: This is the sort of pre-fab I am talking about: https://en.wikipedia.org/wiki/Prefabricated_building#/media/...

Re: The cloudy layers of modern-day programming

#24
post #22

What scares me about ChatGPT is less so that I’ll lose my job (though it’s possible), but more so that I’ll be using language models to work at higher and higher levels of abstraction doing mainly configuration tweaking. Some of the particular pain points expressed in the article should be removed with AI in the loop development, but it’s another step away from “real programming”, which is what attracted most of us t…

Its already like this. My first job in the 90s I wrote our own linked list classes, a logging framework and a persistence layer. Now it feels like I write css and yaml all day.

Think about that guy who wrote his own operating system as a hobby.

Re: The cloudy layers of modern-day programming

#25
post #2

I suspect this effect is a big part of why Rust keeps winning the most loved language polls - because it has some of that old school programming vibe that got lost somewhere along the way

Just give it enough time before incentives drive a language with large developer adoption to encourage adoption and wide-spread appeal vs. a niche language that has little value proposition to a company beyond an excuse to keep some key developers that are bored happy doing their side-projects.

Re: The cloudy layers of modern-day programming

#26
post #5

Would you rather do some library gluing, or reinvent a thousand wheels with every project? The latter is neat the first few times. Whatever your preference, your value as an engineer is much higher if you can glue. Imagine if a carpentry workshop gives a carpenter a fully-fledged set of industrial power tools, but the carpenter insists she can recreate all the other tools with just her whittling knife because it's in…

> Would you rather do some library gluing, or reinvent a thousand wheels with every project?

Wheels. Absolutely wheels. Library gluing is what gets us garbage like Electron that needs to die in fire.

Imagine if a carpentry workshop gives a carpenter a bunch of IKEA kits and tries to conflate wanting to make furniture that isn't cost-cut prefabricated crap with insisting she can recreate all the other tools with just her whittling knife because it's in the 'true spirit of carpentry'. (Honestly, if anything, comparing Electron to IKEA is a insult to IKEA - there are cases where using IKEA is actually reasonable, they just aren't actually carpentry.)

(You use libraries when it makes sense to use libraries, just like you use 2x4s when it makes sense to use 2x4s. Sometimes you can make the whole thing out of 2x4s, just like you can make a whole program out of:

  tr -cs A-Za-z '\n' | tr A-Z a-z |
    sort | uniq -c | sort -rn | sed ${1}q
but if you're just gluing (screwing?) 2x4s together, you're going to get bad results when you need something that's not a 2x4.)

Re: The cloudy layers of modern-day programming

#27

I don't really understand the problem, or maybe it's more, I don't think this problem exists as an existential one for more than the set of people for whom it's an existential probem. Programming and software engineering and their subdomains and superdomains are no longer a priesthood or an academic exercise or playground for Levy-style oldskool hackers, or rather, no longer remotely those things exclusively. Most of…

It sounds about right. At the end of the day, most developers work to produce features. Features and business domains are far less likely to be exciting than technical problems, but the business domain is way more important to adding value. Both need to be kept in check, but I'm sorry to say, technical achievement will not put food on the table or revenue on the balance sheet. At the end of the day, you almost always need to actually sell what you're doing (in one form or another).

Re: The cloudy layers of modern-day programming

#28
Good article, great points. The Knuth quote on lack of creativity is right on the money. It's why I've been drifting away from hands-on programming even though I'd rather not. I still love programming as much as I ever did as a teenager. Late at night when everyone is asleep and I can work on my own code, it's as much joy as it ever was. What's different is that at $DAYJOB back in the 90s and 00s it used to be just as fun all day.

Nowadays when it's just gluing frameworks together and configuring AWS services... it doesn't really feel any different intellectually than cleaning toilets. Sure the pay is better but as a creative challenge they're pretty much on par.

Re: The cloudy layers of modern-day programming

#29
Although I sympathise with the sentiment, that's just half of the story. Today, I can deploy a high available cluster in minutes using any cloud technology + kubernetes and my favourite web framework. True, I need to learn half dozen of frameworks, and _it feels_ like I'm not working in the core problem, but had I tried to implement an equivalent system without those tools would have taken me months, and I would end with an ad-hoc half tested non-reusable mess.

Re: The cloudy layers of modern-day programming

#30

Although I sympathise with the sentiment, that's just half of the story. Today, I can deploy a high available cluster in minutes using any cloud technology + kubernetes and my favourite web framework. True, I need to learn half dozen of frameworks, and _it feels_ like I'm not working in the core problem, but had I tried to implement an equivalent system without those tools would have taken me months, and I would end…

> Today, I can deploy a high available cluster in minutes using any cloud technology + kubernetes and my favourite web framework.

I think the point is (at least for me it is), when you do that, have you done anything new that few or nobody else has done before?

No, it's just a well worn path which thousands of organizations have done already.

Post reply on HN