I like to think of programming languages as being custom-built for particular use-cases. So, if you have 1. a particular use-case, 2. it’s very common, and 3. it’s profitable – there will be a programming language that fits that use-case pretty well. Languages are not cheap and they require a large population to survive – much like a virus.
4GL languages in the 90’s were all built around the business case that you wanted to access data (typically parent-child relational data) and update it from the intranet. Order: Details, baby. C was a low-level language suited to drivers, C++ was trying to do C, but for large applications, etc. .Net is an attempt to make a *platform* upon which you can build forms (for windows), or web applications (that run on windows) without having to re-tool your knowledge of the language/frameworks.
Each language has a use-case where it shines – it was built for that purpose. General use languages (like java was meant to be) are typically <not great> at most things. The idea behind the JCP, etc. is to have plug-in frameworks to make java work for any use-case. The “devil is in the details” of the implementations for different interfaces – they’d rather not try to maintain them for all the available things a developer might need to do (which is basically infinite). They have made the “standard” and “enterprise” frameworks for java pretty extensive in all these years – and there are some really slick solutions, but the genius of java is that it’s pretty flexible, while adhering to decent engineering principles (type safety, etc.). But, no doubt, that makes it hard to learn.
As most people like to compare C# with Java by comparing the contents of their default frameworks – I don’t think that’s a fair comparison. Microsoft (Steve Ballmer made this super clear) has done a damn fine job and spent a ton of money to woo developers with a pretty great stack and best-of-breed tools, but it doesn’t do all things without plugging libs in (like java was designed). MS knows that to keep people coding for windows – there has to be a reason that developers LIKE to code for windows. MS spends way more money on .NET than Oracle does on Java.
While I’m thinking about VB, that’s another reason that new languages are made – to be easier for people who are NOT engineers to be able to pick them up. SQL, HTML, CSS, etc. these are all supposed to be non-engineer “languages” because learning how to do real engineering is something that takes 10 years+. Businesses don’t know how to build those skills. So, “programming languages for dummies” is a real use-case. Some “languages” are just attempts to keep engineers from having to do boiler plate things (like formatting a web-page).
If you were really 5, you probably wouldn’t understand much of that – sorry. 🙂 It’s not something a 5 y.o. would ask, though.
Latest Answers