Slashdot Mirror


Sneak Peak at Java's New Makeover

SadatChowdhury writes "Aside from templates as already reported in a past slashdot article , a little snooping around revealed the details of the following newly revealed features in the upcoming release of Java 1.5 (codenamed: Tiger) : Autoboxing , Enhanced-For-Loop, Enumerations and Static Imports . Must read for Java fans." In related news: jdkane writes "Sun Microsystems delays a much-anticipated Java specification by three months to comply with guidelines designed to keep Web services interoperable. Says Ralph Galantine, group marketing manager for Java Web services at Sun: "We thought that this change was important for the industry, so that there was no conflict between J2EE 1.4 and the WS-I, "We thought it was worth taking out to the summer." It's very refreshing to hear that a big software company is looking out for the industry, instead of just their own."

5 of 114 comments (clear)

  1. Re:New and Improved for()! by Twylite · · Score: 5, Insightful

    I am in awe of the new for() statement. Java was designed to be logical and readable, but unfortunately for (String s : c) means nothing to most developers.

    The JCP is a classic case of committee design: everyone has their own ideas based on their experience, and doesn't really understand the purpose or path of the Java language. Most JCP suggestions are calls for Java to look more like C++ or Python.

    --
    i-name =twylite [http://public.xdi.org/=twylite], see idcommons.net
  2. Yuck. by crmartin · · Score: 5, Insightful
    It's someone or others' law that all programming languages eventually grow too many features to remember. (Hell, it might even be my law.) So, let's see -- we're getting:
    • templates from C++;
    • a new style of emun that does everything the Pascal enum does with a syntax that looks like a C enum except that it can have methods, AND MORE;
    • a whole new foreach syntax that has the stellar advantage that the syntax doesn't resemble anything on God's green earth except Smalltalk, which is a pure prefix language like Lisp instead of an algol block language like C, C++, Java, C-hash, pascal or Ada (where the other features come from);
    • generics using the template model from C++, which was a horrible hack on top of C++ because it was hard to make a backward compatible syntax (so instead we got ANOTHER class of macro to add to the #define) when C++ was a horrible hack on top of C so that at least C++ could compile C programs (except now it can't);
    • a grammar that is going to be about LL(497) (doesn't anyone remember how ugly parsing C++ got to do templates, and how long it was before it worked?);
    • and a whole wonderful new term ("autoboxing") for the notion that primitive types and class types ought to both have all the properties of types.
    I know I'm probably just getting old, but Jesus!, why do we need to repeat all the mistakes of the past?
  3. Yes, although generics != templates by melquiades · · Score: 4, Insightful

    The poster is a little off in calling the new feature "templates", and you're correct in calling them "generics".

    Templates were C++'s way of simulating generic types. The difference is that templates are essentially macros in fancy clothing, and generate a different flavor of the class for every combination of type parameters, while generics are a much cleaner, more abstract construct, better grounded in the theory of types, which use polymorphism to achieve their genericity.

    Don't know if that made any sense....

    In any case, this will be a fantastic feature, and they're done a much better job with it than C++ did with templates.

  4. Re:New and Improved for()! by bwt · · Score: 4, Insightful
    I agree with using "in" instead of ":", but I see no reason to change "for" to "foreach". Needlessly proliferating keywords is a bad thing, but given that they have to add ":", the more readable "in" is better.
    for (String s in c)
    seems like the best syntax to me.
  5. Re:Silly Java... by Pseudonym · · Score: 4, Insightful

    The colon syntax is not random. It's well-known and well-understood mathematical notation, namely Zermelo-Frankel set comprehension notation:

    { x \in N : x > 10 }
    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});