What’s actually happening is that there are a lot of bloated, buggy, badly-designed programs today because they simply wouldn’t have existed prior to the improvements in developer tooling. In some cases because the software has a much broader scope made possible by the tooling (distributed “webscale” sites with massive data throughput and configurability). Alternatively (or additionally), sometimes the developer(s) are mistakenly using a tool (e.g. Kubernetes) that is way too webscale/generalized for their purpose and/or itself wouldn’t have existed prior to improvements in development tooling.
Good software still exists today. It’s just gold lying around in a forest of junk, whereas it used to be more like less-shiny gold lying around in a barren plain.
Development was better when you must be at least this skilled to build software.
I read a post yesterday where someone was so proud of their bad permissions system... Well someone was unaware of how linux permissions and groups work and what a group even is was (and how it might be represented in a directory to be managed).
As for "web scale" well, all of that autoscaling is just auto-spending. "Cattle not pets" would be a great metaphor but cattle are valuable, most people are leased on chicken farming and own nothing. (If that analogy is lost on you, do your home work and be appalled, but it is on point).
Remember kids, its called a container for a reason, its how we isolate your shitty application from bringing down the rest of the system or the hardware that you dont understand!
This reads as extremely cynical and also uncharitable towards the benefits containers provide around managing different versions of dependencies or run-times for the people who do understand the hardware.
It's really nice to not have to wrangle multiple versions of Python or set up venvs or whatever else on a target server that may be hosting separate apps. The alternative of having a couple of self-contained containers with nginx in front of it is better in many ways.
Can you elaborate on this? I'm not sure I agree.
Modern day applications are doing far, far more than they were 10-15 years ago. Much more traffic, much more data, much more tracking (unfortunately), etc.
(I hate to be the sort of person who exaggerates, so I decided to go through the effort of actually timing Teams for this comment so that I could give it a fair number. I return bearing no such measurement, as today it decided to instantly segfault on open.
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000008
Exception Codes: 0x0000000000000001, 0x0000000000000008
Termination Reason: Namespace SIGNAL, Code 11 Segmentation fault: 11
Terminating Process: exc handler [40516]
)I would also argue that quality has gone down significantly (unless you talk about enterprise apps, where quality was always abysmal) and the cost of making software has also increased, even if we adjust for developer salary. But those are just personal opinions.
Yes but are you sure the 'more' is in the user's interest?
I'd say 90% isn't. Out of which maybe half is less development cost because you can throw layers upon layers of bloat upon the user, and half is spyware.
This is why I've started digging deep into setting up a homelab environment, with the goal to be implementing local source control, automation pipelines, AI inference models, and hosting.
I feel it's important to keep skills fresh rather than paying others to do.
It is important to focus on what you're good at, but it's also important to know what is really going on at the infrastructure layer.
BTW. on premise compute for homelab environments is incredibly cheap right now! (Looking at you 'second hand Dell Optiplex' gear)
There are low power machines that idle on 8 watts (Dell Optiplex Micro Form Factor), and my whole lab costs around USD$100 a year to run on local power prices.
You're right, it's really important to pick components that are low power.
With Home Assistant automation, you can even start and stop machines so they only draw power when you need, e.g. for a testing pipeline.
I couldn't recommend more the channel "Jim's Garage" on YouTube to help someone get started in this space. Fantastic content!
I know in theory the electric bill could/should be way higher, but I just haven't found this to be the case.
It's an improvement from a certain baseline, but Visual Studio set a higher bar for me personally.
It so often seems non-functional to me: auto-completion just doesn't work consistently, even on really simple things - you firstly normally have to save your file first, and even then often if I restart VSCode it will then work again on something it didn't a minute ago, and other times I can never get it to complete things. And this is happening on two different Linux machines and a MBPro M2 in multiple projects, so I don't think it's just a one-off bad configuration I've somehow got.
Its auto-indenting when writing code is insane as well, it seems everyone must be running rustfmt all the time, even on code as they're writing it? It never seems to get the indents right on new lines for me, I'm either having to add them or remove them.
At the end of the day it's what you get used to I think, but Visual Studio 15-20 years ago was pretty good (other than the bloody pause for "Updating intellisense"), I've yet to find anything as good for Python as PyCharm, and QtCreator (CLion was pretty good as well) is still the best Linux/MacOS-based C/C++ dev env I've found (but recent versions of it are getting worse IMO what with all the complicated "Kit" build config stuff).
But I think part of what I dislike about it the most is how opinionated it is about how I structure my projects
Maybe good for huge projects with massive teams, but I've never been able to get myself to conform to it
What's wrong with developing software knowing it will be hosted on a k8s cluster?
You can install a local k8s cluster will plenty of tools helping you with secrets management, observability, ingress, scaling, storage.
Why the hate?
The worst is clouds like fly.io that believe their value prop comes from stuff like "edge computing" while their main offering is half baked, under documented, and unreliable. People want better, cheaper managed infrastructure. Good managed infra should be small overhead on top of the raw compute cost. Nobody complains about LAMP PHP deployments because it was good value and offered what people wanted.
email is in my bio :-)
If you were in a bigcorp in charge of orchestrating 1000s of services, that overhead could be worth it.
However, if you were a solo dev trying to deploy one service, that overhead is really bad.
My experience as a single developer on a new project is that the usability of K8s has improved dramatically in the last decade.
I use Vultr VKS; setting up a small cluster takes a few minutes, it’s super cheap, and now I have a deployment environment with automatic redundancy, zero downtime upgrades, and much more.
It’s not perfect, but I absolutely love it, and it’s made my life so much easier. I do hate yaml with a passion, and there’s a lot of boilerplate, but IDEs and templates make it bearable, and in any case it’s a small price to pay for all the automation I get.
I sure hope so. It’s only been around for 9 years!
> Tools for working on software in the large have improved a lot over since I last considered them ten years ago.
This… is not the primary benefit of type systems. (Not sure I’d agree that this is even an actual benefit - my mental model of a system is unaffected by the presence of types)
In my view, the primary benefit of type systems is that it makes changing code significantly easier, much in the same way that test cases do. They give you confidence that a code change doesn’t cause a regression. Refactoring a code base without types is nightmare fuel. This is not hype.
This isn't really an assessment on the utility of IDEs. I think they're a net positive for the people that get benefit from them.
The vast majority of PR/commit messages I see (approaching 100%) are basically a JIRA ticket number and the name of the ticket, and that message is used over and over again for multiple commits under that same ticket. I'm not sure Copilot could do any worse.
Shoving another vendor in the chain because the demo looks great is a sign reasoning is not so great. This kind of layering poorly though out fixes is how most mudballs I've encountered have grown.
I feel this. There are a lot of PaaS options, but very little portability between them.
Everything is a lock-in of some kind or to a degree, even k8s or EC2s can be depending on the complexity, of which there exists heaps in k8s. It's a different kind of lock-in, the self inflicted variety.