Java 8.0 Wishlist (Take 2)
Join the DZone community and get the full member experience.
Join For FreeOk so it's it been a while since my last article on this topic...
The comments of course have been first rate, with opinions on
the wish-list have ranged from outright agreement to threats of violence
for even having such boneheaded ideas.
It's all good of course, the thing that I love about the Java community
is that we take the ideas and actually question them. Something I felt
the .Net world could do more with.
But anyway It's worth going through the list and giving a little
rationale and meat on the wish-list, specifically on those that seemed
to generate a lot of comments, so here goes...
Properties.
Now I'm going to debate the OO nature of properties. Fact is that - for
better or for worse - JavaBean style properties have become baked into
Java and it's frameworks. So why not at the bare minimum tell the
compiler you want to generate getter and setter methods with syntax
sugar. And yes IDE's generate this for you, but I'd still prefer for the
sake of brevity get rid of code that does stuff all.
Operator Overloading.
Easily the most contentious point. However let me give you my
background: I recently did a lot of work doing monetary calculations.
which defined in an Excel spreadsheet by an Actuary. The only way I
could get Java code to match the excel spreadsheet was to use ye olde
BigDecimal. The code that came out is painful to say the least, mostly
due to the lack of operators. Now BigDecimal is on the operator
overloading todo list for Oracle, however it's painful having to wait,
and the fact is that it's hard to build very expressive arithmetic types
in Java.
Alternative deployment formats besides the JVM and a classpath.
Ok this one seemed poorly presented. Basically I want to be able to
compile a set of Java classes down into a native executable and deploy
that. Even if all the executable does is wrap the classes together with a
JVM. You ask why; that's easy I want to run Java apps on iOS.
Parameter names in method calls.
Ok so lets assume I have a method as follows:
public void crappyGFXtask(int startx, int starty, int secondx, int secondy, int lastx, int lasty)
I dare you write the code to call it, leave it for a few days and then go back to it, and see if you can make sense of the parameters. Named parameters simply give you ability to map the parameter names to values ala Objective-C so your call to the method would look something along the lines of:
crappyGFXtask(startx:10, starty:11, secondx:25, secondy:40, lastx:myVariable, lasty:myVariable)
Proxies on Abstract classes.
Yes Spring does this already, but guess what: I don't use Spring in
every Java project I do (yes pigs are flying). It's a generally useful
feature and JDK support would be sweet.
Ok hope that clarifies things.
From http://dotneverland.blogspot.com/2011/07/java-80-wishlist-take-2.html
Opinions expressed by DZone contributors are their own.
Comments