3 ms·
Computer Science hasn't advanced all that much. Some algorithms have been improved but it is a very slow process, as one would expect. When it comes to 'softwa
by outworlder 2y ago
Computer Science hasn't advanced all that much. Some algorithms have been improved but it is a very slow process, as one would expect.
When it comes to 'software engineering', such as it is, we have regressed. We are incredibly wasteful, in the name of productivity. Some of that trade-off makes sense, but a lot doesn't, and there's diminishing returns. The microservices trend, that's spread like wildfire, is a good example. It makes sense in some cases, but the additional resource consumption is astronomical, both in computer resources, and humans, which is something it's supposed to help with. But the culture moved to an extent that, if you say a particular system is better off served by a monolith, you are seen as an alien in the best case, and a an unskilled hack in the worst case.
Sure, your team can package a microservice in a container, using any language, expose an API, ship it to kubernetes and publish your API spec without having to talk to anyone. Now, you have a whole other team managing your K8s and AWS environments, a whole bunch managing the different database systems that are isolated per service, yet another dealing with whatever messaging mechanism you have probably added once direct API calls became an issue, and you have a full team of Secops people deploying the latest and greatest tools from CNCF to fix the problems the architecture created. While a lot of that would have been, in other times, been solved with a function call. Worse yet, any runtime environments are duplicated, and even then simplest service now demands multiple gigabytes to run. Add HA requirements and you have an enormous overhead, to the point that deploying multiple copies of the monolith would have been far simpler – and much cheaper.
In the 80s, we had Lisp Machines. Nothing has come close ever since. Maybe if we had stuck with S-Expressions, we wouldn't have to reinvent markup languages every 5 years (XML, JSON, YAML, etc). Even without them, the Lisp condition system is amazing.
- tourmalinetaco 2y agoI couldn’t have said it better myself, thank you.
- Animats 2y agoTry fixing someone else's LISP code. Especially if it uses macros. Not fun.
- taeric 2y agoMaybe? I have poked around a ton of elisp code in my time with emacs. It isn't hard, necessarily. No harder than any other code.
- taeric 2y agoThis is probably referencing the same idea that seeded https://cstheory.stackexchange.com/questions/12905/speedup-from-algorithmic-advances-vs-hardware https://cstheory.stackexchange.com/questions/12905/speedup-f.... I remember the claim, as well. That stack exchange indicates that it was never actually quantified. My gut would be that some of the algorithm advances require far more space that was available on early machines. Still a neat idea to look into.
- consteval 2y agoPersonally I don't think the resource usage of microservices is even their biggest issue - it's their complexity. Developing a distributed system when you don't need it is a recipe for disaster.