Live data from Hacker News

The cloudy layers of modern-day programming

vickiboykis.com

131–140 of 177 posts

Re: The cloudy layers of modern-day programming

#131
post #84

Like many other commenters (of a certain age?), I too have this unsatisfied feeling about a particular kind of modern software development. The kind where you never really dig down and design anything, you just plumb a bunch of stuff together with best practices you find on stack overflow. Many commenters are attributing this problem to the modern high-level tools we now have access to. But I don't think this is the…

A side effect of this is that almost all job position advertisement are disgusting to look at. They are all about this kind of mindless glue code programming, but wrapped in marketing speak to make it look like "you get to use awesome bleeding edge latest technologies" when in reality it is "you have to figure out how to configure 10 different things to work together to sort of kind of produce the intended behavior".…

I have exactly the same problem.. got sucked into "the cloud" 4-5 years ago at my current employer. Now I desperately want to get another job. Something with preferably no or minimal cloud involved. The trouble is that the jobs that sound interesting don't reflect my expertise.. Now should I try to start from 0 with a junior salary? Does not make sense with a family. I don't really have an idea yet.. but I urgently need to change something because my current work is killing everything I ever felt for software development.

Re: The cloudy layers of modern-day programming

#132
post #85

Like many other commenters (of a certain age?), I too have this unsatisfied feeling about a particular kind of modern software development. The kind where you never really dig down and design anything, you just plumb a bunch of stuff together with best practices you find on stack overflow. Many commenters are attributing this problem to the modern high-level tools we now have access to. But I don't think this is the…

Or, just don't work in webapps. Get into embedded programming. Or join a games studio. I have a friend who is writing code to run on a sort of exoskeleton meant to benefit disabled people and help them walk. He has never in his life "deployed to the cloud" and wouldn't have the foggiest idea of how to do it.

That sounds nice but how do you get into embedded if your experience are 5 years, 10 years or more in say distributed systems/cloud/web programming/etc?

Re: The cloudy layers of modern-day programming

#134
Great critique! Reminds me a bit of

Back to the '70s with Serverless (2020) http://evrl.com/devops/cloud/2020/12/18/serverless.html (2020)

which I linked from

Summer Blog Backlog: Distributed Systems https://www.oilshell.org/blog/2021/07/blog-backlog-2.html (Kubernetes is our generation's Multics)

I'd say the key issue is that the cloud "abstractions" are leaky, and they don't compose. This leads to combinatorial explosions of code and frameworks.

Re: The cloudy layers of modern-day programming

#135
post #134

Great critique! Reminds me a bit of Back to the '70s with Serverless (2020) http://evrl.com/devops/cloud/2020/12/18/serverless.html (2020) which I linked from Summer Blog Backlog: Distributed Systems https://www.oilshell.org/blog/2021/07/blog-backlog-2.html (Kubernetes is our generation's Multics) I'd say the key issue is that the cloud "abstractions" are leaky, and they don't compose. This leads to combinatorial exp…

I've had to embed a distributed cache into our product, which is a server customers run themselves... I got it working pretty quickly, then spent lots of time testing everything on Docker containers to make sure the distributed part of it was working.

Finally, I started testing it on Kubernetes because a lot of customers seem to use that in production. That forced me to work on the following things (after I had to learn details of how the cache works and how to configure it correctly, use its API, design a good integration for it into our product etc.):

- Kubernetes basics, like what a pod, service, deployment etc. is.

- Helm charts for configuring everything (lots of YAML).

- Terraform to kick off the infrastructure in the "cloud".

- Minikube to run things locally.

- Using Docker K8s as Minikube didn't work well on my Mac M1 for some "reason".

- Installing Lens, a UI to make sense of the hundreds of pieces I was now juggling.

- Configuring the cloud environment with the right permissions for devs to be able to use it.

- Network configuration so nodes can "talk" to each other, without exposing things on the Internet for no reason.

And probably a few dozen more little things that ate up all the time I had. Designing and writing the code to make things work locally and in a Docker container (running Docker compose) was pretty easy and took me a couple of weeks, including a lot of testing.... but once I started with the k8s, cloud stuff... I've been on it for a few months now :( and things are still not working reliably in "certain cases" (everything that changes seems to break something). It's a real nightmare and took all the fun out of the project for me. Really makes "programming" something else entirely that I would be very happy to leave to a good sysadmin to handle.

Re: The cloudy layers of modern-day programming

#136
post #83

Earlier quoted context omitted.

Challenge yourself to use stdlib only for a while, or the future. It sounds unrealistic and I'm going to get flamed, but hear me out. It works. Most of my development these days is in reasonably complete languages like go, rust, zig, and various scripting languages, so your mileage may vary if you're writing in something like rune, hare or carbon that is still taking shape. If you think I'm crazy but have a lingering…

Going one step further, challenge yourself to _not_ use stdlib, just raw language constructs. Need a hashtable? Write one. You won't come out with a celebrity HN presence, but you may gain enlightened samurai monk status.

Going one step further, challenge yourself not to use raw language constructs, but dive deep into assembly.

Need a conditional? Time to jump around.

I wrote a web server that scales to over 1 million requests per second, and I found out it's much more maintainable, scalable and environmentally friendly for our company.

Re: The cloudy layers of modern-day programming

#137
post #85

Earlier quoted context omitted.

Or, just don't work in webapps. Get into embedded programming. Or join a games studio. I have a friend who is writing code to run on a sort of exoskeleton meant to benefit disabled people and help them walk. He has never in his life "deployed to the cloud" and wouldn't have the foggiest idea of how to do it.

That sounds nice but how do you get into embedded if your experience are 5 years, 10 years or more in say distributed systems/cloud/web programming/etc?

Easy - just apply, and mention that you have experience, but also that you have a reference from this site. This site has the greatest minds in terms of embedded experience, and any company worth working for will instantly know to give your application a closer look.

Re: The cloudy layers of modern-day programming

#138

Earlier quoted context omitted.

Going one step further, challenge yourself to _not_ use stdlib, just raw language constructs. Need a hashtable? Write one. You won't come out with a celebrity HN presence, but you may gain enlightened samurai monk status.

Going one step further, challenge yourself not to use raw language constructs, but dive deep into assembly. Need a conditional? Time to jump around. I wrote a web server that scales to over 1 million requests per second, and I found out it's much more maintainable, scalable and environmentally friendly for our company.

That sounds like it was a lot of fun but I'm wondering what assembly gave you that was not available in e.g. C? My understanding is that most compilers can out-optimise the average developer, so are you an above-average developer (well I guess you are) or did assembly enable you to do something that was difficult in a higher level language? Or was it more about the challenge (which I'm totally on board with by the way)?

Re: The cloudy layers of modern-day programming

#139
post #89

Like many other commenters (of a certain age?), I too have this unsatisfied feeling about a particular kind of modern software development. The kind where you never really dig down and design anything, you just plumb a bunch of stuff together with best practices you find on stack overflow. Many commenters are attributing this problem to the modern high-level tools we now have access to. But I don't think this is the…

Go is mostly devoid of this. The general approach is all stdlib and the idle extra dependency. Of course, a lot of fields are inaccessible. Lisp can enable fantastic development speed allowing you to build your own primitives. Racket's ecosystem's all high quality too. I believe Julia has a less buggy ecosystem allowing you to pipe together natively written ML things, as opposed to Python's dumpster fire ecosystem

> I believe Julia has a less buggy ecosystem

Love the Julia language. But its ecosystem is definitely less complete, less documented and arguably more buggy than the Python equivalences.

This is not a failing on Julias part, the Python ecosystem is 50x bigger and backed by multiple of the largest IT/ML firms on the planet.

Re: The cloudy layers of modern-day programming

#140
post #84

Earlier quoted context omitted.

A side effect of this is that almost all job position advertisement are disgusting to look at. They are all about this kind of mindless glue code programming, but wrapped in marketing speak to make it look like "you get to use awesome bleeding edge latest technologies" when in reality it is "you have to figure out how to configure 10 different things to work together to sort of kind of produce the intended behavior".…

I have exactly the same problem.. got sucked into "the cloud" 4-5 years ago at my current employer. Now I desperately want to get another job. Something with preferably no or minimal cloud involved. The trouble is that the jobs that sound interesting don't reflect my expertise.. Now should I try to start from 0 with a junior salary? Does not make sense with a family. I don't really have an idea yet.. but I urgently n…

Try to find work in visual effects, lots of interesting work and they’re on prems. Anyone with software background can get in !
Post reply on HN