Hacker News new | ask | show | jobs
by manigandham 2106 days ago
Complexity always exists somewhere. You can't remove it, only try it make it easier to deal with.

What Kubernetes allows you to do is very complex so you need a capable system to express it all. YAML isn't always the best but it works fine for most and tools like these are very helpful.

Do you use an IDE? Does that mean the language and framework is too complex? No, it's just a tool to help you get things done. More tools aren't a bad thing.

4 comments

>Complexity always exists somewhere. You can't remove it, only try it make it easier to deal with.

This is simply not true. Most complexity in today's systems is completely avoidable. Most developers are just mentally stuck and don't even try. "Managing" complexity is a great way to achieve job security without becoming good at anything specific. Instead of learning how to design system people are learning how to write config files.

That's a different argument. Not needing it doesn't mean it doesn’t exist.

If you don't need Kubernetes then don't use it. But if you do then you can't make it any simpler than the complexity needed to deliver the functionality.

Built in deployments, process health, logging, load balancing, security, high availability, config and secret management, volumes and persistence, and much more in exchange for some YAML files is a pretty good encapsulation of complexity though.

Needing an IDE to have a reasonable time is a very common criticism against the expressive power of certain languages.
Agree with this, and would say that often a good way to deal with complexity is encapsulation. I imagine there are some developers that say "why wouldn't you just write it in assembly" Because if you are used to that and write small low level binaries it might work well. But trying to write a larger app it becomes more difficult to reason about.
Not all complexity is intrinsic, but all complexity incurs a cost.