In the midst of the dual events Oracle OpenWorld and JavaOne (overshadowed, of course, by the iPhone event) Oracle took a number of steps that show that they still care about making a go of Java on the desktop.
First, they released a “Developer Preview” of Java SE 7 for Mac, the final version of which is now scheduled for Q2 2012. This marks the first official release of Java for Mac OS X which isn’t coming from Apple, but still incorporates code that Apple contributed.
Oracle also brought the new, Java-language-based JavaFX 2.0 out of beta, while simultaneously announcing their intention to open-source it under the OpenJDK project and integrate it into JDK 8. And they demoed JavaFX apps running on iOS and Android (see here for pics and more details), although they’re not making any promises on that count. Cue the “I’m not dead yet” jokes, etc., etc. Still, I’m sure many developers out there are happy to see Oracle finally blowing some fresh wind into these sails.
I was hoping that Oracle would pick up the baton and run with Java on OS X.
I was developing a Java app as a web application maybe 2 years ago, but found hosting it was tricky. This isn’t a problem for me now, so I might go back to using Java, both server and client!
I’ll be interested in JavaFX too, I’ve only played with that a little.
Anyway, good news…
Back in the day, Java was a first class citizen in Mac OS X… now It’s an illegal alien.
Java applications are forbidden in the App Store. If Oracle is serious about Desktop Java, They must change that before anything else.
They might work on it but they don’t need to do it before anything else and it is unlikely to be a very huge priority.
I fear that the only successful desktop Java is going to be Android.
Most of the desktop applications developed in Java tend to be enterprise ones.
JavaFX is going to do nothing to change that as Oracle is not releasing it to all major platforms at the same time, and it forces you to use different code paths on each platform.
EDIT: Typo
Edited 2011-10-08 07:08 UTC
I don’t know what you’re talking about with the different code paths, but regarding release dates, they have said they plan to release for all three major platforms simultaneously in the future. At the very latest this will be the case with the release of Java SE 8.
You can read about it here:
http://weblogs.java.net/blog/randahl/archive/2011/10/05/javafx-20-b…
Hmm, hopefully when they release the final Mac version these discrepancies will be gone…
Java desktop? Not happening and no thanks if it did.
The vast majority of Windows apps are written with .Net, which is basically the same type of system as Java (memory managed byte code runs in a jit’ed env).
So, why is .Net great for desktop apps, but Java is considered bad?
Personally, the app I use 90% of the time is Eclipse (for C++/Python/Fortran) and I think its fantastic.
Because Java is a good two or three release cycles behind .NET
And you comment is supposed to tell us what exactly?
That Java is a good two or three release cycles behind C# and .NET .
I’m sorry, I didn’t know this was still disputed in 2011. Sun lost this battle long, long ago.
There’s a hell of a lot more forward momentum in .NET than there is in the JVM.
One day you’ll get closures. One day. Keep telling yourselves that.
Regardless of Java being behind C#, the truth is that most enterprise applications are still Java based.
Sure there are lots of .Net applications being done on the enterprise, but if you go for the Fortune 500 companies with multi-site deployments across the globe, then everything is Java.
Edited 2011-10-09 07:27 UTC
So?
I still don’t get your point.
Does it realy matter what release cycles Java and .Net are on?
It might matter if Microsoft released versions of .Net to run on platforms other than Windows but as they don’t, what .NET does or does not do is totally irrelevant to many of us who develop for platforms other than Windows.
So .NET doesn’t matter because it doesn’t work on your pet platform? A platform which might I add, has had abysmal adoption rates for the past decade and a half. Oh, that one?
Excuse me if this thread is less about you, and more about everyone else.
Did you forget what the original question was? WHY is .NET accepted on the Desktop whereas Java is viewed as a scourge? Because .NET is a mature platform and Java is just an abandoned, abused, sub-par plaything that people with the delusion that their cross platform Desktop app will matter in the big scheme of things like to use.
Don’t be so sure that .Net and C# are the rapidly growing languages and platform of choice. According to TIOBE, Java is still the #1 language (though staying flat). Also, just like C# is just one language in the .NET family, the JVM has become much like the .Net CLR (and all the more so now that JDK 7 has added bytecode improvements for dynamic languages).
Also, O’Reilly has been seeing a decline in sales of C# books, while Java has been increasing:
http://radar.oreilly.com/upload/2011/02/AllYearsT20Langs.jpg
and on StackOverflow, although C# has a greater percentage overall of posts, it has been falling rapidly, and Java is on the verge of catching up again:
http://hewgill.com/~greg/stackoverflow/stack_overflow/tags/
Also while I would agree that Java the language has a stale adoption rate, the new JVM languages are not. You say that Java doesn’t have closures yet, but this was postponed to be included in Java 8. Also Scala and Clojure already have them.
You mention your host platform. Windows, which is really the only OS in town to support .Net (I’m not counting Mono now that they lost their paid devs), is far from the fastest growing platform. Microsoft’s shares are slowly getting eaten up by the Mac OS on the desktop, and Windows Mobile is a distant 5th in the handheld market (and non-existent in virtually any other embedded market).
http://www.computerworld.com/s/article/9219811/Android_is_smartphon…
Awhile back ago, I decided to make a choice on whether to support the JVM or .Net, and came to the conclusion that the .Net platform was going to have a more niche market than JVM based languages.
Have you considered the possibility that the reason why an application written in Microsoft’s dotNet platform is acceptable on a Microsoft Windows operating stystem and an application written in Sun/Oracle’s Java Platform is not acceptable on a Microsoft Windows operating system may have less to do with the versions of the platforms and more to do with the integration of the platform on the operating system?
May or may not. There are xplatform GUI frameworks that did much better than java on windows. QT for example.
Heck, even IBM SWT is more successful than native java Swing.
The problem with java was lack of competences/care in Sun as seemingly all of their GUI oriented efforts (Swing, Net terminals, CDE, J2ME) have eventually failed, J2ME being the most striking example of dropping the ball.
Also a possibility that has nothing to do with which revision either platform is on.
I wrote the other post last night. It just seemed like a crazy, crazy statement. dotNet has worked on the desktop because it was written to work on the desktop from day one. It really doesn’t have anything to do with visual studio, generics or most of the things listed on websites such as this:
http://mikeschinkel.com/blog/whatmajoradvantagesdoeschaveoverjava/
That one might think of as differences of versioning of the languages and/or platforms. I mean, classic VB6 didn’t have any of that, but it was great on the desktop.
I think the GUI app dev. viability and enterprise app dev. viability have been all mixed up in this discussion.
All in all as far as enterprise apps are concerned everything looks to ultimately converge on HTML5. The deployment/compatibility/supportability factor seems to trump developer productivity gains. (makes sense in the long term) It’s all matter of getting the tools available for the job to mature and inertia to be overcome (matter of 5-10 years).
Exactly.
When the poster was referring to release cycles I think what they mean is the features that are in appearing in Java existed in .NET either right from the start or quickly added within a few release cycles.
With that being said the big question is whether these features really offset the reality that .NET is a Windows only technology where as Java is multi-platform – in the enterprise world they’ll evaluate the two platforms and what they offer but what they sacrifice is it worth it? if .NET was 100% multi-platform and feature complete on all platform supported then the original poster would have a point but until that day occurs, for many people that sacrifice isn’t worth it given the lock in one ultimately gets with .NET.
Because Visual Studio is so far and above any Java IDE that Java can’t compete, not to mention that .net inherited all the millions of VB developers.
Have you every tried IntelliJ IDEA? That’s the only IDE that got me really excited about programming again.
Have you tried ReSharper by the same company?
It comes down to personal preference … but You have to pay for IntelliJ unless you are doing an Opensource project … you don’t for Visual Studio and SQL Express editions, which are tbh are good enough for quite a few smaller project (less than a Month).
Edited 2011-10-09 11:27 UTC
I’ve used both extensively, and can honestly say that this kind of hyperbole is just a lot of hot air. While it’s true that the GUI design tools are better than what’s available for Java, when it comes to pure code editing and navigation I find the Java-based IDEs to be nicer. Eclipse and NetBeans at the least equal VS in this regard, while IntelliJ pretty much beats it.
Well, the “I finds” are all the difference, you may find Eclipse and NetBeans to be better, but I disagree. It’s called an opinion, one that millions of other people seem to agree with, as Visual Studio, .net and it’s relatives are the most used Development environment in the business world. That’s not hyperbole, or hot air, it’s just fact.
Edited 2011-10-08 22:23 UTC
<That’s not hyperbole, or hot air, it’s just fact. >
source?
Edited 2011-10-08 22:45 UTC
I always heard that, but after doing some googling, I can’t find any source that separates desktop app development from server, so might just be I’m talking out of my ass, but I can’t tell.
It seems that in the total enterprise space, c is still king, followed by Java, then C#, but it’s all software categories, so I guess I’ll be quiet now.
That’s fact eh?
I guess that’s why the Java language currently has around 19% popularity while C# has around 7% and VB around 4%.
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
After the MySQL.com hacking story, with the ludicrous FUD about Java and security (paraphrased: “Oracle bought^H^H^H^H^H^H^H owns Java, Oracle owns MySQL[.com], ergo Java has security issues”), I’m surprised you didn’t also lace this story with a sprinkle of selectively-quoted fear-by-association.
I would have aired my disgust on that story but commenting is now locked after 5 days. What’s up with that? I mean, there’s often only a few stories every 5 days, why archive/lockdown stuff that is still on the frontpage?
Edited 2011-10-08 14:40 UTC
Agreed, blocking commenting after 5 days is stupid. Someone once replied to a comment of mine and I couldn’t reply back cuz it got locked in between. STUPID.
Well, Thom didn’t post this story, I did.
EDIT: Or rather, Thom posted it in unmodified form… Anyway I just checked out the MySQL story and it seemed like it was that quoted analyst slinging the FUD more than Thom himself…
Edited 2011-10-08 17:47 UTC
Hence I said, “Selectively quoted.”
I’m sure you can find some “analyst” slating any technology. There’s plenty of ridiculous content on the Internet. It was Thom’s decision to include the quote.
For a project at work, Java was one of a number of possible options for making an app portable across Linux, Windows, and Mac. I considered wxWidgets and Qt, for instance. In the end, I decided that the hassle of ensuring the client had the JVM was less than the hassle of porting the program to 3 platforms. I’m sure others will disagree.
Anyhow, Java’s kindof a crufty language. It’s not very orthogonal, lacks fairly basic features had by other OO languages, and has basically taken a surprsing amount of time to learn. However Swing isn’t half bad. And there’s a huge community, so it’s easy to ask questions when I run into a snag. (yay, stackoverflow.com).
I’m kinda hoping that Oracle doesn’t drop the ball and continues to support Java. It would be REALLY nice if Apple’s app store accepted Java apps, but that’ll never happen.
You’re going to have a problem finding an audience on the unix side. For desktop its never taken off and like me, many linux users make very certain no JVM is ever installed on their machine.
Fortunately, in this case, it’s a captive audience. They’re enterprise customers who are mostly using machines we give them.
Well on the enterprise is a different story.
Most desktop applications are either Web or Java based (mostly built with Eclipse/Netbeans instead of plain Swing).
What do you mean that desktop applications are Web based?
Most enterprise desktop applications are either .NET, VB6 or Java based (in that order).
You live in a different world than mine it seems.
On my world most desktop applications are developed on top of Eclipse or Netbeans platforms. In some exceptions Swing.
Most of the new contracts are to migrate enterprise desktops to JSF/Grails/Tapestry/Wicket web based applications.
These enterprise applications have contracts that cost the price of a car per month or even more, and run mostly in UNIX based environments.
These guys don’t want anything to do with .Net.
Edited 2011-10-09 16:54 UTC
What do you mean by on top of eclipse? Do you mean created with Eclipse and using SWT?
I’m guessing he means on top of the Eclipse RCP.
http://www.eclipse.org/home/categories/rcp.php
Yes, I was very afraid that’s what he meant. I weep for his users.
Seems a little extreme, considering there are quite a few nice apps developed in Java that even blend right in with GTK+, but to each his own…
Its this elitist exclusionary attitude which has alienated developers. Linuxheads should have been falling over themselves to support the JVM and Mono on Linux. Instead they view it as a cardinal sin to use anything other than Qt or *shudders* GTK+
Native, non VM apps run faster and use less memory, ergo are usually better. Developing with QT controls in c++ isn’t that much more difficult than java or c#.
I wonder if Larry will succeed in burying Java. Not that he wants to, but it seems he does his best.