You may have noticed that I stopped posting my bi-weekly summary of compiler fixes. I plan to pick it up again when JDK 7 development takes off.
Right now is kind of a slow period and that is nice. Later today, JSR 199 should move to the final approval ballot (FAB). This is the last stage it needs to go through before the final release which is delivered in JDK 6. All JSRs including the umbrella JSR for the release must go through this process before we can ship the release.
The only changes that we will make to JDK 6 at this time is to fix show stopper issues. This means that most of my team is looking at either improving documentation, writing sample code, making it easier to build the compiler, or JDK 7.
Personally, I'm procrastinating on writing compiler documentation by fixing bugs to go into JDK 6 update 1 and JDK 7. So far I have lined up a little over twenty fixes. I'll give a summary when I know more about how you can get them. It is most likely JDK 7 b02 but we do not have weekly builds since we are focusing our release engineering and quality resources on JDK 6. So I don't know when.
Besides pruning my bug list, I'm also helping with figuring out which language features Sun would like to see in JDK 7. Clearly, we're looking at code abstraction but there is a lot of other ideas floating around. Another thing we are investigating is if it is possible make generic types a little more convenient. For example, code like this is pretty annoying:
Map<Comparable<? extends Number>, List<Number>> x =
new HashMap<Comparable<? extends Number>, List<Number>>();
James Gosling has returned to the Java programming language and I really like his approach. I think the only problem we have is that we have too many good ideas and just one tiny release to put them into.
I also decided to update the about page on this blog after reading Jakob Nielsen's top ten on blog usability.If i can have a little influence to your bug list, could you append these two bugs that really annoy me.
Else, there is a simple way to simplify
your generics example, by allowing to not
declare the type of local variable and
to infer it.
Using the syntax proposed by james gosling
x := new HashMap<Comparable<? extends Number>, List<Number>>();
Posted by Rémi Forax on October 25, 2006 at 01:31 AM PDT #
C# uses JavaScript-like "var" to declare variables without a type but I'm not too happy about adding new keywords. I like James' idea. There are other solutions in this space and I think we need to investigate them all.
Posted by Peter von der Ahé on October 25, 2006 at 02:09 AM PDT #
Posted by Jonathan on October 25, 2006 at 11:38 AM PDT #
I think the way C# uses "var" makes code harder to read and := is a very nice alternative. However, there are other tricks in C# that I find more attractive, for example, "yield return".
One of the proposed JSRs for JDK 7 is development modules aka super packages (JSR 294). Notice the examples on Gilad's blog uses "export" as a keyword but only in a particular place on (http://blogs.sun.com/gbracha/entry/developing_modules_for_development).
We have to be clever but adding a new keyword is not a valid option and we should have learned that when we added assert. But we repeated the mistake: http://jakarta.apache.org/commons/lang/apidocs/org/apache/commons/lang/enum/package-summary.html.
However, we shouldn't be to clever. James told me that public wasn't a keyword in the very early days. So you could write:
public class public {
public public public;
}
Posted by Peter von der Ahé on October 25, 2006 at 12:12 PM PDT #
For example, I think ref 46171974, immutable types, can be an enormous improvement to the JVM with no changes to the language AND while encouraging a good practice. One of the major drawbacks of the JVM was its lack of support for numeric computations (much required in game programming, for example). An array of complex numbers is truly prohibitive both performance and memory wise.
Of course, escape analysis leading to stack allocation is a big improvement as well, but it does little for objects embedded in arrays, like in the complex numbers example.
Posted by Ron on October 25, 2006 at 03:57 PM PDT #
OK, 6318240 is a bug and I now have twenty-odd plus one bug fixes lined up ;-)
I'm not a big fan of 46171974. I think we need to see where we can get with escape analysis first.
Posted by Peter von der Ahé on October 25, 2006 at 08:13 PM PDT #
Posted by Jonathan on October 26, 2006 at 01:30 AM PDT #
http://www.artima.com/weblogs/viewpost.jsp?thread=182412
Posted by Howard Lovatt on October 27, 2006 at 04:24 AM PDT #
Posted by Howard Lovatt on October 27, 2006 at 04:34 AM PDT #