3 ms·
> Many domains are inherently complex. If your programming language is simple, then the complexity will be in the code. I think this is equivalent to the "sphe
by RcouF1uZ4gsC 4y ago
> Many domains are inherently complex. If your programming language is simple, then the complexity will be in the code.
I think this is equivalent to the "spherical cow" problem in physics. A lot of calculations in physics are much simpler, if you assume everything is a spherical cow. However, the real world is messy, and not everything is a spherical cow.
In programming, a lot of complexity comes from interfacing to the real world. Whether it is CPU performance/memory hierarchy, or messy business logic.
The drive for simplicity, often ends up sweeping these under the rug.
- lamontcg 4y agopretty well put. it is an optimization problem, and the optimum isn't at the extremum of the constraints, it is somewhere in the middle. just because C++ is a bit of a mess after 37 years of evolution doesn't mean that the simplest language is best. rust is also the first widely used language with a borrow checker and may suffer from having to discover the correct primitives while hunting around in the dark to begin with.
- RcouF1uZ4gsC 4y ago> rust is also the first widely used language with a borrow checker and may suffer from having to discover the correct primitives while hunting around in the dark to begin with. Rust is the first widely used language that addresses the question, how do you have memory safety without garbage collection and loss of efficiency. It comes up with (IMO) a very good answer, but likely not the final answer to this question. But I think trying to answer that question, more than justifies the complexity.
- mftb 4y ago...and all the expressive syntax in the world just leaves the pointy-eared, spike-tailed, non-spherical cows, poking out all over the place. I pretty much agree with everything you said, and think it's a good analogy, but eventually come back to the point of the article we're responding to, which is that a lot of the complicated syntax, and features that languages introduce, just ends up non-essential complexity around the inherent complexity of the real world, that you're highlighting.