4 ms·
Maybe it makes sense to understand why Java is where it is today. It is not because programmers thought it was the best technology, but because of politics. At
by julianpye 12y ago
Maybe it makes sense to understand why Java is where it is today. It is not because programmers thought it was the best technology, but because of politics. At the time of introduction, Microsoft held a clear platform monopoly and the key skills in demand were C++/MFC and the like. Sun was the underdog and Java was positioned to become a counterweight to this monopoly and many companies supported it heavily just to provide a balance.
From a developer standpoint Go is superior, but would the same political support happen for a Google-invented language?
- kbd 12y agoI'm sorry, I think I just downvoted you while scrolling (tablet) and there's no way to reverse it. If anything, I'd like to upvote since you make a good point. Java succeeded not because of technical superiority but because of Sun spending millions on pushing the language (and because it was the only way to write browser applets!) However, while Google doesn't seem to be pushing nearly as hard for Go's adoption externally, lots of the industry has run with Go on their own, on Go's merits. So, that's different than Java, but also a good place to be.
- julianpye 12y agoThank you, I was a bit perplexed by the downvote :) I mainly think without IBM failing to launch OS/2 and lending their support to Java, it would be in a very different market position nowadays.
- jgreen10 12y agoPushing AND developing. Languages live or die by how much is invested in their tools, libraries, execution environment, community, etc. The only languages with a comparable investment to Java are C(++) and JavaScript. Everything else falls short and will get passed by for most projects. It's quite possible that Google will make a similar investment into Go, but they do have a tendency of dropping out of projects prematurely.
- kitd 12y agoYou paint Java as the child of corporate scheming (maybe unintentionally), but it was more nuanced than that. Java's success was due to several trends coming to together at the same time. The bulk of serious programming in the early 1990s was in C or C++. Cross-platform C libraries in those days were either abysses of mind-blowing complexity or just pure snake-oil. Since everything MS did was Windows, anything that came along to provide a good development experience (which Java did in comparison in those days) AND be cross-platform (one of its founding principles) couldn't help but be successful. So politics was certainly not the only factor.
- waps 12y agoMost of all, java was the first real commercial language with a (good) garbage collector. That was a real advantage.
- gutnor 12y agoJust adding up to those points. Compiling at the time was a problem. Adding a new library could mean hours of digging up to find out why you can't even link the damn thing in your project - if that's even possible. That's before even talking about cross-platform. Java was also a modern OO language, safer to use than C++ and with everything you needed right there in the JDK, all of that backed with solid documentation ( internet was not what it is now, if you were the lucky few with access at all ) In particular, java had a great easy approach to threading out of the box, working everywhere.
- ralphc 12y agoAs someone who was programming at this time, and before, I agree with all these and the child comments. Java being OO but a "simpler C++" plus having garbage collection generated a lot of interest, even in places that were all Windows shops. Late 90's I worked at a place that sold software to customers that had to run on Windows, Linux, AIX, Solaris and HP-UX. Java went a long way of saving us from the #ifdef nightmares.
- icebraining 12y agomany companies supported it heavily just to provide a balance. Did they? Why?
- ajbetteridge 12y agoPresumably so they didn't have to pay Microsoft for Visual Studio et al.
- roel_v 12y agoHear hear. Where are the companies who are developing the Springs and the JSP's and the Velocities of all those languages supposedly supplanting Java in a few years? Nobody uses or ever used Java because it's such a nice language. It was heavily pushed by a major player in the market at the time it was introduced, and as time passed it became the only language with a big enough ecosystem in enterprise development to do enterprise development in (well apart from .Net, I guess, but that's not really the point).
- bad_user 12y agoThis is a myth, perpetuated probably by people that weren't around in those days. It is true that Sun pumped money into marketing, but given that other companies did the same without the same success, most notably Microsoft, it's proof enough that pumping money in marketing isn't everything. Java succeeded because (1) targeting Unix and multi-platform development was awful, the closest thing to an alternative to C/C++ was Perl, (2) people loved in-browser applets and this was the killer feature and (3) all decent alternatives were expensive. I remember in college when I decided to build a simple desktop app for Windows and I chose Java because I didn't have money for Borland's Delphi or for Visual Basic and I hated the thought of pirating like everybody else did it. > From a developer standpoint Go is superior, but would the same political support happen for a Google-invented language? Personally I don't think that Go is in any way superior, quite the contrary, I think it represents a regression and it wouldn't be on anybody's radar if Google wasn't involved.
- waps 12y ago> but given that other companies did the same without the same success, most notably Microsoft Microsoft failed to see what was coming when IBM/Sun/Oracle pushed java, true. But go back to a bank department today and take a look. C# everywhere.
- bad_user 12y agoIt depends on where you're looking. In my country banking is dominated by Java and I've seen mixtures too and migrations from C# to Java. .NET has several problems. Microsoft targeted Windows while Java's rise is correlated with the rise of Linux on the server-side. Linux on the server-side is cheap and reliable and people want more and more Linux and Microsoft's cooperation with Xamarin is kind of too late and is meant for mobile phones and not Linux, but who knows. Microsoft also failed to create an open-source community around .NET, while Java's open-source ecosystem is huge and even the commercial tools available are cheaper. Microsoft advertised .NET as being multi-language but dropped the ball later and failed to attract new languages, whereas other languages are flourishing on top of the JVM, keeping Java the platform hip. Microsoft also failed to convince startups to use .NET and today's startups are tomorrow's corporations.
- rbanffy 12y agoNot only that, but for hardware companies like Sun, IBM, SGI and HP, Java was a way to sell hardware that wasn't Windows-compatible and to counter the existential threat C++/MFC/Windows/x86 represented. The idea was that you could develop your application on a puny PC and run it unmodified, much faster, on a serious machine with a serious OS. With a serious price tag, but that's another issue. Java was also designed to be fashion-compatible: it had OO, its syntax resembles C/C++-ish languages, it is statically typed, and it could be used to run programs inside web pages (as well as on mostly anything with a decent CPU). All things were compelling in the late-90's. The fact Sun spent a whole company promoting and developing it also helped a lot. It didn't help Sun that much, in the end. It's a shame. SPARC boxes were amazing. It's really sad all those beautiful architectures could not compete with the evolving x86.