3 ms·
> Yes, there's definitely a kind of complexity that _doesn't_ stem from the problem domain, and it can often be eliminated. Yes, it can be eliminated, but only
by elteto 7y ago
> Yes, there's definitely a kind of complexity that _doesn't_ stem from the problem domain, and it can often be eliminated.
Yes, it can be eliminated, but only to some extent. Programming languages add a baseline of complexity by themselves that _can't_ be removed: programming languages are not infinitely flexible so there will always be problem characteristics (invariants, data structures, etc) that will not be easily expressible. Those are new sources of complexity.
Think how Java simplifies manual memory management when compared with C or C++. Or how the Rust borrow-checker provably prevents a whole class of bugs. But these are all tradeoffs, both Java and Rust are ill-suited to express other problems.