Post-Oracle Purchase, How Is Sun's Software Doing?
GMGruman writes "Oracle has steadily provoked the open source community since its acquisition of Sun, raising the question of whether the move will simply destroy Sun. But as Paul Krill observes, Oracle has been steadfast in upgrading Sun-derived technologies — and making them profitable, which should mean they will stick around a long time."
Overall it's been good for Oracle, not so much for Sun's existing customers. The HP/Oracle feud has also affected product directions like the Oracle Database Machine which was released on HP gear, and now is on Sun Opeterons. Products like OpenSSO have been left in a confusing mess and Oracle going after Java partners (Google) isn't a good thing.
Harrison's Postulate - "For every action there is an equal and opposite criticism"
Minecraft confirms it, Java is not dead.
VirtualBox wasn't mentioned in the article, but when the acquisition was announced, I was really worried about that project. However, the release of VirtualBox 4.0 seems to show that they're still hard at work - not just fixing bugs, but developing new ideas.
I can only hope other Sun projects are doing as well as VirtualBox.
I need trepanation like I need a hole in the head.
For example, we have a brand new fileserver with 2 hour or so support that is not in production yet. We've needed support on the order of like getting a part and the new Oracle/Sun could not provide the part in a timely fashion. Took like a week. We are now looking at delegating this box to non-critical storage and buying something supported from a reliable vendor. We have also had a number of issues with solaris/zfs file servers hanging. Personally, I'm going to suggest to management that we not buy any more sun equipment. Its simply less reliable and more costly than the same product from Dell or HP running linux.
I don't believe any of the lead developers are still at Oracle/Sun. The java head left, the XML guy left, the lustre people were told to leave and most have. When you are in a service economy, you have to provide service. Hardware is a dime a dozen today. Software is mostly free. And nobody will pay for support when there is no support to be had.
I have been making a killing doing Solaris to Linux migrations since the Sun purchase. My wallet cannot thank Oracle enough.
Got Code?
I noticed today that there's a shedload of bad links left in google's cache.
try searching for just about anything to do with solaris and you get links to sun pages that now just redirect you to oracle's completely useless "Oracle Documentation" page which seems to be almost entirely about the database.
virtualbox seems to be able the only software now owned by oracle that it doesn't seem intent on killing off.
#include <sig.h>
you mean like, Garry's Mod?
I'm god, but it's a bit of a drag really...
Google nearly any Sun product and see where the links take you. Try to figure out the new patching site....
The merger has been a nightmare for Sun customers...and now Oracle is stopping 3rd party vendors from selling hardware to put in Sun servers until clients sign an Oracle Agreement? WTF?
Especially since it's more or less unplayable after an hour on my 2.4 gHz Dual Core MacBook Pro w/8GB of RAM.
In C, Obj-C, C++ or anything I couldn't imagine it being this slow.
I speak only for myself, but considering they've killed OpenSolaris, done next to nothing with OpenOffice.org, and are suing Google for Java in Android, I hope they die a terrible, prolonged death!! But, that's just me.
I work at a university which has historically been a huge Solaris shop as far as infrastructure goes. Hundreds of web servers, mail systems, LDAP servers, etc. have all been based on Solaris for many years. But Oracle has started trying to nickle & dime us to death, so with a new push to virtualize as much of our infrastructure as we can we're also migrating as much as we can off of Solaris and onto linux. We feel like Oracle is giving us very little alternative given how much more expensive they're making things. They may keep Sun/Solaris around for a long time but from here it looks like they may not have many customers actually using it...
It was basically an in-house project with the (failed) goal of attracting Linux developers. Did you ever visit the OpenSolaris forums? The place was dead.
They may be hated at places like Slashdot but they have contributed far more to the kernel than Canonical.
Java been dead, Its not portable. Its fractured to many people have to many incompatible versions.
Here is a quote from the down load Linux / other part of the page on Mindcraft.
" Download Minecraft.jar, an executable jar file. It might work as-is."
Its just not reassuring. I tried some tutorials From Sun on a RedHat box and the first baby ones worked. But when I loaded the Sun libs for the graphics tutorials nothing worked.
Unfortunately since the Source Engine is BSP based, all the blocks in the world would have to be entities instead of world elements themselves, and that's kind of limited (in most 3D engines, really) compared to Minecraft's expanse. At best it'd have to be modified all the way down in engine code to work the way it does now.
What else on the desktop uses Java? And please do not say Eclipse or a bit-torrent client that came out years ago.
In C it's usually hard to make something slow (except for algorithms), but you'd also see the same incompetent programmer either never release the project, or release it in a state of absolute instability.
C++ programmed by the same fool is just about as slow as Java (unless C++ to him means C-with-classes, in which case it has the same problems as C).
So basically, be careful what you wish for. Only people skilled in C and C++ will manage to write stable, fast code. Amazingly, the same is generally true of Java.
I don't see why the programmer should be blamed when he is one of the few people that has actually created a popular Java program. Perhaps you have to be very talented to just build a mediocre program with Java.
People assume that most of Minecraft's issues are the result of using Java... without considering the programmer's failings.
Unfortunately, that's what is said every time someone sees a slow Java application. Which is yet even more unfortunate as that seems to be the norm for Java applications.
When Java jockeys go out of there way to make noise about how speedy java is (faster than C), people have an expectation of it being as speedy as constantly boasted. And then when it consistently fails to meet expectations set by those who should know, people complain loudly.
Frankly, Java is frequently "fast enough". And there is nothing wrong with that. It is, after all, pretty fast for a fair number of use cases. I've used several Java applications which were fast enough and provided a good experience. Just the same, I've never run a real world, long-running application, which was actually faster than C or C++. Never. Not once. Which leads me to believe, either I've been lied to by Java programmers or every Java programmer is a bad programmer. Either way, its not a good thing.
The Java world needs to simply accept that Java is frequently "fast enough" and move on. Stop with the lying. Stop with the hype. Most people truly don't care so long as its "fast enough". That is, up until people go out of their way to make a big point about how Java is the fastest language ever created. Its at this point, everyone gets upset and disillusioned and then posts like this get written.
The truth is, Java, in real applications, is rarely, if ever, faster than C or C++. Period. In fact, its frequently much, much slower. The facts are, when people need performance there are really, really, really good reasons why people still use C, C++, and asm. Likewise, there are really good reasons why Java is almost never considered for these applications. And when Java is used in stead of C, C++, or asm, its usually because of corporate culture, idealogical, religious, or plain old ignorance.
It still makes me sad that Apple didn't buy Sun instead of Oracle. It would have taken less than 20% of Apple's cash reserves, so in one sense wouldn't have even been a particularly big purchase.
Apple has no significant enterprise division, and Sun was almost 100% enterprise. Apple could have merged its own chip fabrication division with Sun's, and picked up significant engineering talent along with it. Apple would control Java, which would have put it in just as strong of a position against Google as Oracle now has, which would have made sense strategically, as far as I can see.
Sure, there would have been some Java vs. Objective C questions, as well as Mac OS X Server vs. Solaris, but I think overall it would have been a healthier relationship for everyone than Oracle's purchase. Oh well, what do I know. I'm not a billionaire CEO.
www.clarke.ca
When I glanced at that, I saw "I think Microsoft will be the contributing factor to the success of Java"; and had quite a good giggle.
No folly is more costly than the folly of intolerant idealism. - Winston Churchill
I think the JavaOne experience sums up the current state of Sun and Oracle nicely.
This year's JavaOne was pretty disappointing compared to previous years and many of us Java enthusiasts felt a little unwanted. Most of the focus was on hardware, which we didn't care about at all. Little of the content was geared towards a technical audience. The tech demos of past years were hushed into side rooms, replaced by celebrity meet-and-greets with Lance Armstrong, Apolo Ohno, the Black Eyed Peas, and a yacht racing team.
Someone must've been aware this would have a poor reception from the Sun crowd because they quarantined us away from the Oracle Open World groups much of the time and fed us uncanny amounts of free beer and vodka. The open bar seemed to be specially coordinated to just before and during Ellison's speeches about how lock-in is awesome.
When it came to the actual sessions, the speakers were great but there were moments where you could tell they were intentionally leaving things out. I believe it was a session with eBay's Randy Shoup where someone asked what App Server they ran on and he alluded to not being able to answer that since it "looked a lot like Tomcat." Of course the absence of Google was noticeable as well.
There's a little war going on inside Oracle right now between trying to mesh traditional Oracle marketing and lock-in to the Sun people who dreamed of openness and interchangeability. Obviously the two are ideologically at odds and all the liquor in San Francisco didn't help that. They're certainly trying to make it work and that's commendable but so far the result has just been many of the Sun people walking away. Sun's assets were as much the people and their mission as their patents and products. Oracle has so far ignored that half of Sun and it is rapidly hemorrhaging.
we did move our hardware support to a third party company. Oracle's pricing is ridiculous compared to what we were used to with Sun. In addition Oracle was just unable to get us renewal quotes for equipment we have installed overseas in time. We still have to keep some support contract with Oracle, though, in order to have software support for Solaris. If you do the math we probably still pay about the same for annual support but at least we don't have to deal with Oracle anymore to get a drive replaced.
I'd be fine with them killing off OO.org, I think most people are migrating over to LibreOffice, anyways.
With everyone saying that they're moving from Solaris to Linux/whatever, who are the companies keeping (or even thinking about moving to) Oracle/Sun?
Java on the desktop has NEVER been there, but Java on the server is seeing more usage than ever (up over 1% since 2010), far more than any other language by a considerable distance. Only "C" is even close (not C++ or Obj-C)
Sorry to spoil the "bash Java" party.
Sometimes the light at the end of the tunnel is the headlight of an oncoming train.
Client side Java seems to be doomed
No, it's just called Android now.
Sometimes the light at the end of the tunnel is the headlight of an oncoming train.
Perhaps more importantly, java is frequently used in scenarios where developer time is more valuable than user time. Java can often get the job done in half the developer time, at a cost of less performance for the end user. Java has been able to significantly close that end-user performance gap, but it is still there. Still, with the lower development time, that's a big cost saver if the performance remains 'good enough' not to piss off your customer base.
"Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
Not even security patches. That means that Solaris is essentially dead for a non-commercial use. There isn't even OpenSolaris to keep those admins in the fold. There won't be any supporters to bring Solaris into new environments. I've been running Solaris machines at home for 15 years. I have been happy having a slightly non-mainstream server even if it was a little less convenient than a Linux box. Now I have no choice. I have to replace the Solaris machine with something I keep secure.
I've never had an issue with it on my machine and it's not exactly top of the line: 1.8Ghz Core 2 Duo, 2GB of RAM, GeForce 7300, Ubuntu 10.10
"Our opponent is an alien starship packed with atomic bombs. We have a protractor."
Wow, do you live in fantasy land. You are now officially the village idiot. Join your brothers who've been declaring java dead for years while it continues to soar in popularity, completely out of the reach of EVERY other language except for "C".
I'm not real happy with the way Oracle has treated the FOSS community or with how it's dealing with Google on the Java/Android issue.
However, Oracle does have a track record of kicking ass and taking names and they do appear to want to push Java to the next level quickly rather than wait around for the JCP and all their committees to make up their minds on the direction the language should take. Stagnation has been a big problem for Java over the last couple of years, but I get the sense that the words "stagnation" and "java" won't been used together as much under Oracle's reign.
Sometimes the light at the end of the tunnel is the headlight of an oncoming train.
Java been dead, Its not portable. Its fractured to many people have to many incompatible versions.
ever heard of android? pretty big boost for java i'd say.
I don't recall OpenOffice.org development being exactly speedy prior to the acquisition, and Gosling mentioned that the Google/Android issue was already well in the minds of executives before the acquisition, so I wouldn't exactly be quick to blame Oracle for ticking off the FLOSS guys.
However, I don't share your vision of Java's future. I think Oracle will kick Java into high-gear again (it was stagnating under the slow pace of the JCP). Regardless of what you or I think of Larry Ellison personally, the guy does seem to kick ass with everybody that's ever tangled with him. If I'm reading the tea-leaves correctly, this might just push Java to the next level, sending all the java haters scrambling for new reasons to hate it.
Sometimes the light at the end of the tunnel is the headlight of an oncoming train.
Ever heard of Orion app server? Didn't think so (8 years after oracle "took over" the open source project). 8 years from now we will probably be saying "Sun? BEA?" never heard of them.
We're officially a fairly big customer - somewhere north of 800 Sun servers, if I were to guess. Add another hundred workstations or so, and we're pushing about a thousand machines running Solaris, many of them running Sun apps of one sort or another.
Oracle changed the terms of our software support to the tune of a 500% increase. That's right, they want us to pay SIX TIMES as much for support! We lost all of our training credits overnight (About $100k in training dollars). Our hardware support costs have gone up substantially as well, so we're getting rid of our full-time onsite tech. (with the money we're saving by getting rid of the onsite Sun guy, we're going to hire two hardware techs of our own who are qualified/allowed to work on ALL of our gear, and still have cash left over.)
We are planning to migrate away from all Sun/Oracle applications by the end of the current support contract. Even the groups that were using Oracle Database before this are being strongly encouraged to look elsewhere for solutions.
Ours isn't an isolated case. The general feeling in the Sun customer community is that they're standing on a sinking ship, flailing at the floorboards with an axe to make it go down even faster. Every Sun software product is now in the 'legacy' section of Oracle's (disastrous!!!) website. Contracts have gone from three pages to 500, due to the lack of blanket terms. Oracle is TRYING to piss off their "Sun" customers as much as possible, and are succeeding. Oracle Solaris is going to lose more than 70% of its purchase-time market share by the end of 2013. Separate products (iPlanet, Directory Server, StarOffice, etc.) will all be shot through the head.
"People who do stupid things with hazardous materials often die." -- Jim Davidson on alt.folklore.urban
Meh, you're just like Miguel from the Mono project. What you and him fail to see is that if you let .NET/Mono grow enough, it will simply inherit all the problems that you mention that Java supposedly has. I have only seen more and more adoption on the server side and with fat clients.
And let's not forget the RIA aspect, Java FX 2.0 is out and some early Java FX 2.0 adopters say that it looks very good from where they're standing.
I agree they are pure evil
Just the same, I've never run a real world, long-running application, which was actually faster than C or C++. Never. Not once.
Have you ever once had the ability to properly compare these things?
It seems to me that the differences between applications are far greater than the differences between platforms. Show people a fast Java app, and the response is "It would've been faster in C!" Show them a slow C/C++ app, and of course it's the programmer who gets blamed. It's really not feasible to implement exactly the same app twice, once in C++ and once in Java -- for one, the implementation would have to diverge to take advantage of the features of each language -- and even if it was feasible, it seems like it'd be a truly massive waste of resources.
And if they do diverge significantly... Suppose Java is half the speed of C, which is what I hear lately. That means "all" I need to do is find an optimization which gives me more than a 200% speedup -- but for many applications, there are all sorts of places where you can do that. Add a little caching here, pick a different algorithm there, maybe this entire data structure is poorly designed. That kind of thing is much easier to do in Java.
The question really is just whether Java is fast enough for your application, and if not, which pieces are really suffering. I actually take this to the other extreme -- start in Ruby, and when I find something that really needs speed, rewrite just that part in C. Then I get the best of both worlds -- faster development, a much smaller, more reliable, more maintainable program, and the raw speed when I absolutely need it.
The Java world needs to simply accept that Java is frequently "fast enough" and move on. Stop with the lying. Stop with the hype.
It isn't lying or hype that Java is sometimes, under certain edge cases, faster than C. Whether it is over the scope of an entire program is a different question.
...there are really, really, really good reasons why people still use C, C++, and asm.
I think this again falls into the realm of edge cases. In fact, I don't really see a good use for C++. The pieces of your program which really need that speed should be in C or asm, because you're going to be optimizing tons of shit by hand that the JVM (or your VM of choice) would otherwise try to do for you. The pieces which don't are now a liability -- there's really no reason I should ever segfault in the GUI portion of my code.
Don't thank God, thank a doctor!
The image that comes to mind is the Calvin sticker you often see on trucks where he's pissing on the competition, but in this case it's their customers that are getting pissed on.
It hasn't just been the former Sun customers, but their DB customers as well. I've heard many a plan to migrate away from Oracle completely. From what I've seen they aren't salvaging much of what was really good from Sun either. So long to the free sunsolve and the system handbook as we knew ye...
Seems to be portable, even on the desktop. I have always thought Java Desktop apps looked crappy until I came across this game. I had no idea it was running Java until I started looking at the files in order to make a Debian package for my website.
Here is the startup script for Linux:
#!/bin/sh
./launcher.jar ./game.sh ./launcher.jar ./game.sh
cd "${0%/*}/data"
if [ -n "$JAVA_HOME" ]; then
$JAVA_HOME/bin/java -Djava.library.path=lib -jar
else
java -Djava.library.path=lib -jar
fi cd "$OLDPWD"
"Be grateful for what you have. You may never know when you may lose it."
There might be development, but I'm not at all sure I'll be interested. It basically depends on license, access, an capabilities. Capabilities is in the third place. It's already a complete language. The most important thing to do is to remove type erasure during compilation. But by the time they get around to that I'm pretty sure that, say, Vala will be ready to be used. Or possibly Go. Or D. All of which have decent licenses and access policies. (Java swamps them in terms of documentation, but Vala and D are already a lot faster. Not sure about Go.)
Then there's Python and Ruby. Python is currently in a feature freeze, but it sounds like they're fixing the global lock problem, so it will start being parallel capable. Ruby I'm less sure about, but it's also just come out with a new version with lots of nice capabilities. Both, of course, have their own collections of libraries. Which are native code, and thus a lot faster than Java. (At least potentially, if not always in practice.) Nobody seems to talk about handling memory paging, and I can't figure out whether this is because they don't need to or because they can't. What if I need a hashtable that won't fit into RAM? Do I get a memory overflow or does it page out the parts that haven't been used recently? I tend to suspect that there's automatic paging, but I sure with somebody would be explicit about it. (They talk about reading in entire files at one gulp as if it's nothing to worry about, and this only makes sense if there's automatic paging. But they never mention this explicitly. Yarrgh!) (I expect that it's automatic paging handled by the operating system, but it would sure be nice to be told this rather than just guessing.)
I think we've pushed this "anyone can grow up to be president" thing too far.
Everyone forget about Runescape?
Sure, it doesn't have the latest graphics, and can be childish at times... But it's still a good example of a 3D MMORPG written in Java(Except for the OpenGL & DirectX rendering modules).
And heck, it runs on pretty much anything(Though perhaps not well).
"I think this again falls into the realm of edge cases. In fact, I don't really see a good use for C++. The pieces of your program which really need that speed should be in C or asm, because you're going to be optimizing tons of shit by hand that the JVM (or your VM of choice) would otherwise try to do for you. The pieces which don't are now a liability -- there's really no reason I should ever segfault in the GUI portion of my code."
I'm suprised at how much I agree with this - some years ago I would have certainly disagreed. I like optimizing stuff in C or asm, quite frankly, it's probably what I enjoy most in coding for some awkward reason. But, these days I find I do most of the high-level stuff in either C# or Java (though the latter only under protest). However I think this is also a flaw in C++ itself. Why that is is a lengthy opinion piece, but let's just say there are other natively compiled languages with full support for all that C(++) has to offer, just not as terrible to use nor as inviting to create memory and pointer related issues for yourself. In fact, in these languages I have rarely even encountered this issues, just because of how the languages are built up. C++ is really a terrible example of native code.
for one, the implementation would have to diverge to take advantage of the features of each language
One of the things I find really noticeable about Java is it pushes you heavily towards certain types of structure. Want a simple array of identical records? sorry you can't have it! you either have to run multiple parallel arrays (which is bad for locality of reference and also bad for code readability) or have an array of objects (which means every array element has all the overhead of an object). Want to pass parameters by reference? sorry the language simply won't let you so you have to work-around it (which is likely to mean creating yet more objects).
The pieces of your program which really need that speed should be in C or asm
C++ is pretty much (excepting a few corner cases) a superset of C and like C compilers many C++ compailer allow inline assembler. Pretty much everything you can do in C you can do in C++ and there is no reason it shouldn't run just as fast yet you can also use higher level constructs where appropriate.
Mixing languages adds complexity to the code, the build process and the debugging process and this needs to be balanced against the benefits of doing it. Java seems a particularly painful language to mix with others and this makes it a bad option for many apps.
note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
For obvious reasons I need to be AC, but while there are lots of comments above from people saying that they're turning away from Sun hardware and Solaris for any one of a number of reasons, the section of the company that is responsible for the hardware and Solaris is now profitable. It's actually doing better for Oracle than it was for Sun.. So whilst there may be scores of people here saying they're changing to Linux, etc, the obvious conclusion is that the people who are shunning Oracle were never actually profitable customers for Sun to have had. Oracle's customer base is significantly more than twice the size of Sun's and it would be a foolish person to bet that there won't be some amount of drag-along for sales from Oracle.
So, no, Oracle isn't trying to piss off Sun customers, they're trying to make sure that in the business agreements that they have, that they make money out of them.
Oracle is a company that makes money. It doesn't give much, if anything away for free. Sun was a company that did give away stuff for free and ultimately it failed. Larry Ellison is a smart business man, I'm pretty sure that their number crunching would have factored in customers dropping off.
Have you ever once had the ability to properly compare these things?
Yes! And almost without fail, it typically boils down to an apples and oranges comparison except the Java coders doesn't understand what's going on under the covers so they don't understand its actually an apples (a) to oranges (o) comparison. Furthermore, when I've then changed the code to make it an a to o comparison, traditionally C++ then takes a massive lead, sometimes by as much as an order of magnitude.
And frankly, that's part of the problem. Most Java coders I've met don't have deep system knowledge and even less C++ knowledge. Likewise, finding strong C++ coders can be trying (which is one of Java's strength). As a result, you wind up with a lot of completely unqualified people creating benchmarks, who don't understand what's going on, and then proclaim to the world their result means X when in reality it means something entirely different; and typically that difference is of the apples and oranges variety.
It isn't lying or hype that Java is sometimes, under certain edge cases, faster than C.
And that's entirely the point and entirely why its a huge lie - and purposely so. Edge cases are so rarely representative of real world applications, its hardly noteworthy. But to then take a foot note and present it as a metric for the entire spectrum absolutely is dishonest with every intent to mislead. Again, that's the point. Even you see the bullshit, but you're being more polite and dancing around what it. We all know its a lie. Stop dancing, acknowledge it, and move it. And frankly, I already take your statement to be an acknowledgment.
Java's greatest strength is that programmers are plentiful and performance is generally good enough. The lies and hype are certainly not needed. And frankly, I'm tired of hearing a decade of lies and hype.
I don't disagree with anything you said. Java's strength is that programmers are plentiful, coders are typically more productive with Java than C++, and performance is frequently good enough. What's not to like.
But at the end of the day, when all you hear is that Java is the faster language available and in the real world is never is close, you start to wonder if those cheap programmers are even worth their discounted salaries. Meaning, they are doing a disservice to themselves and the language. Java has strong enough legs to walk on its own - its doesn't need the lies and hype - which otherwise only serves to cut its legs out from under it.
However, Oracle does have a track record of kicking ass and taking names and they do appear to want to push Java to the next level quickly rather than wait around for the JCP and all their committees to make up their minds on the direction the language should take. Stagnation has been a big problem for Java over the last couple of years, but I get the sense that the words "stagnation" and "java" won't been used together as much under Oracle's reign.
And what do you think Oracle is going to do? Java's problem is that the language and the libraries are full of badly designed, ill-conceived, overly complex features. How is Oracle going to fix that? Adding more features to the language isn't going to do it, and removing features is a political impossibility. You can't undo a decade of inept academic language tinkering by adding more stuff.
Apply your own signature to the situation... it fits.
Java's problem is that the language and the libraries are full of badly designed, ill-conceived, overly complex features
Bullshit. That may be your opinion, but I've always found the libraries very well designed. Just about every time I've ever ventured into using parts of the API that I hadn't used before, it's been just the way I had intuited it would be and I rarely needed to resort to javadocs to understand the structure. Of all the API's I've used over the years (which covers just about every major platform out there including OSX's API, .Net (which should have been better given they had a reference implementation to copy from), MFC, etc), I find it the most consistent and well organized by a long shot. Is it perfect? No, but neither are any alternative platforms.
There are valid criticisms of the Java platform, but I've never once heard the "badly designed" criticism leveled against it's APIs except by those who don't know what they are doing. There is valid criticism of some of the frameworks for Java EE, but that is a framework issue, not a language issue (i.e. not part of J2SE). If you don't like the Java EE stuff, there are plenty of other frameworks to choose from, but the truth is, once you understand EJBs and the whole ecosystem it make perfectly good sense and is actually quite valuable when constructing extremely complex and large enterprise applications. So, the answer to your question is that Oracle will probably do just as Sun did before them and deprecate features that are considered obsolete (leaving them in for legacy support) and move on. The entire J2SE JDK platform is less than 100MB (JRE is only 14MB), about half the size of the .Net platform so I don't really see this as a problem. Additionally, JDK7 will be adding modularization which will dramatically improve this issue as well.
You can't undo a decade of inept academic language tinkering by adding more stuff.
WTF? Academic tinkering? Name me one language that has grown up more "in the field" than Java (at least one that has not become a complete "hack" - yea Perl people, I'm looking at you - I love Perl, but wow, it's like it was intentionally designed to weed out the non-geek types). The changes that have been made to Java over the years have been driven by those using it for real-world work, not by academic institutions, which is can hardly been said of many of the other language choices out there.
Just so we're clear. I think Java is a great language and platform, I think it's the right tool for many things, but I'm not religious about it. When I'm writing on OSX, I use Obj-C (when in Rome...). Obj-C definitely has it's warts, but the OSX ecosystem has evolved around it so it's the best tool for development on that platform if that is the targeted platform. If I'm writing windows desktop apps, I use VS/C# (sometimes Powerbuilder) because that's the best tool for writing that type of application. C# is a very nice language and the .Net APIs are very usable as well. If I'm writing batch (command line) apps for Unix/Linux I use a combination of Perl, shell scripts and C or C++ (sometimes Java) to get the job done because that's what works best in that environment. However, when I'm writing back-end systems I tend to use Java because it offers the best solution to some really complex problems.
Sometimes the light at the end of the tunnel is the headlight of an oncoming train.
That's what we can't figure out either. It doesn't make any sense. If you buy a company with the intention of killing them, it's generally because they're your competitor. Oracle bought Sun which launched them into an entirely new space, and then proceeded to burn every bridge possible--to the point of harming their own core business as well. It's stupid! The only real explanation is arrogance, which actually makes sense if you factor in Larry Ellison.
"People who do stupid things with hazardous materials often die." -- Jim Davidson on alt.folklore.urban
Just try to port any software for their database and you'll see that they already screwed it as much as they can. No need to distrust them.
Anywhay, they never did anything under the covers. It is that the people who buy Oracle aren't the ones that must live with Oracle (that means, they sell only to big corporations), so their botton line doesn't feel their users revolt. Also, once you are using Oracle, you are locked in.
Rethinking email
You typify the ignorant Java hack who simply doesn't know any better. It's pretty telling that the only alternatives you know are OSX and .NET. You're a poster boy for why the industry produces such shitty software.
Did I say there were the only alternatives I know? No I just mentioned a few of the platforms I'm currently engaged (as in "being paid to develop") in.
I have no idea of your age and/or experience in the industry so, unlike you, I won't jump to any judgments about your abilities (or lake thereof).
However, I'm fairly confident though from your post though that you are an ass. I've been writing code since the mid '70s and have spent pretty close to 12 hours a day everyday since, designing and coding and I've worked in just about every platform and language environment out there. My judgments come from many years of hands on experience. I'm not about repeating what I read somewhere and passing it off as my own thought, which is what your comments appear to be.
Talk to me again when you've done a little more homework.
I think we're done.
Sometimes the light at the end of the tunnel is the headlight of an oncoming train.
No jumping to conclusions here: for starters, you confuse language, platform and APIs and you don't know who designed the new language features or where they come from. And what are those mythical "well designed" libraries and frameworks? Swing? Collections? Java 3D? Applets? Java Imaging? J2EE?
Yeah, I believe you that you have been programming close to 12h/day since the 1970's; you really should have spent some of that time actually learning something instead of hacking around. You're like someone who has been cleaning toilets for 12h/day for forty years and fancies himself a hydraulic engineer.
Which languages would these be?
And really, I enjoy both extremes. It's the middle I despise -- in fact, I find Java much too low-level for the high-level stuff, and there are some things C++ is much better at (like operator overloading and generic types), whereas Java
Give me JavaScript, Perl, Python, Ruby, even weird stuff like Lisp, Erlang, or Scheme, to write my high-level code. The low-level stuff, I'll write in C, and I do try to avoid situations where assembly is really needed, partly so I can develop on whatever platform is most convenient for me, not necessarily the same platform I'll be deploying to.
Don't thank God, thank a doctor!
Well, let's see...
Want a simple array of identical records? sorry you can't have it! you either have to run multiple parallel arrays (which is bad for locality of reference and also bad for code readability) or have an array of objects (which means every array element has all the overhead of an object).
Most likely, you go with the array of objects, because when you say "all the overhead", we're talking 16 bytes. Not usually an issue.
If it's really an issue, it's certainly possible to use similar tricks to what you'd do in C to deal with a blob of data -- just stuff it all into bytes and do some arithmetic to pull it out. Since you're not likely to have many structures where this kind of optimization is easy, wrap it in an object to hold your big array -- now that object overhead you're worried about is being applied once, for an overhead of O(1).
Want to pass parameters by reference? sorry the language simply won't let you
Let me pass _what_ by reference? I honestly can't think of a time I'd want to pass anything but an object by reference, and that's pretty much all you do with objects.
But this is exactly what I'm talking about. There may be cases where it makes perfect sense to do this in C++, so if you're trying to compare programs, you're either going to do this entirely the wrong way in Java, or if you're coming from Java to C++, you won't quite make full use of the power C++ gives you. It's kind of like when people go from C++ or Java to JavaScript and immediately try to build something like classes, thus missing the point of prototypal inheritance.
Mixing languages adds complexity to the code, the build process and the debugging process and this needs to be balanced against the benefits of doing it.
I think of it this way: How can I possibly know ahead of time what the performance characteristics of my code will be, until I actually profile it? I'd much rather write it in something that lets me get it working, and working well -- I'd go one level higher and use Ruby.
If you start that way, once you identify something slow enough that you actually care, the benefit is now that you get to keep your "prototype" code as production code, and that you get to use a language in which you're probably 50-90% more productive.
It's also not alway that bad. Ruby, even JRuby, can have inline C code. And regarding your comment about Java being painful to mix with others, it can certainly be painful to write raw JNI code, but chances are, the work's been done for you -- and it's often remarkably easy to connect JVM languages together. If you've got a Java codebase to play with, I'd strongly suggest playing with it in a JRuby irb session -- you can pretty much just pretend your Java objects are Ruby objects.
I find it hard to believe I'm defending Java. I really despise the language, but I also find it hard to call it slow.
Don't thank God, thank a doctor!