News for hackers. Stuff that matters.
Re:Oracle and the fall of Java EE by StevePerkins on Friday July 08, 2016 @08:34AM (#12055016)
Amen. Be it Hacker News, or the /r/java subreddit, or wherever, it feels like the bulk of Java chatter revolves around...

1. Security vulnerabilities

2. The Ask.com toolbar

3. Oracle abandoning Java EE

... which is extremely frustrating because...

1. Virtually all of the "security vulnerabilities" deal with the browser plugin for using applets, which hasn't been widely used in 15 years

2. The toolbar malware, while stupid beyond measure, only applies to the consumer Java installer, which nobody installs anymore due to item #1 above.

3. Java EE is legacy tech. While deeply entrenched, most of the work out there for it today consists of maintenance or migration to more service-friendly approaches like Spring or Dropwizard.

Java is certainly not perfect. It's also long in the tooth, and is associated with "the enterprise", and so it's not seen as "sexy" by young developers. But for business software, large-scale data processing, and web/REST backends, I've yet to find anything on the horizon that seriously competes with it.

Every year I get bored and go exploring a new alternative language in side projects. Every year I come back, more appreciative of what I have. Python/Ruby/Node have their beginner-friendly charms, but are limited by the lack of type checking and/or chaotic ecosystems. Golang seems really promising, but has a long way to go. C# seems like the most credible challenger for business systems, but the .NET Core ecosystem is probably still years away from being where Java was in 2005.

I don't mind discussing Java's shortcomings. But I'm tired of hearing about irrelevant shortcomings such as applets and Java EE. Because that's just a way to keep a "language war" going without having to point at a serious alternative.

Re:Oracle and the fall of Java EE by spriggan3 on Friday July 08, 2016 @09:31AM (#12055320)
> Golang seems really promising, but has a long way to go. C# seems like the most credible challenger for business systems, but the .NET Core ecosystem is probably still years away from being where Java was in 2005.

Go doesn't have the guts to replace Java, because of the hostile mindset of its community when it comes to writing reusable, general purpose libraries. the famous "you don't need that with Go" is something pushed by go maintainers themselves.

The best bet is .NET core. Microsoft can move quite fast on a project, just look at Typescript or VSCode. And there are already hundreds of thousands of C# devs if not more. C# and F# with .Net core on linux will certainly be the future of entreprise development when the RC mess is sorted out. And MS can still make money on expensive SQLServer licenses.

I don't think the latest JEE was that bad though. It tried to do away with a lot of unnecessary complexity.

Re:Oracle and the fall of Java EE by voidlogic on Friday July 08, 2016 @10:23AM (#12055703)
>Go doesn't have the guts to replace Java, because of the hostile mindset of its community when it comes to writing reusable, general purpose libraries. the famous "you don't need that with Go" is something pushed by go maintainers themselves.

Go has a pretty comprehensive stdlib. And a huge and growing community of 3rd party libraries. I left .NET and Java for Go around 0.9 and since then I have seen Go flower into an ecosystem I am far more productive than. The Go devs have a bias against complexity, they hate Abstract Factory Factory Singletons :P, but that does have much impact on community developed libraries. The Go community does have a strong bias towards libraries and against frameworks, but IMHO, that is generally healthy. The only concrete example of what you are talking about is the current lack of generics support.

Re:Oracle and the fall of Java EE by shadowmint on Friday July 08, 2016 @10:55AM (#12055958)
I think the issue here is the hostility of the go community historically to pretty much any kind of criticism on pretty much any front.

(want generics? too bad! don't like the syntax for [thing]? too bad! want a framework? you're doing it wrong! want to test without using actual sending network traffic? BAM! 50 downvotes on SO for 'poor question'. Got some feedback and post it to golang nuts? HA! Prepare to be shouted out)

...but slowly we're seeing things move to a more moderate and mature state now where people are actually solving problems (like vendoring and SetDeadline()), rather than just pretending everything is ok, and building really good things with it, like go-kit.

It's just go growing up and being used seriously by people; but to be fair to the parent post, if you've used go in the past, I can see why you might have some opinions about it not being run by grown ups.

Worth having another look though. These days, it's pretty good.

Re:Oracle and the fall of Java EE by geodel on Friday July 08, 2016 @11:45AM (#12056312)
How did it become good? Has generics been added? or syntax changed? or framework comes bundled with Go? Seems all example you gave are some libraries being written which shouldn't be big deal.
Re:Oracle and the fall of Java EE by shadowmint on Friday July 08, 2016 @12:06PM (#12056500)
I'm talking about the community, which has tangibly improved.

There are also technical improvements (as I mentioned) and frameworks (as I mentioned). What more do you want?

Generics? No. You still can't have those.

Different syntax? No. You still can't have that.

...but maybe, now, if you go and talk to people about it, they won't flip the table about it, and you can have a conversation about it with folks on the gopher slack where everyone is reasonable and thoughtful both about legitimate concerns and future directions for change.

In my oppinion, that's a big deal...

Re:Oracle and the fall of Java EE by pkaye on Friday July 08, 2016 @12:16PM (#12056614)
Can you tell me what is the issue with SetDeadline()?
Re:Oracle and the fall of Java EE by shadowmint on Friday July 08, 2016 @09:00PM (#12059596)
There's no issue with deadlines; I'm talking about people using deadlines instead of just hanging forever in go routines, and how contexts have been merged in stdlib in 1.7 (https://blog.cloudflare.com/the-complete-guide-to-golang-net...)
Re:Oracle and the fall of Java EE by justinlardinois on Friday July 08, 2016 @03:01PM (#12057862)
Sounds like the Python community.
Re:Oracle and the fall of Java EE by coldtea on Friday July 08, 2016 @09:14PM (#12059623)
Not even close.
Re:Oracle and the fall of Java EE by TorKlingberg on Friday July 08, 2016 @10:24AM (#12055708)
Traditionally, Microsoft technology has been an all-or-nothing affair. If you want C# you also get IIS, SQL Server, Windows, Azure, Visual Studio, Windows on your dev machine and I wouldn't be surprised if Exchange shows up somehow. You could use Mono, but then you were off the beaten path and on your own. When something new appeared from outside Microsoft, such as git, it wouldn't fit into the MS ecosystem for a while.

Now Microsoft seems to be changing its culture, but I can understand if people are weary.

Re:Oracle and the fall of Java EE by marcosdumay on Friday July 08, 2016 @12:57PM (#12056934)
I don't know Go (didn't got a good first impression), and don't know what those libraries are, but nearly every time I've seen somebody say "you don't need this on language X" it was true, and the problem goes away after the requesting person really learns language X, instead of writing language Y code in X.

Maybe Go is a exception, but there's a lot of people happy to use it. (Yes, there's a lot of people happy to use PHP too. Those things always have exceptions.)

Re:Oracle and the fall of Java EE by hitr on Friday July 08, 2016 @09:45AM (#12055406)
>when the RC mess is sorted out

RC mess is already sorted out with RTM release, isn't it?

Re:Oracle and the fall of Java EE by Longhanks on Friday July 08, 2016 @08:48AM (#12055077)
And now imagine where Java could be if the ecosystem wasn't completely fucked up by oracle. Imagine a Java with a sane, user friendly installer, an open source community supported by a big corporation, actual development, no completely insane lawsuits.

Instead, developers want to abandon the JVM platform. They actively seek new platforms and create them.

The damage is done.

Re:Oracle and the fall of Java EE by KevinEldon on Friday July 08, 2016 @12:34PM (#12056752)
Oracle pays very senior engineers and innovators to create a stable and still evolving ecosystem. Java is slow and steady. The JVM enables other innovators to explore and create languages radically different than Java. I am very thankful for Oracle's stewardship of Java and the JVM.
Re:Oracle and the fall of Java EE by filereaper on Friday July 08, 2016 @01:06PM (#12057003)
On the topic of stewardship, I highly recommend this talk by Brian Goetz titled "Stewardship: the Sobering Parts" [1]

Brian goes about how important compatibility is for the language, the concept not throwing customers code under the bus by bringing breaking incompatibilities. (ie Python 2 --> 3)

Java has its warts and isn't "cool" but I respect their design decisions.

[1] https://youtu.be/2y5Pv4yN0b0?t=1578

Re:Oracle and the fall of Java EE by KevinEldon on Friday July 08, 2016 @01:46PM (#12057340)
Thanks for the link. I haven't watched that talk, but I will, and I was thinking of Brian when I wrote my comment. His work and he work of others on the Java team is important, serious, and hard.
Re:Oracle and the fall of Java EE by claystu on Friday July 08, 2016 @08:58AM (#12055137)
What's so hard about the JVM install? I googled for "java download" and this was my first hit: https://java.com/en/download/

Went there and found a single, totally obvious button labeled "Free Java Download" that detects your browser and Operating System and makes sure you download the proper version of the JVM.

How much easier could it be?

Re:Oracle and the fall of Java EE by vetinari on Friday July 08, 2016 @09:24AM (#12055281)
Except for the above malware comments, what exactly does "Install Java" mean?

You cannot redistribute the installer or the installed files. Except other things it means, you cannot make a docker image with java app and redistribute it. Everyone has to download their own java installer and build images themselves.

Re:Oracle and the fall of Java EE by SSLy on Friday July 08, 2016 @09:38AM (#12055357)
Re:Oracle and the fall of Java EE by raverbashing on Friday July 08, 2016 @11:54AM (#12056388)
Yes. But openJDK might not solve your problem
Re:Oracle and the fall of Java EE by SSLy on Friday July 08, 2016 @03:38PM (#12058094)
Is there one feature relevant to running enterprise apps that oracle jdk SE (straight out compiled from openjdk sources) has that the gpl edition does not?
Re:Oracle and the fall of Java EE by chvid on Friday July 08, 2016 @10:32AM (#12055777)
I don't understand where you have this information from.

Plenty of software comes with Java embedded - ie. IntelliJ Idea. Last time I installed Java was on a digital ocean remote box and I did it through apt-get.

Java may have some licensing that cause some open source system distributions not to include it but that is really their game.

Re:Oracle and the fall of Java EE by y4mi on Friday July 08, 2016 @12:09PM (#12056537)
yes, you can install open jre through repos.

most applications put "oracle jre" in their dependencies though.

Re:Oracle and the fall of Java EE by oldmanjay on Friday July 08, 2016 @09:58AM (#12055491)
I have no recriminations prepared for you but I am curious; where did you get the idea you can't make docker images for java apps? Did you piece it together mistakenly based on incomplete knowledge or is someone actually spreading that around?
Re:Oracle and the fall of Java EE by kieranelby on Friday July 08, 2016 @10:23AM (#12055702)
Don't know about other poster, but I always thought that while you can make docker images for Java apps that include the Oracle JRE, there are restrictions if you want to distribute them - see http://www.oracle.com/technetwork/java/javase/terms/license/... . The no modifications clause is problematic for GPL software.
Re:Oracle and the fall of Java EE by kodablah on Friday July 08, 2016 @11:59AM (#12056438)
> You cannot redistribute the installer or the installed files. Except other things it means, you cannot make a docker image with java app and redistribute it. Everyone has to download their own java installer and build images themselves.

This is only true for Oracle Java, which is basically OpenJDK and some dev tools. OpenJDK is basically all you need and you can redistribute it or docker images with it. See http://zulu.org/

Re:Oracle and the fall of Java EE by StevePerkins on Friday July 08, 2016 @10:36AM (#12055807)
INSTALLING JAVA

===============

Even if you are Day One brand-new to Java, page #1 in any book will tell you to download a Java Development Kit (JDK). Any Google search would take you straight to the download page for Oracle's implementation, which is fine.

The Oracle JDK does not include any "toolbar" malware. That's only an issue for the Oracle JRE download (i.e. the runtime without any compiler)... which page #1 in book will tell you not to bother downloading ever.

The JDK is open-source, based on the "OpenJDK" codebase (much like the difference between Chrome and Chromium). Oracle's binary build has some restrictions on redistribution (see below), but there are numerous other OpenJDK builds. Every Linux distribution has one, as does homebrew for OS X, and there are at least two for Windows:

http://www.azul.com/downloads/zulu/

http://developers.redhat.com/products/openjdk/overview/

In the past, there were enough differences between the base OpenJDK and Oracle's build that people were wary of using OpenJDK. As of Java 7, and especially now with Java 8, those differences are nearly zero.

REDISTRIBUTION

==============

You absolutely CAN redistribute Java. OpenJDK builds have no restrictions whatsoever. Oracle's proprietary runtime binaries are also redistributable, with the only real restriction being that you can't exclude certain files (i.e. they don't want crippled Oracle runtimes floating around that can't run core Java):

http://www.oracle.com/technetwork/java/javase/jdk-8-readme-2...

Not only are you allowed to redistribute even Oracle's binaries, but the latest JDK includes a "javapackager" utility. It bundles up your code, along with a stripped-down embedded runtime, with an executable wrapper so that you can distribute your app as a zero-dependency standalone (on Windows, OS X, or Linux). Interestingly, I've found that creating an installer for a JavaFX GUI application, with the runtime included, is slightly smaller than the installer for a similar GitHub Electron based app.

https://docs.oracle.com/javase/8/docs/technotes/tools/unix/j...

https://gitlab.com/steve-perkins/MediaGallery-javafx

Re:Oracle and the fall of Java EE by tajen on Friday July 08, 2016 @11:23AM (#12056154)
So why do we have to add a special source repository to do "apt-get install" and why is there a mandatory interactive license approval?
Re:Oracle and the fall of Java EE by tremon on Friday July 08, 2016 @11:26AM (#12056172)
Because (Oracle) Java comes with its own EULA, and the DFSG forbid any EULA in Debian main.

OpenJDK is in Debian main, and does not require user interaction.

Re:Oracle and the fall of Java EE by amluto on Friday July 08, 2016 @09:01AM (#12055148)
Dunno. Do you want the ask.com toolbar? How about updates that install the new version and remove the old version? Or maybe they've fixed the latter issue by now.
Re:Oracle and the fall of Java EE by claystu on Friday July 08, 2016 @09:19AM (#12055258)
Well, the oracle website does tell you how to disable the toolbar, though I agree it shouldn't be there in the first place. As for uninstalling the old version, are you saying you want the new version to automatically uninstall old versions?
Re:Oracle and the fall of Java EE by amluto on Friday July 08, 2016 @11:48AM (#12056335)
Yes. A new security release should absolutely remove the old release or at least disable any ability for less-than-fully-trusted code to invoke it.
Re:Oracle and the fall of Java EE by eli on Friday July 08, 2016 @09:02AM (#12055154)
On Windows it comes with an unrelated installed-by-default "malware" browser toolbar.
Re:Oracle and the fall of Java EE by acveilleux on Friday July 08, 2016 @09:43AM (#12055392)
If you need to provision things automatically, you need to jump through hoops to bypass going through that website. For licensing reason the Oracle JDK/JVM cannot be distributed by O/S vendors.
Re:Oracle and the fall of Java EE by ascagnel_ on Friday July 08, 2016 @09:02AM (#12055159)
For one, it'd be nice if it only did what it says on the tin: install Java. There's no reason that a platform like the JRE should be installing a piece of crapware.
Re:Oracle and the fall of Java EE by rblatz on Friday July 08, 2016 @11:00AM (#12055986)
Why should it detect my browser? I want to run Java Applications Lik Minecraft not Java insecure applets in my browser.
Re:Oracle and the fall of Java EE by woogy on Friday July 08, 2016 @09:32AM (#12055323)
You don't need to imagine it, you can just look at what MS has done with .net and the community that's forming as a result. Java has such a horrendous ecosystem, it's really unacceptable.
Re:Oracle and the fall of Java EE by StevePerkins on Friday July 08, 2016 @10:43AM (#12055879)
1. I check in on .NET Core and ASP.NET Core every few months, to see if the tooling and documentation have stabilized. I just happened to check in yesterday, trying to create a "Hello World" ASP.NET Core web app. The skeleton project created by the "dotnet new" command doesn't match the "Getting Started" documentation on the ASP.NET Core website. After tinkering in frustration for an hour, I gave up. See you again in another few months.

2. What .NET open source community? I'm not aware of single significant open-source community project in that ecosystem that isn't a lagging imitation of something from the Java community (e.g. Akka.NET, MassTransit, etc). There's a lot of excitement around VS Code, and the possibilities of future stuff on .NET Core, but chatter on HN and Reddit isn't the same as actual shipped code.

3. If by "ecosystem" you mean web forums filled with college students chatting about it, then fine. But I think for most people, "ecosystem" refers to the availability of production-grade libraries and infrastructure components. Try naming one server-side niche in which Maven Centrals lags behind any other language in existence.

Re:Oracle and the fall of Java EE by treehau5 on Friday July 08, 2016 @10:40AM (#12055845)
> Java has such a horrendous ecosystem, it's really unacceptable.

This has not been my experience at all. Java's ecosystem and vast libraries of battle tested software is unmatched on any platform.

Re:Oracle and the fall of Java EE by dloose on Friday July 08, 2016 @02:54PM (#12057832)
You need to explain what you mean by "ecosystem".
Re:Oracle and the fall of Java EE by filereaper on Friday July 08, 2016 @12:55PM (#12056922)
We'd be in a much better world if IBM or Redhat had taken over Java.

That being said IBM is working on open-sourcing their core JVM technology to act as platform, not just for Java but other runtimes as well. [1]

There is hope still...

[1]http://www.infoworld.com/article/3014128/open-source-tools/i...

Re:Oracle and the fall of Java EE by smrtinsert on Friday July 08, 2016 @10:12AM (#12055597)
I'm exactly the same way - every language/platform I've explored has been frankly a waste of time sadly. In the meantime, Java instead has learned to scale down beautiful as well. Working in the node ecosystem lately has made me appreciate many times more, it's incredible how unproductive it is.

I still find it the gold standard of language/platform combos.

Re:Oracle and the fall of Java EE by huherto on Friday July 08, 2016 @10:28AM (#12055738)
The npm is a mess.

Granted, Maven Central has the advantage of Java being statically type checked.

But CPAN is awesome. And Perl is dynamic. But modules in CPAN are thoroughly unit tested when you install them.

npm is neither. You find incompatibilities when you run it.

Re:Oracle and the fall of Java EE by hyperpallium on Friday July 08, 2016 @09:44AM (#12055397)
Enterprises dislike unnecessary change, so they wouldn't abandon java even if there was a technically more suitable alternative - they stuck with COBOL long after C was established. They will stick with java for a LONG time, not for a good time.

Yet, java was (as someone recently disparagingly put it) "designed by adults". By people familiar with state of the art language research, what was needed and workable, comprehensive specs of language and VM, and complete stdlibs, docs and tools from the get-go. (That is, disparaging to other languages)

And it's also managed to keep up to date, much better than I'd ever have thought: fast JVMs, language evolution, stdlib extended - and perhaps the greatest number of 3rd party libraries of any language ever(?).

Oracle is wrecking that for EE, and may wreck more.

Re:Oracle and the fall of Java EE by hinkley on Friday July 08, 2016 @12:21PM (#12056655)
I was an early Java adopter. And as much as I'm convinced that Larry Ellison hunts humans for sport, the fact of the matter is that Sun got dazzled by bullshit long before Oracle got their mits on it.

The truth is, J2EE 1.0 was not designed by grown ups. It was designed by college kids and academics who ironically enough wouldn't know the 8 fallacies of network computing if it but them on the ass.

Because it DID bite them on the ass and we have nearly 5 years of vendors flaunting and then polluting the spec to prove it.

Then we have Josh Bloch, who everyone but me thinks is great, who introduced Duck Typing to the JDK (MethodNotImplementedException) and only later confessed that he couldn't understand variance. People defend their bad code by pointing to similar code in the JDK, and Bloch stunted the growth of an entire generation of developers. Then repeated the exact same mistakes at Google.

Me, I'm waiting for a language that Bloch had nothing to do with, and I want to get back to working in limited resource environments. My eye is on Rust right now, and I have my fingers crossed.

Re:Oracle and the fall of Java EE by acdha on Friday July 08, 2016 @11:03AM (#12056006)
> Enterprises dislike unnecessary change, so they wouldn't abandon java even if there was a technically more suitable alternative - they stuck with COBOL long after C was established

This isn't a great comparison because C was, and still is, a much lower-level language than COBOL. If you're looking at that from the perspective of a large organization with millions of lines of code, it's hard to justify the claim that C is “technically more suitable”, because the things C does better are largely irrelevant to business apps while the ISO standard for COBOL includes a ton of higher-level features like an indexed database, first-class support for fixed-precision math (a hard requirement for financial apps), a form library, object orientation, etc. which would need to be maintained as library dependencies in C. Any COBOL programmer would be familiar those but each C developer would need to get used to each application's particular selection of libraries.

A better comparison would something like Java or .Net which both have standard answers for most of those questions and, perhaps unsurprisingly, were quickly adopted by companies trying to move new development away from COBOL. As far back as the mid-90s, a popular approach was to move the front-end into Java (or, later, a web app) and start chipping away at the decades of backend COBOL code running on a big central server.

Re:Oracle and the fall of Java EE by nix0n on Friday July 08, 2016 @10:00AM (#12055509)
Can Java EE be developed on OpenJDK?

Can OpenJDK create a fork of the whole Java ecosystem when Oracle wrecks it?

Re:Oracle and the fall of Java EE by geodel on Friday July 08, 2016 @12:12PM (#12056567)
I think the fundamental issue which many people do not want to admit is that Oracle puts humongous money in Java and Java EE(in past at least). Without that all the Java activists and Java EE guardians etc are unlikely to ship large working products like new versions of Java/JavaEE.
Re:Oracle and the fall of Java EE by sievebrain on Friday July 08, 2016 @04:42PM (#12058494)
This. Also, despite the general hatred of Oracle, something else that is hard to admit is they've managed Java a lot better than Sun has done. The people building Java now are long-term team members who clearly weren't recognised and elevated by Sun, but who have been by Oracle.

Love 'em or hate 'em, Oracle didn't turn into a factory farm of cash cows by being entirely incompetent.

Re:Oracle and the fall of Java EE by Svenskunganka on Friday July 08, 2016 @09:34AM (#12055335)
I'm not familiar with either Java nor Golang, but I'd love to hear what you're looking at when you see shortcomings in Golang. I am genuinely curious and are very interested in what enterprises are looking at when they are browsing new tech.

My mother is a COBOL programmer for one of the largest banks in the EU, and I always enjoy listening to her explaining their systems (IBM Mainframe, Batch processing, etc).

Re:Oracle and the fall of Java EE by mmargerum on Friday July 08, 2016 @10:51AM (#12055937)
Not many. The only deal breaker I've hit is the inability to return multiple result sets with the built in SQL package.

I haven't missed generics that muc, but it would be nice to be able to do things like sorting without implementing a sorter interface.

I can live with this though because everything I've written in go so far had been easy to reason about and most importantly it "just works". I can read anyone's code an understand what it's doing. Can't really say that's been true in the 25 years I've been doing this.

Re:Oracle and the fall of Java EE by toqueteos on Friday July 08, 2016 @10:58AM (#12055975)
I would enjoy a lot reading her stories, you should write those on a blog.
Re:Oracle and the fall of Java EE by Svenskunganka on Saturday July 09, 2016 @06:23AM (#12060867)
Would be really fun and informative writing a post about her work! I'm gonna ask her tomorrow! :)
Re:Oracle and the fall of Java EE by ufmace on Friday July 08, 2016 @09:08AM (#12055196)
I've worked on the Microsoft stack for most of my career, and I'm curious what Java has/does that the .NET stack doesn't. Or is that more about the .NET core stuff for running on Linux-based systems?
Re:Oracle and the fall of Java EE by hitr on Friday July 08, 2016 @09:41AM (#12055377)
I also work in .NET stack but until now(before .net core), the entire CLR was a blackbox and could only run on Windows.Obviously we had Rotor released but license was restrictive and there was Mono but in my experience mono was far from production ready when it came to asp.net. In terms of the IDEs like VS or IntelliJ or a supported production ready server (kestrel like) there was not much option.

I think the place where java still shines is JVM.There are myriads of JVM implementations out there which is suited for all kinds of purposes.And with the same flexibility ,there are functional languages like Scala or Clojure which targets JVM where all existing java libraries can be used for your new shiny language of choice.Of course .NET has F# or DLR (which I feel is another layer added on top of CLR and I couldn't like it).

What I see is .net has ports for most of the java frameworks or libraries e.g spring,hibernate,lucene,akka you name it. With .NET core being open and F# and C# being super awesome on it's territories (yes am biased :) ) ,we may have good contender to java in some more time.

Re:Oracle and the fall of Java EE by nickpeterson on Friday July 08, 2016 @09:44AM (#12055398)
A lot of it is that the JVM is used by devs to build large systems more commonly than .NET, and often work from that gets open sourced. So the JVM just has a larger presence in the developer community. Another reason is that historically many developers disliked Microsoft and SUN did a lot to foster goodwill among developers.

Oddly, SUN got purchased by one of the few companies everyone hates more than Microsoft. That paired with MS's recent shift to open source and opening the dotNet platform has led to softer view of Microsoft overall.

Re:Oracle and the fall of Java EE by bitL on Friday July 08, 2016 @10:19AM (#12055671)
Java was the original .NET. Read history of Sun vs Microsoft. C# was a result of a merger of Java + Delphi, visual .NET components are based on Borland's VCL design. Many Java developers were extremely allergic to MS and the vibe at that time was "freedom", especially from nasty companies. Java also got its foothold in finance institutions due to easier design of distributed and transactional systems than the prevailing super difficult CORBA which propelled its rise everywhere. If you look at distributed systems, Java is still the king there.
Re:Oracle and the fall of Java EE by hinkley on Friday July 08, 2016 @12:31PM (#12056735)
There were also several large business sectors that ran almost exclusively Sun hardware. Like the wireless industry 10 years ago. The first project I worked on at scale had to run on Solaris or they wouldn't talk to you.

And our log files had to be localized, which while Java is not perfect, few if any string interpolation libraries match it for being able to deal with written languages that have a different sentence structure than English. It was hard work and one of my coworkers had to invent a new linter to detect unlocalized text in our code, but I couldn't imagine fulfilling those requirements in another language.

Re:Oracle and the fall of Java EE by sigzero on Friday July 08, 2016 @09:12AM (#12055220)
The JVM runs on just about everything. The .NET stack doesn't.
Re:Oracle and the fall of Java EE by flamedoge on Friday July 08, 2016 @09:32AM (#12055327)
Diversity through age. Only a matter of time before .NET spreads. Anything written in "first-class" language can be compiled and run with mods on turing complete systems.
Re:Oracle and the fall of Java EE by woogy on Friday July 08, 2016 @09:33AM (#12055334)
The latest .NET version is fully cross platform.
Re:Oracle and the fall of Java EE by TheCoelacanth on Friday July 08, 2016 @10:00AM (#12055510)
That's .NET Core, which is incompatible with .NET, so it's a completely new ecosystem so it has no where close to the maturity of Java or normal .NET.
Re:Oracle and the fall of Java EE by broodbucket on Friday July 08, 2016 @09:45AM (#12055403)
It's far from mature, though, even if it's deemed stable. If I was making decisions for some huge enterprise I'd prefer Java since it's been battletested on Linux for decades.
Re:Oracle and the fall of Java EE by hinkley on Friday July 08, 2016 @03:56PM (#12058214)
Microsoft doesn't know the meaning of the word cross platform, and never has. The conditionals on their latest cross platform offering do little to repair that image.

They only go far enough to bait and switch you and then after they get you they cut funding for maintenance and the cross platform bits rot away.

Re:Oracle and the fall of Java EE by jboles on Friday July 08, 2016 @05:55PM (#12058908)
This is a downside of any open-source project and is not specific to Microsoft.
Re:Oracle and the fall of Java EE by spriggan3 on Friday July 08, 2016 @09:45AM (#12055404)
.Net Core =/= .Net
Re:Oracle and the fall of Java EE by soundoflight on Friday July 08, 2016 @09:38AM (#12055360)
And runs on more platforms than Java.
Re:Oracle and the fall of Java EE by jinst8gmi on Friday July 08, 2016 @10:45AM (#12055900)
Care to name some of these platforms which Java doesn't run on which .NET supports? I'm having a hard time coming up with even a very short list.
Re:Oracle and the fall of Java EE by soundoflight on Monday July 11, 2016 @10:10AM (#12071128)
Also, Xamarin makes .NET runnable on Android with their runtime and compile it down for iOS.

.NET Microframework makes it runnable on IoT.

Re:Oracle and the fall of Java EE by jinst8gmi on Monday July 11, 2016 @12:35PM (#12072221)
I don't think Android is a good example of a platform which .NET supports which Java doesn't since Java is the primary development language for Android apps...

I'm also pretty sure that embedded Java is widely deployed in IoT applications.

Re:Oracle and the fall of Java EE by rafaelvasco on Friday July 08, 2016 @01:08PM (#12057020)
Well , not .NET but almost:

PS4 (MonoGame/Mono) XBox One (.NET Core on the future and MonoGame/Mono)

At least you can run c# code on those platforms. Java though is unlikely to ever happen.

Re:Oracle and the fall of Java EE by coldtea on Friday July 08, 2016 @09:17PM (#12059627)
So the "platforms" are 2 game consoles?
Re:Oracle and the fall of Java EE by kitd on Friday July 08, 2016 @09:58AM (#12055495)
Citation needed.
Re:Oracle and the fall of Java EE by tremon on Friday July 08, 2016 @11:31AM (#12056212)
Sane documentation. It's been ten years since I've used Java, but Sun's Java API documentation was lightyears ahead of what MS was offering. Both in terms of layout/navigation and in actual content.
Re:Oracle and the fall of Java EE by krylon on Friday July 08, 2016 @11:47AM (#12056326)
I am not a big fan of Java and have not touched it in many years, but I agree the documentation was really, really good.

Java' documentation as I remember it is still better than Microsoft's.

Re:Oracle and the fall of Java EE by djsumdog on Friday July 08, 2016 @05:27PM (#12058783)
I really prefer Scala as my current JVM language. The language is way ahead of Java, but the documentation is a little mind-stabbing .. as is the syntax .. and implicits.
Re:Oracle and the fall of Java EE by lucio on Friday July 08, 2016 @10:50AM (#12055927)
MS saw the rise of java in the enterprise business as a real threat to their core revenue stream, so they copied the entire idea. .NET runtime is akin to the JVM, the architecture is the same. What MS did for differentiation is to decouple the lang from the VM from the start, the you have C#, VB.NET, F#

In the java world there's something similar, but it is no designed from the start for several high-level language flavors.

OpenJDK still was a threat, so they're (MS) more inclined now to open source NET Core.

Today you can choose Java & NetBeans over .NET and V.Studio and will see only minor differences. I mean in tooling and architecture. Today Java seems closer to Open Source than MS, even if MS is "trying". Java & Netbeans are the same on Windows or Linux, of course NET is not.

Re:Oracle and the fall of Java EE by nickbauman on Friday July 08, 2016 @11:55AM (#12056408)
For far too long Microsoft claimed "runs on all platforms" which to them meant "runs on all versions of Windows". They have recently changed their tune on this somewhat, but it was too little, too late for most of us. I don't think I will ever run windows again in my lifetime.
Re:Oracle and the fall of Java EE by dkersten on Friday July 08, 2016 @09:32AM (#12055326)
...have their beginner-friendly charms, but are limited by the lack of type checking...

Haskell people probably say the exact same thing about Java ;-)

Re:Oracle and the fall of Java EE by preordained on Friday July 08, 2016 @02:47PM (#12057781)
For sure they do. But I've spent my time with Haskell and I've seen really simple things obscured under a cacophony of type noise. It's not uncommon at all to see a piece of simple logic with proportionately 3x the amount of type syntax around it or related to it. Especially when you need to do IO or state, as we sadly need to do here on earth, then it seems like Haskell is trying to put a brick wall of type restrictions between you and a simple routine at every turn. Talking not about doing some printouts, but actually making a long-running application where IO and state is ubiquitous.
Re:Oracle and the fall of Java EE by mohaine on Friday July 08, 2016 @09:29AM (#12055309)
# 3. Java EE is legacy tech. While deeply entrenched, most of the work out there for it today consists of maintenance or migration to more service-friendly approaches like Spring or Dropwizard.

While I mostly agree with you, Spring _IS_ J2ee based. (i.e. Servlets/JAX-RS both part of J2ee). Sure it doesn't use EJB but I don't think anybody does (non legacy) at this point.

Re:Oracle and the fall of Java EE by specialist on Friday July 08, 2016 @09:55AM (#12055465)
Java EE is just a collection of libraries. JMS, JNDI, etc.

Said mostly in humor (from long suffering):

The distinction between J2EE and Spring is pretty simple. EJB is a data persistence obfuscation library, whereas Spring's DI/IoC "framework" is an exception (stack trace) obfuscation library.

Re:Oracle and the fall of Java EE by mohaine on Friday July 08, 2016 @01:12PM (#12057062)
The distinction isn't very clear. As you say J2ee is just a collection of libraries, of which Spring web services happen to use a subset of.Servlets/JAX-RS off the top of my head.

Of course Spring doesn't leverage ALL of J2ee but I wouldn't except anything to use all J2ee. There is a lot there.

Re:Oracle and the fall of Java EE by geodel on Friday July 08, 2016 @12:19PM (#12056638)
Thank you. Maybe you don't know but you have given very apt description of Java land frameworks.
Re:Oracle and the fall of Java EE by pieterh_pvtl on Friday July 08, 2016 @03:13PM (#12057932)
I wouldn't say it's Java EE based, acutally. It's a superset of Java EE. It's wraps the APIs people still actually care about like JPA, Servlet, and works with JAX-RS. The rest of the Java EE APIs are pretty much irrelevant these days, as evidenced by the constant introduction of new "profiles".
Re:Oracle and the fall of Java EE by cesarb on Friday July 08, 2016 @02:35PM (#12057714)
> 2. The toolbar malware, while stupid beyond measure, only applies to the consumer Java installer, which nobody installs anymore due to item #1 above.

Here in Brazil, the program used to submit the income tax forms is written in Java (http://idg.receita.fazenda.gov.br/orientacao/tributaria/decl...). This means that a lot of people need Java on the desktop. I have relatives which have Java installed on their computers solely for that reason (yes, I have disabled the Java plugin on their computers).

Re:Oracle and the fall of Java EE by bradleyjg on Friday July 08, 2016 @10:06AM (#12055558)
I wonder how difficult it would be to port C# to the jvm. It really is a better language. There are some parts of the standard library that are better in java, but overall I'd say C# is better there too.
Re:Oracle and the fall of Java EE by jpliska on Friday July 08, 2016 @10:18AM (#12055654)
Check out kotlinlang by Jetbrains. It's git the best of java, C# and python
Re:Oracle and the fall of Java EE by dloose on Friday July 08, 2016 @03:06PM (#12057893)
Or Ceylon! It looks a lot like Java in some ways, but with a really novel type system.

Kotlin is nice too though.

Re:Oracle and the fall of Java EE by pron on Friday July 08, 2016 @10:14AM (#12055621)
You could say that Kotlin has already done it.
Re:Oracle and the fall of Java EE by huherto on Friday July 08, 2016 @10:30AM (#12055759)
Care to list what the C## language has that the Java Language doesn't?

I guess, you don't miss what you don't know.

Re:Oracle and the fall of Java EE by m_fayer on Friday July 08, 2016 @12:52PM (#12056898)
Just one example, the type system just does more, IMO very useful, stuff.

Richer generics. Dynamic typing is there if you want it. Type inference is great, and then coupled with anonymous types allows for some nifty tool-supported functional-style pipelined programming. (RX and Linq). Upcoming language support for tuples looks pretty sweet too.

Re:Oracle and the fall of Java EE by hitr on Friday July 08, 2016 @12:10PM (#12056548)
I have worked on both languages and I have not disliked anything about java.Not here to start a flame war. I heard many times from who have extensively worked on both that supports for generics in c# is far superior than java.And obviously LINQ goodness and async\await comes to mind
Re:Oracle and the fall of Java EE by nikon on Saturday July 09, 2016 @04:06AM (#12060630)
From my limited experience using Java after C# 6.

Type inference, C# properties (vs. getters/setters in Java), generics are way better, and of course Linq.

Java 8 makes this a bit better with lambdas but it's still a bit of a pain not having the above present. I still like Java though.

Re:Oracle and the fall of Java EE by agmcleod on Friday July 08, 2016 @09:14AM (#12055236)
I've had a mix of maintainable and rough apps on the rails side of things. I think with a good test suite, one can really build a solid app using Java these days. As you said there's a lot more modern approaches now as well. It's something I'd like to explore maybe a bit later this year, after I do some more messing around with Rust :)

Given it sounds like you use Java, what tools/stack do you use with it day to day?

Re:Oracle and the fall of Java EE by xorcist on Friday July 08, 2016 @10:20AM (#12055681)
> the browser plugin for using applets, which hasn't been widely used in 15 years

Oh, by all the possible deities, how I wish that was even remotely true...

Re:Oracle and the fall of Java EE by krylon on Friday July 08, 2016 @11:57AM (#12056422)
Amen to that!
Re:Oracle and the fall of Java EE by Qantourisc on Friday July 08, 2016 @09:35AM (#12055344)
#2 is not the case: for still quite a few bank and government software in Belgium :/

Although when not needed on a PC I tend to remove it asap (Java)

Re:Oracle and the fall of Java EE by gosukiwi on Friday July 08, 2016 @02:10PM (#12057549)
> Python/Ruby/Node have their beginner-friendly charms, but are limited by the lack of type checking and/or chaotic ecosystems.

Don't know much about Python but at least for Ruby, the ecosystem is not "chaotic", it's just way faster moving compared to something like Java, which is stale af.

It's quite easy to manage Ruby projects, I think the only disadvantage to this language is it's quite slow. But does it really matter? For most use cases it's just fine.

As for the lack of type checking, I think that's a poor comparison. Type checked code is not always better than dynamic code, and dynamic code it's not always better than type checked code; They are different.

Maybe for an army of junior developers leaded by a 90's senior developer with a mustache and thick glasses, a boring safe language like Java is the best. For a team of experienced developers with deadlines, Rails can get the job done in a quarter of the time.

Re:Oracle and the fall of Java EE by devcamcar on Friday July 08, 2016 @08:07PM (#12059424)
Step into the Scala/Akka light my friend :)
Re:Oracle and the fall of Java EE by aryamaan on Friday July 08, 2016 @09:06AM (#12055181)
What are actual Java's shortcomings?
Re:Oracle and the fall of Java EE by huherto on Friday July 08, 2016 @11:05AM (#12056017)
> What are actual Java's shortcomings?

I guess, it depends on the application.

- I would not use Java for desktop applications.

- Not for small quick and dirty scripts that I will use once on a while. I use Perl for that.

- Neither for command tools. Start up times may be an issue.

- For server applications, java is great.

Re:Oracle and the fall of Java EE by dozzie on Friday July 08, 2016 @12:02PM (#12056458)
> - For server applications, java is great.

...unless it's not the main application run by the server (like in auxiliary services, message spooler, monitoring agent, some kind of cleanup service, stuff like that). Then its memory usage is a mess.

Re:Oracle and the fall of Java EE by thanatropism on Friday July 08, 2016 @09:29AM (#12055307)
Mostly OOP's shortcomings. c2 wiki will lead you to much discussion on how "design patterns" are a band-aid patch for the deep, deep problems with massive OOP projects.
Re:Oracle and the fall of Java EE by spriggan3 on Friday July 08, 2016 @09:50AM (#12055439)
The problem isn't OOP, OOP's fine. The problem is how Java implemented Objects in a fairly rigid way which led to all this insane boilerplate. Furthermore design patterns aren't tied to OOP. And finally design patterns =/= JEE patterns .
Re:Oracle and the fall of Java EE by thanatropism on Friday July 08, 2016 @12:12PM (#12056566)
There are about as many definitions of OOP as there are programming languages.

I'm not a software developer and have no dog in this fight. Sometimes I use Matlab's idea of OOP to factor out code by domain of representation (so simulations of agricultural yields are instances of a LandUnit object with some properties and one or two methods); never to abstract programming out the way OOP design patterns do.

I'm more attracted to the Haskell style of types and type classes, as far as "abstracting progrmaming out" goes, but I don't do any programming in the large, so what the hell do I know. I just pointed to the debate between people who should know, c2 wiki is very good on the things I do know.

Re:Oracle and the fall of Java EE by huherto on Friday July 08, 2016 @10:16AM (#12055634)
Mostly a problem of how people use OOP.

I don't think there is a problem with the Java Language or the JVM.

Re:Oracle and the fall of Java EE by AnimalMuppet on Friday July 08, 2016 @03:26PM (#12058026)
Well, see, there are deep, deep problems with massive software projects. They don't have to be OOP.

But if you don't use OOP, what are you going to use that makes things significantly better? "There is no silver bullet", as Fred Brooks said.

Re:Oracle and the fall of Java EE by abpavel on Friday July 08, 2016 @09:38AM (#12055363)
Imagine you have two java apps on your pc. You want one to have full network access, but restrict the second one. Well, you can't, because application firewall sees both java apps as java.exe
Re:Oracle and the fall of Java EE by ghurtado on Friday July 08, 2016 @11:16AM (#12056099)
Besides the fact that this is a very contrived example, and that this is not how I would go about managing firewall rules (why wouldn't you use ports / services? You trust the security of your PC on just the name of the application?), this is not true in many cases. To pick one: Eclipse (A Java app) does not identify itself as "java.exe".
Re:Oracle and the fall of Java EE by prodigal_erik on Friday July 08, 2016 @04:31PM (#12058424)
Eclipse isn't a java app, it's a native app that happens to start a JVM that drives native widgets. If you ship a new platform tomorrow, and someone ports a JVM to it, java apps will Just Work, but eclipse still won't run until SWT and the launcher get ported.
Re:Oracle and the fall of Java EE by sk5t on Friday July 08, 2016 @11:13AM (#12056071)
This seems more like a complaint about the Windows firewall... and most people don't care to restrict network access on a per-app basis anyway--plus, any application with access to other local resources could very likely find some way to send network traffic besides opening its own socket.