If in any language one can write beautiful code (with that I agree 100%) I wonder what makes some laguages produce sphagetti and others lead to good code… For instance PHP and Perl tend to be maintenance nightmare, while Java and Python source code is much more maintainable.
- is it low entry barrier? (Perl has high barrier to entry)
- or too fast learning curve? (python is quick to learn)
- or maybe standard libraries influence programmers (but Java had an old collections framework that was ugly but that didn’t pollute programmers’ minds worldwide)
What is the reason most successful frameworks like JUnit, Spring, Hibernate happen in Java world first before being ported to .NET, Ruby, Python, PHP? Is it that majority of experts and creative people do mainly Java? Or perhaps there is something in the language that stops developers from bad practices and enforces them to seek for better solutions? Or in problem space they deal with? Or perhaps in the platform, or in the ecosystem around given language? Or in books that people start learning the language from?
So, which of these you think contain core root of the problem?
There are a lot of upcoming new languages like Groovy, Scala etc, what should focus their creators on to minimalize the risk of them evolving to another maintenance nightmare? Perhaps it would be easaier to anser “opposite” question: how to design a bad language that will result in tons of mess?