Rob Williams is a probabilistic Lean coder of Java and Objective-C. Rob is a DZone MVB and is not an employee of DZone and has posted 170 posts at DZone. You can read more from them at their website. View Full User Profile

The Delay of Java 8

04.20.2013
| 5401 views |
  • submit to reddit

Twitter lit up yesterday with the news that Oracle had come out and said Java 8 was going to be late .

In reading the document, I repeatedly stopped and thought ‘this is a pretty nutty piece of rhetoric.‘ It reads like a tortured teenage Dear John letter. ‘I don‘t want to let you down, it‘s me, not you, we know 8 without Lambdas would be a disappointment.‘ Guys, pull yourselves together. In some ways, this is responsible stewardship of the sort you would not expect from Oracle. It has an element of them falling on their sword (admitting the security stuff blew up their plans).

But, another part of me thought ‘hold on a second, the CEO owns a Hawaiian Island and these guys are already throwing down the ‘it‘s just impossible‘ card?‘ Fire one sales guy and I think this project just got back on track (and after the management‘s account of last quarter, you‘d have thought busloads would be dispatched).

Here‘s another idea: I would argue that one of the main advantages of open source is relative elasticity. Here‘s a chance for Oracle to ford the chasm. Why not create a reserve of Java resources that people from anywhere could apply to serve in, like the National Guard, and in times like these, put out a draft call. The people in the reserve would have to go to their bosses and ask for say a month, and then these little militias could do their duty and return to whatever post they were manning before. I know, being both a worker and the boss, I would say yes (to myself, or another team member).

I think this would also be remarkably effective because of the rule we all know about the last 20%. Swarms can be amazingly effective, especially in situations where the navigational vagaries have passed. I really think pushing Java 8 to next year is a major mistake.

 

Published at DZone with permission of Rob Williams, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Tags:

Comments

Clemens Eisserer replied on Sat, 2013/04/20 - 11:37am

know, being both a worker and the boss, I would say yes (to myself, or another team member)

Most likely not a lot bosses would agree to have their employees working on somebody else's software project (from their POV).

Why not create a reserve of Java resources that people from anywhere could apply to serve in, like the National Guard, and in times like these, put out a draft call.

"adding manpower to a late software project makes it later":  http://en.wikipedia.org/wiki/Brooks%27s_law

Simon Ritter replied on Tue, 2013/04/23 - 7:17am

I'm sorry, but this article simply demonstrates that the author know absolutely nothing about how big project development works in real life.  Bring in a few random people to hack on some code (that they have little or no experience of) for a month and then disappear?  Seriously?  The JDK is not some dinky little web app with a few lines of PHP, it's a big, complex project.  If you want quality code you need rigorous design, review and testing.  You also need people who are intimately familiar with the code structure and design.  Clearly the author has no concept of the amount of non-coding work involved in making even small changes to a source code base like this.

I would suggest you read "The Mythical Man Month" for some insight.

Rob Williams replied on Tue, 2013/04/23 - 9:15am

@SimonRitter: pretty hilarious that you claim I know nothing about real life and then prescribe reading a book. I know all about MMM. THe standard trope on this site is from the grumpy, boil-covered troll to come out and slam the author, claiming that they came off of some disney cruise, instead of the hard-scrabble salt mine the comment author has been working. Tell us of your amazing exploits, and don't mind if I am laughing through most of it. You pass judgments based on no information, I'm sure you are a master at your trade.

If you read what I said (I mean all the words), you would probably have noted that I said you could get some acceleration at the stage where things were settled. Also, Brooks' Law is for late software. This is not late yet. They are deciding to make it late by diverting resources off and then back on (why don't you go to Oracle's site and slam them for not being real world)?

Finally, if you read MMM, and didn't just carry around a troll grenade,  you would have noted an exceptions section. See here: http://en.wikipedia.org/wiki/Brooks%27s_law. I think most of these apply to some degree, per my post. But, that would be a world with some grey in it. (I know the exceptions are really far down that page. Maybe you should take it in two passes, or go get some gummy bears: the sugar will help you get there...)

Simon Ritter replied on Tue, 2013/04/23 - 1:46pm in response to: Rob Williams

Oh dear Rob, I seem to have upset you by having the audacity to criticise your point of view.  I hate to break it to you but, if you want to write and publish opinion, you need to get used to the idea that not everyone who disagrees with you is a troll.

I won't bother giving you details of my twenty-five years in software development working on all manner of projects, because I don't think you'd ever feel I was qualified enough to pass judgment on your ideas.

When you say things like, "... for say a month, and then these little militias could do their duty and return to whatever post they were manning before." you've got to expect some comeback.  Nobody who's ever worked on a big software project would ever expect this to solve more bugs than it would introduce, let alone get the project finished quicker.  Please feel free to highlight any [significant] projects you know of that have used this approach successfully (or have even bothered to try it).  

Frankly, if you think that "Fire one sales guy and I think this project just got back on track" proves you know how to run a software project the size of the JDK then best of luck at your next job interview.

Rob Williams replied on Tue, 2013/04/23 - 2:36pm in response to: Simon Ritter

So how does open source manage elasticity? We have all seen a million times how number of committers and commits soar during some periods and then drop to nothing, and many people manage to figure out how to make contributions to projects without having to spend months learning the whole codebase.

Sure, your post was just a difference of opinion. No, the first sentence was a witless ad hominem attack, followed by an equally witless reference to the literature, ignoring most of its content. 

Since you are from Oracle, you can hold the MMM yard stick up to yourself. 

It's not just open source that has managed faster release cycles. Clearly Java has not. The Cocoa team added blocks a few years ago in a release that included a truckload of other stuff, and then added a whole slew of other ones, oh, and their platform has millions of apps, Java has never even penetrated the market for making popular apps, is still mostly used for 'Enterprise' software. Many things have been written about how Apple moves devs around from one product to the next. Wonder how they manage that? Nevermind, good luck with your hole patching..

Rob Williams replied on Tue, 2013/04/23 - 2:42pm

One other simple point: I said have a reserve. The way the reserves work, e.g. the National Guard, is people are trained in advance and then dispatched when needed. 

Zach Hilbert replied on Sun, 2013/05/26 - 6:13am in response to: Rob Williams

I know this is a little after the fact, but I thought I might chime in.

You: Finally, if you read MMM, and didn't just carry around a troll grenade,  you would have noted an exceptions section. See here: http://en.wikipedia.org/wiki/Brooks%27s_law. I think most of these apply to some degree, per my post.



In the section "Open source software development", the article mentions ramp-up time, increased communication, and poor code choices.  Although this is mentioned for "open source", the situation still applies to almost any situation where you have people that haven't been actively developing the codebase for the last few years.

You: One other simple point: I said have a reserve. The way the reserves work, e.g. the National Guard, is people are trained in advance and then dispatched when needed.



Seeing as you don't seem to have a military background, in the military, even the Reserves have up to 6 months ramp-up time (depending on their responsibilities) before they are sent into combat or back into Active Duty.  It's simply impossible to start cold, especially in a large code base or any significant task for that matter.

You: Sure, your post was just a difference of opinion. No, the first sentence was a witless ad hominem attack, followed by an equally witless reference to the literature, ignoring most of its content.



Seems a bit contradictio in terminis.

You: It's not just open source that has managed faster release cycles. Clearly Java has not.



Chief architect of the Java Platform Group at Oracle Mark Reinhold is quoted in an article here:

We have upgraded our development processes to increase the level of scrutiny applied to new code, so that new code doesn't introduce new vulnerabilities. Maintaining the security of the Java Platform always takes priority over developing new features, and so these efforts have inevitably taken engineers away from working on Java 8.



Seeing as though you also do not seem to have a background in security, it may not be obvious that security is probably one of the top concerns for most organizations.  When so may organizations utilize Java software, government and public sector alike, Oracle probably has some significant pressure to reduce vulnerabilities expose by their software.  It's simply not practical or wise to push a release, when it could mean digging a deeper hole for themselves.

You: [The Cocoa] platform has millions of apps, Java has never even penetrated the market for making popular apps, is still mostly used for 'Enterprise' software.



I would use the word hyperbole, but a hyperbole is not meant to be taken literally.  Embellishment might be a better description, but it's way beyond factual.  According to iSource, the Mac store has less than 1 million apps.  Add Time's article of 800,000 Apple apps, and the total number of Mac apps is less than 2 million.  So if by "millions", you meant less than 2 you are close except for the fact that it's not even a plural million.  Also, that same article shows that Andriod has pretty much the same amount of apps and more of a market share than Apple in number of Android platform devices and apps downloaded.  Ironically, iOS appears to be more "enterprise" than Android in the section "Which platform is more widely used in business".  By the way, Android is build using Java, and actually has "penetrated the market for making popular apps" app apparently.

Rob Williams replied on Sun, 2013/05/26 - 9:56am

Wow, those are some important corrections. Let me see if I got them all: it's not millions of apps and the reserves require 6 months (since I didn't say how much prior training, I don't see how that's correcting me, but given the rest of your authoritative tone I'm pretty sure it is).

Obviously Oracle wants to minimize vulnerabilities since the whole world is saying turn Java off now. Of course, that's just in the browser, but...

Android's success is really not that much of a success for Java and Oracle turned around and sued them so Google will never use Java again of course. But if you like to see it that way, please do. 

I still like Java despite its stewardship. That's one of the reasons I thought it a good idea for Oracle to figure out how to keep it on schedule. Letting it slip reinforces all the negative rattletrap that's out there about it. From a company with such vast resources, protecting Java's reputation would seem to be of some import too.

Zach Hilbert replied on Sun, 2013/05/26 - 10:53am in response to: Rob Williams

Well, first of all I want to apologize for my tone and rhetoric.  I guess I didn't realize how I sounded until your reply.  Maybe my coffee hadn't kicked in yet.

Unfortunately, I did that same thing I was frustrated with.  I think developers in general are some of the intelligent and adventuresome people I know.  Considering that most things are moving towards being completely digital, software development is probably more important now than it has ever been.  Since it's such a relatively new structure, a considerable amount of concepts and approaches are up for debate.  This is where the tension lies.  Developers are also very passionate about their trade and discussions get heated almost every where I read.

I think what should be important to all of us as developers is to work harder to support each other's efforts, instead of arguing about who is right or wrong.  We could probably make even larger strides towards understanding the art and science of software development and which processes contribute the best towards the end goal of creating valid and useful software products.

I'm sure you have a lot more experience with software than I do, and by which you have better insight into situations like release cycles and community developed software.  And for this I apologize for my tone.

Rob Williams replied on Sun, 2013/05/26 - 11:09am

Wow, apology was not really necessary, and I did deserve a trim if not a full haircut for my comments. 

Believe it or not my original post was trying to be kind of funny about asking Oracle to support the poor people who are trying to patch the roof and build a new room. I appreciate your sentiments about programmers: well said. Part of what drove this to me is that I think 8 is a very important release for two huge reasons:

  1. Though I attended Josh Bloch's preso against adding closures to Java, I have come around on that and now believe they will be a very welcome addition for a number of reasons, not the least being that async has to be easier and more integrally doable in the age of connecting lots of services.
  2. Java is a pretty awesome language. Frankly most of its troubles have been too many choices, not enough clear and forceful leadership, and too much time to make things happen. All those are fixable.
I have used JSF since the bloody beginning. I saw a recorded Google Hangout the other day where a dude was talking about making Bootstrap components using Dart. Everything he was really excited about: custom tags, dropin reuse, etc., JSF had almost a decade ago. Problem is, JSF never made it easy enough so most people don't even know what's possible. And why doesn't JSF have a bootstrap integration story? Bootstrap has taken over web dev and JSF could be integrated with it beautifully. So I am not just chucking grenades. I would like to see some of these things happen. 

Zach Hilbert replied on Sun, 2013/05/26 - 11:50am in response to: Rob Williams

I certainly agree with you about the "poor people" and trying to patch gaping holes.  There is so many things we as developers should learn to integrate to make our code more stable and secure.  Async is definitely a HUGE part of application development, especially since there is way more data being processed on a regular basis.

There are a lot of Java technologies I would like to learn.  I am currently working with the Play Framework after debating for quite some time with my interest in Spring.  Although, I don't really have a language or technology preference since so many different parts need to integrate together anyway.  My goal is to just keep learning, so maybe one day I can contribute to creating to a JSF bootstrap integration.

Thanks for your comments.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.