4 ms·
On top of what you mentioned: Java hopped onto the Object Oriented Programming bandwagon just as it was getting a lot of buzz. To a lot of people, Java and C++
by wtracy 8y ago
On top of what you mentioned:
Java hopped onto the Object Oriented Programming bandwagon just as it was getting a lot of buzz. To a lot of people, Java and C++ are the canonical Object Oriented languages. (Sorry, Alan Kay.) Of those two, Java has the shallowest learning curve.
Java was also many developers' first introduction to a language runtime with a "fail fast" approach to fault handling. Java featured runtime bounds checking and runtime type checking. Couple that with the very detailed (for the time) stack traces that the runtime produced, along with automatic memory management, and you have a powerful set of tools for building (relatively!) bug-free software. (For comparison, imagine trying to debug a C++ program that intermittently crashes on an off-site customer's computer.)
Object Oriented design, garbage collected memory management, and runtime error checking all had roots in other languages (Smalltalk and Lisp come to mind) but Java was the first to package all those things together in one well-documented, industry-oriented tool.
Most of those predecessor languages were widely perceived as by academics for academics, which brings me to the final piece of the puzzle: Sun nailed developer outreach. It doesn't matter how good your language is if nobody has heard of it.
- zephyrfalcon 8y ago> It doesn't matter how good your language is if nobody has heard of it. Or how bad it is, if you can shove it down people's throats. But that is true for any software, not just programming languages...
- setpatchaddress 8y ago> Java has the shallowest learning curve [citation needed]
- deleted 8y ago[deleted]
- seanmcdirmid 8y agoSurely not if the comparison is with C++.
- _ph_ 8y agoJava 1.0 had a reasonably shallow learning curve. A lot of complexity was added by later enhancements. I always felt they were not always worth the complexity tradeoff they brought.
- astrange 8y agoNot having headers seems enough to prove that. But making Java easy to learn by taking the features out didn't make it easier to build programs with it. It's kind of like making a surgeon wear boxing gloves.
- zozbot123 8y ago> Java was also many developers' first introduction to a language runtime with a "fail fast" approach to fault handling. Java wasn't just "fail fast" in some loose and hard-to-pin-down sense, it was memory safe. This was a killer feature in competing with C++ as the standard 'enterprise' language, and Sun rightly focused on it in their marketing of the language and platform. Edit: And yes, as a sibling comment says, the "batteries included" factor was probably important in making the language popular with developers.
- igouy 8y agoAnd the free as in beer factor ;-) And the dancing in the browser future of the Internet factor :-)