Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I think the overabundance of choices is still a major issue but I think an even bigger problem is the growth in complexity of languages and development environments. C++ was already a complex language in 1998. Today it's probably at least three times bigger, to the point where being a true expert in the language is almost beyond the capacity of a single individual. Other languages and ecosystems are no better. There's little comparison between what you had to know to consider yourself an expert web developer in 2000 compared to today.


Indeed, it's a monster language - every 5 years it looks completely different, but it'll take 15 years to get even the mainstream compilers to implement the changes from 5 years before.

It makes little sense to violate everything we know about language design (esp. regarding simplicity and orthogonality) and the cognitive limitations of humans (esp. developers) and keeping the Frankenstein language alive.

It got hashtables in its standard library only when everyone and their dog had already been forced to implement their own for 15 years!

And STL is so complicated that Stroustroup joked that he couldn't have done it if Alex Stepanov hadn't been able to pull it off. That may be a compliment to Stepanov's intellect, but it isn't a compliment for C++'s design.


The growth of language size in the past 30 years is even more stunning when you compare today's C++ to C, or Java to Pascal (or Object Pascal) from 1990. No modern language can be taught in less than a thousand page textbook. And if you include the standard templates and libraries the book size can double again.

The evolution of any language inevitably adds reams of extensions, variations, and libraries. This makes the tool not only a lot more heavyweight, but much slower and harder to master, and personally, a lot less fun to use. Give me a tiny simple language (e.g. C) any time over a giant language that requires me to navigate multiple programming paradigms and layers of abstraction (e.g. C++).

Modern languages are like having to speak in Latin. You spend all your time trying to please an nazi grammarian, rather than speaking simply and naturally, as the language was originally conceived.


You also have a whole lot more polyglot codebases now. So it's not just one language, it's all of them. As a web developer, you'll likely be working with PHP, Javascript, and Python, sometimes Ruby and Go for some things, along with a number of specialized config languages for things like docker, nginx, etc. And of course they each have their own package managers, dependencies, etc. If you thought _one_ language was getting complicated, just wait until you see a system that uses a half dozen of them.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: