×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Java SE 7 Finally Approved By JCP, 13 To 1

timothy posted more than 2 years ago | from the even-though-there's-a-committee dept.

Java 101

medv4380 writes with news from InfoWorld about the near-term future of Java: "Java Platform, SE (Standard Edition) 7 has been passed this week by the JCP Executive Committee for SE/EE (Enterprise Edition), by a vote of 13 in favor and 1 — Google — against. Oracle, IBM, VMware, Red Hat, and Fujitsu are among the affirmative votes, and two committee members — Credit Suisse and Java architect Werner Keil — did not vote. Specifically, committee members voted on Java Specification Request 336, which pertains to the Java upgrade. Voting on the public review ballot for Java SE 7 finished up earlier this week after beginning on May 31. Java SE 7 still faces another vote on a final approval ballot."

cancel ×
This is a preview of your comment

No Comment Title Entered

Anonymous Coward 1 minute ago

No Comment Entered

101 comments

GOOG (1)

Metabolife (961249) | more than 2 years ago | (#36398862)

"While Google supports the technical content of this JSR, we are voting no because of its licensing terms"

Typical

Re:GOOG (4, Informative)

dkf (304284) | more than 2 years ago | (#36398898)

"While Google supports the technical content of this JSR, we are voting no because of its licensing terms"

Typical

Interesting that they view the licensing and transparency as deal-breakers [jcp.org], and doubly interesting that a majority of the committee members feel somewhat supportive of that position (but not enough to vote against).

Re:GOOG (4, Insightful)

Metabolife (961249) | more than 2 years ago | (#36398944)

Interesting that they view the licensing and transparency as deal-breakers [jcp.org], and doubly interesting that a majority of the committee members feel somewhat supportive of that position (but not enough to vote against).

How I understand it is this: The licensing terms restrict Google from making their own platform specific version using the spec. It basically stops Google from rebranding Java to "Gava" and using it as the language of choice on Android.

Re:GOOG (0)

Anonymous Coward | more than 2 years ago | (#36399196)

Its Software. People want to make stuff with it. If Google wants to make Gava for Android, they should be able to. Its sad to see the Sith Lord(Oracle) turn Anakin(Java) to the dark side. I still have no clue why Google never bought Sun? They should just buy Oracle, take poor carcass of sun, and any other meaty morsels, and shat out the useless remainder.

Re:GOOG (5, Informative)

Anonymous Coward | more than 2 years ago | (#36399886)

No, the license terms prevent Google(actually Apache) from releasing a non GPL implementation of Java (Apache Harmony). The FOU restrictions are inherently incompatible with ASL.

And it is only a FOU restriction on the TCK. The Testing Compatability Kit. In order to be declared a conformant implementation of Java you must pass the TCK.

Until Harmony passes the TCK, (which would break the ASL) Harmony is not Java, and is therefore in violation of Java patents. And remember Harmony is "Java", it has to work like java and have the same bugs as java. In most of these cases it isn't possible to workaround the patents because it has to be the same as java.

If the TCK didn't have FOU restrictions Harmony would be labeled a version of Java, like OpenJDK, Jrockit, J9, IcedTea and probably a few others. Harmony would get the Patent grant, and anybody who used Harmony (Android) would be free from litigation of patents in Java (Oracle v. Google).

Oracle's versions of Java cannot be used in mobile (primarily, but I think there is something about ATM's and set top boxes as well) without paying oracle a bag of cash. Any other implementation can't be used in mobile either unless Oracle gets a bag of cash. Harmony having the patent grant, and being ASL would effectively give google a free (speech and beer) JVM to use wherever the hell they want regardless of Oracle wanting the bag of cash.

Ideally Google would just use Java on Android without paying Oracle. Rebranding Java to Dalvik was just to try and prevent Oracle from getting money. Rebranding Java to Gava is the least good situation for google, other than paying Oracle $5/handset for Java.

Re:GOOG (0)

Anonymous Coward | more than 2 years ago | (#36401460)

They could actually run Java on a mobile without paying Oracle a big bag of cash, but it would have to be derived from OpenJDK (GPL) which comes with patent grants and not Harmony which doesn't pass the TCK and is therefor non Java and has no patent grants.

There is nothing stopping anyone from running OpenJDK as a basis for Android (which is the goal of the IcedRobot project)

Re:GOOG (1)

FrangoAssado (561740) | more than 2 years ago | (#36402972)

Hmmm... I don't think it's that simple.

As far as I understand, you can download and change OpenJDK (it's GPL v2), but if you want to distribute your version without fear of being sued for patent infringement, you must make sure your own version (i.e., OpenJDK plus you changes) passes the TCK -- that is, you must prove to Oracle that it's really "Java", and not some other language that's slightly incompatible with it.

TCK, of course, is not open. When you ask Oracle for the TCK, they want to know what you will do with it (see here [java.net]), and they are free to deny it or put any restrictions they want on it.

Mod Parent DOWN. (0)

Anonymous Coward | more than 2 years ago | (#36399578)

How I understand it is this: The licensing terms restrict Google from making their own platform specific version using the spec. It basically stops Google from rebranding Java to "Gava" and using it as the language of choice on Android.

Nonsense, it's the exact opposite. The Java SE 7 licensing restricts Google from making a conforming, proper Java implementations that work on mobile platforms. So it's the Java SE 7 that's platform-specific, not a potential compatible implementation by Google. Even if Google made Dalvik and its associated libraries a proper, fully compatible superset of the Java SE, they would still be prevented from distributing them as "Java" because of the licensing restrictions.

Re:GOOG (1)

hunangarden (848442) | more than 2 years ago | (#36399804)

Maybe you are thinking of Microsoft (C# one example). Java is the language of choice on Android already and has been from the start. They just want everyone to stop suing them for it, so they can focus on doing cool stuff. Oracle is the beast here that needs to be rained in, not Google.

How I understand it is this: The licensing terms restrict Google from making their own platform specific version using the spec. It basically stops Google from rebranding Java to "Gava" and using it as the language of choice on Android.

Re:GOOG (0)

Anonymous Coward | more than 2 years ago | (#36402574)

Hm. Java is the *syntax* of choice on Android. Oracle's suing them because they claim that you can develop on Android using "java," while not fully implementing Java and instead running it through their own interpreter, Dalvik.

Re:GOOG (4, Informative)

owlstead (636356) | more than 2 years ago | (#36399170)

The problem is that Java is not free at all. The platform is open source (GPL2), but Oracle does not allow any compatability testing between different implementations e.g. with a more permissive Apache license. Basically, because of patents, it is open source as long as you keep your frickin' hands off of it. Google has a strong invested interest because it uses Apache classes (which cannot be validated as being Java) within its Android operating system. And they are getting sued over it. Google certainly uses Java a lot, although it would go way to far to name it a "Java shop".

The problem is that Java 7 has been long, long overdue. It's not that 1.6 is bad; far from it. It's just that people are starting to lose interest. For Java to stay alive, we *need* 1.7 and quickly - and if possible with as much buzz as possible. Java still is by far the best maintainable language. That is something we don't want to loose, especially since there are few competitors regarding stability, security and maintainability.

In the end, they are essentially choosing between progress and halting because of licensing issues. As halting it now ay come to stopping Java altogether. Personally I think that Oracle should immediately stop with the licensing bulshit around android, but this is a technical issue, and I would have voted yes myself.

Re:GOOG (0)

Anonymous Coward | more than 2 years ago | (#36400772)

Could we tighten it instead? Or did you mean "lose"?

Re:GOOG (0)

Anonymous Coward | more than 2 years ago | (#36401094)

He meant that English spelling is awful.

Re:GOOG (1)

Surt (22457) | more than 2 years ago | (#36400854)

Not intended to be a grammar/spelling nazi or whatever, but since the rest of your post was coherent and well written, I thought there was a chance you might be interested in knowing that the phrase you were looking for was:
http://en.wikipedia.org/wiki/Vested_interest [wikipedia.org]

Re:GOOG (2)

owlstead (636356) | more than 2 years ago | (#36401626)

Thanks, I'm pretty well versed in English, but it's not my native tongue. And with slashdot you can only spend so much time reviewing your article, It's approx. one hour before people start to loose interest.

Re:GOOG (1)

Surt (22457) | more than 2 years ago | (#36402078)

Exempting that minor idiomatic mistake, your written English is better than most who learned it as their first language.

Re:GOOG (0)

Anonymous Coward | more than 2 years ago | (#36402324)

I see what you did there.

Re:GOOG (0)

Anonymous Coward | more than 2 years ago | (#36401756)

If they made Android from OpenJDK instead of Harmony, there would be no problem between Oracle and Google.

The issue stems from the fact that Harmony can't pass the TCK because of licensing issues, because of this it doesn't have a patent grant.

If OpenJDK is used as a base the patent grant is explicit in the GPL license, and there would be no problems for Google.

Java is just as open as any other FOSS software that has patents on it. A clean room implementation licensed under ASL gets around the copyright issue (GPL) but it doesn't circumvent the patent issue. Which would be the same if we were talking about Java or some other piece of FOSS (and it is FOSS because GPL conveys the patents).

Re:GOOG (0)

Anonymous Coward | more than 2 years ago | (#36403372)

It's not that 1.6 is bad

It's not bad if you haven't touched any of the more modern languages of the last, oh, 5 years.

How do you build buzz around a product that finally reaches feature parity with .NET circa 4 years ago? You have as good a chance creating buzz around new versions of COBOL.

Re:GOOG (1)

Civil_Disobedient (261825) | more than 2 years ago | (#36405552)

The problem is that Java 7 has been long, long overdue. It's not that 1.6 is bad; far from it. It's just that people are starting to lose interest.

Oh give me a fucking break. Java is the defacto-standard programming language taught in schools, it's the language of choice for mobile devices (thanks to Google, by the way) as well as the business world.

It's a programming language, not fucking MTV. You don't need to keep changing things every 15 seconds to keep the kids' attention span. Shit, C only gets updated every decade or so... I guess nobody must be using that old thing.

Re:GOOG (1)

owlstead (636356) | more than 2 years ago | (#36406538)

Yes, you may be right. Sometimes it is hard though to distinguish between the fans of the new fangled (scripting) languages and what's going on in the real world. The thing is that you need a certain amount of interest, otherwise it *will* become some kind of Cobol. Something that is *only* maintained because there is so much stuff written in it. You need a certain amount of inovation to keep bright minds interested.

Within our company, we are more and more migrating away from C/C++ because of this. The amount of Java devs has already surged. We've taken a look at C# and .NET, but we could not find a real advantage over Java (and Java was already being deployed). The disadvantage of C# is that you are pretty much stuck with visual studio as development environment, then comes the expensive stuff around it. Nowadays the tools and runtimes are probably more important than the language anyways.

Re:GOOG (5, Informative)

Tomahawk (1343) | more than 2 years ago | (#36399130)

On 2011-06-02 Google Inc. voted No with the following comment:
While Google supports the technical content of this JSR, we are voting no because of its licensing terms. As per the JCP resolutions of 9/25/2007 and 4/7/2009, "TCK licenses must not be used to discriminate against or restrict compatible implementations of Java specifications by including field-of-use restrictions on the tested implementations. Licenses containing such limitations do not meet the requirements of the JSPA, and violate the expectations of the Java community that JCP specs can be openly implemented."

The proposed license clearly violates this requirement (see Exhibit A, Section II). Oracle was duly reminded of this when JSR-336 was first proposed, but has done nothing to address the issue. It would be wrong to condone the inclusion of field-of-use restrictions in a TCK license, as this clearly violates the JSPA, by Oracle's own admission. Google does not want to slow the progress of this release, but we do believe it is critical that this issued be addressed, in order to comply with the JSPA and to preserve the openness of the Java platform.

Re:GOOG (3, Insightful)

Joce640k (829181) | more than 2 years ago | (#36399194)

Typical

You expected Google to vote in favor of something that validates the Java-patent-troll-lawsuit against them?

And....? (3, Insightful)

MetalliQaZ (539913) | more than 2 years ago | (#36398882)

I don't like this summary. Who cares? Tell me why the vote was important. Why "finally"? Was it delayed? Why did Google vote against? What are the new features? Why is this on the front page?!?

Re:And....? (0)

Anonymous Coward | more than 2 years ago | (#36398966)

Click the link, ID10T.

Google voted against because of licensing.

Re:And....? (2)

Afforess (1310263) | more than 2 years ago | (#36399162)

Google voted against because of licensing terms. Specifically, Oracle has been using their newfound ownership of Java to harrass the Apache foundation, and their free open-source Harmoney implementation of Java. Several other major firms, (IBM & Red Hat) complained in their comments after the vote. They have refused to grant Apache a tck (Technology Compatibility Kit)

Source: http://en.wikipedia.org/wiki/Apache_Harmony#Difficulties_to_obtain_a_TCK_license_from_Sun [wikipedia.org]

Re:And....? (1)

owlstead (636356) | more than 2 years ago | (#36399200)

The idea of the summary is to get you to read the article. The article seems to have links to the past issues with Java, which have been discussed on slashdot since forever. Basically you are complaining that the *summary* does not have background info. Unfortunately, it's supposed to.

Re:And....? (2)

MetalliQaZ (539913) | more than 2 years ago | (#36401338)

The purpose of the summary is not to get you to read the article. It should, you know, summarize. Summaries on Slashdot should also be informative on their own; a "digest" version of the article.

RTFA complaints are valid, but only if the original poster is making false assumptions that are contradictory to the facts in the article.

Re:And....? (1)

dcollins (135727) | more than 2 years ago | (#36402718)

No, no, I want everything in news-teaser form, like:

- "Big changes for Java today! Did Java SE 7 pass muster? Click here!"
- "What happens when scientists think they've captured the God particle? Click here!"
- "Sarah Palin gets exposed in Alaska! What's the biggest surprise? Click here!"

Re:And....? (1)

owlstead (636356) | more than 2 years ago | (#36404254)

Who in their right mind want to see Sarah Palin naked? Nobody sane would click that article :)

Re:And....? (0)

Anonymous Coward | more than 2 years ago | (#36411802)

Man I would because I'd assume it was just her face pasted onto a really hot body.

Re:And....? (0)

Anonymous Coward | more than 2 years ago | (#36400080)

I heard you could click the link and read the article and the pages the article links to. It's just a rumor though, I haven't tried it myself.

Re:And....? (1)

medv4380 (1604309) | more than 2 years ago | (#36401986)

Why "finally"? Was it delayed?

Because Java 6 was released in 2006 and prior to that there was a steady stream of releases every 2 years or so. Then Sun was bought up by some no name Oracle that I'm sure you've heard nothing about, and Java 7 was put on hold until the sale went though all the legal stuff, and that took a while. Then Apache, that other nobody, threw a fit and tried to shut down the JCP process over the same issue Google, and others have *not enough sugar in their java*.

Why is this on the front page?!?

Someone thought it should go there. Probably was a mistake.

Why did Google vote against?

I don't think Google likes Oracle very much. Something about some lawsuit involving the failed Android OS.

Who cares?

Nobody, since all Java Developers were sacrificed to Gossling when he left this world, and Oracle is too small for anyone to notice.

What are the new features?

Rumor has it that all they added was a line in the licence agreement for your immortal soul, but since no one alive today has read though it we may never know.

I hate Java. (-1, Flamebait)

Anonymous Coward | more than 2 years ago | (#36399002)

Every time I see that little icon in my system tray, I figure out what the offending program is and start searching for a replacement.

Re:I hate Java. (3, Insightful)

Joce640k (829181) | more than 2 years ago | (#36399238)

Does "Java 7" mean we're in for another never-ending series of huge updates, none of which will bother to remove the previous update from my disk?

If so... no thanks.

And a Turd Turns 7 (-1, Flamebait)

Anonymous Coward | more than 2 years ago | (#36399024)

The dumbing down of software engineering continues...

Re:And a Turd Turns 7 (0)

Anonymous Coward | more than 2 years ago | (#36399746)

Just wait!!!

If we keep waiting, maybe in one of these releases they'll give us an API hook for using HTTP to download the content of a remote webpage/webservice without 30 lines of boilerplate horseshit!!!11

Oh wait--that would be contrary to the spirit of java, which is to be just as opaque as C++ but ZOMG WE GET GARBAGE COLLECTION AND STRONG TYPING FTW!1!111ELEVEN

Re:And a Turd Turns 7 (0)

Anonymous Coward | more than 2 years ago | (#36399954)

an API hook for using HTTP to download the content of a remote webpage/webservice without 30 lines of boilerplate horseshit!!!11

Goddamn, man, just write your own fucking class/method with whatever damn syntax you want:

String webpagestuff(String urlthingy){
//boilerplate bs goes here
}

Do you call yourself a developer?

Re:And a Turd Turns 7 (0)

Anonymous Coward | more than 2 years ago | (#36400024)

Maybe he's a developer spoiled by other languages that just provide stuff like that out-of-the-box (as opposed to doing what most java "developers" do, go to stack overflow and copy/paste), because you know, it's a fairly common problem

Re:And a Turd Turns 7 (0)

Anonymous Coward | more than 2 years ago | (#36400198)

I'm sorry, I couldn't hear you over the violins playing in the background.

Re:And a Turd Turns 7 (0)

Anonymous Coward | more than 2 years ago | (#36400350)

I couldn't hear due to all the whimpering and crying as a dozen nigger run train on your asshole. All Aboard!

from the vote log (2)

jvdneste (2252966) | more than 2 years ago | (#36399086)

Google's complete comment from the vote log: "On 2011-06-02 Google Inc. voted No with the following comment: While Google supports the technical content of this JSR, we are voting no because of its licensing terms. As per the JCP resolutions of 9/25/2007 and 4/7/2009, "TCK licenses must not be used to discriminate against or restrict compatible implementations of Java specifications by including field-of-use restrictions on the tested implementations. Licenses containing such limitations do not meet the requirements of the JSPA, and violate the expectations of the Java community that JCP specs can be openly implemented." The proposed license clearly violates this requirement (see Exhibit A, Section II). Oracle was duly reminded of this when JSR-336 was first proposed, but has done nothing to address the issue. It would be wrong to condone the inclusion of field-of-use restrictions in a TCK license, as this clearly violates the JSPA, by Oracle's own admission. Google does not want to slow the progress of this release, but we do believe it is critical that this issued be addressed, in order to comply with the JSPA and to preserve the openness of the Java platform." Possibly the licensing terms cause trouble for the dalvik platform.

Re:from the vote log (0)

Anonymous Coward | more than 2 years ago | (#36399126)

If you read all the comments you find a bunch more members who voted yes on technical merits but are unhappy with the licencing terms and/or lack of transparency in the process.

And where are the OSS complainers now? (0)

Anonymous Coward | more than 2 years ago | (#36399208)

I'm biased as I really enjoy(ed?) working with Java even though I'm no programmer. One thing which has always bothered me was the (IMO:) zealot way in which certain groups bashed Sun for not "open sourcing" their Java environment. Even though it was perfectly usable, you could easily gain access to the source (and were allowed to use it!) and it could be integrated in the Linux environments without any problem. And of course I also didn't like (but expected) the aftermath. Because what has that change in license really brought us? Java was available in more Linux environments, yet the incompatible solutions still got installed by default. Whooptiedoo...

And now that a real possible "threat" arises you hardly hear 'm anymore.

So what changed ? Am I not listening to the proper channels or has this issue hardly been discussed on the regular channels ?

Quite frankly I think this whole chain of events regarding Java may very well help increase the interest and popularity of languages such as C# and other languages from there on. It still has a rather uncaring and "semi evil" company behind it, but at least it also doesn't pretend to give you "freedom" while all your rights are slowly peeled away without you even realizing it.

Need uint (1)

Anonymous Coward | more than 2 years ago | (#36399212)

But still no unsigned integers? Fucking stupid language.

Re:Need uint (1)

Anonymous Coward | more than 2 years ago | (#36399662)

+10 informative.

How can anyone claim something is a computer language when it doesn't have unsigned computational data types. I mean what is this crap. VBA ?

Java is a great idea with a retarded implementation.

Re:Need uint (1)

Ant P. (974313) | more than 2 years ago | (#36402408)

Java is a great idea with a retarded implementation.

So to extend that logic, Postgres is a retarded database for also not having unsigned integer types? You must love Oracle's MySQL almost as much as you hate Oracle's Java.

Re:Need uint (1)

Ash-Fox (726320) | more than 2 years ago | (#36399698)

But still no unsigned integers? Fucking stupid language.

Why would you need them when you have BigIntegers?

Re:Need uint (0)

Anonymous Coward | more than 2 years ago | (#36400166)

Even the byte type is signed. Not having an unsigned byte type is super obnoxious especially if you're dealing with network protocols, custom file formats, etc. Sure you can work around it with a lot of annoying casts, but it's pretty silly that Java still doesn't have any unsigned types (except char, which is 16-bit unsigned).

Re:Need uint (1)

Lunix Nutcase (1092239) | more than 2 years ago | (#36400704)

That's about as dumb as saying why do you want a car when you have a washing machine. Unsigned integers have little to do with wanting a "biginteger". For example, when dealing with 8-bit bitmaps and doing pixel manipulation you WANT an unsigned byte because you are not going to have negative values. There are numerous other cases in which you are dealing with 4-bit, 8-bit, 16-bit, etc values that will never be negative and not being able to represent them naturally with an unsigned integer is fucking stupid.

Re:Need uint (1)

doublebackslash (702979) | more than 2 years ago | (#36402590)

I'm not arguing for or against. I try not to do much bit slinging where I can avoid it. In fact I think most people do... till they REALLY need to. Then, for everyone's sake, I hope they do it well.

Here is to the bit singers!

I found this that provides some info about the lack of unsigned. I'm reading it now. http://darksleep.com/player/JavaAndUnsignedTypes.html#why_no_unsigned_types [darksleep.com]

Re:Need uint (1)

Lunix Nutcase (1092239) | more than 2 years ago | (#36404038)

Sorry, but that explanation is bullshit. The leaving out of unsigned types makes code that deals with what are truly unsigned types needlessly more complex. Gosling's explanations sound more like bullshit excuses (waaaaaaah having to implement unsigned math is hard!!) that sound like laziness on the part of the designers. The fact of life is that many things require values that are never negative so having to use 16 bit integers, for example, when one wants only unsigned 8-bit numbers plus the fact that you then usually are needing to do bit manipulations to get at the actual values you want, etc just make Java a pain in the ass to use.

Re:Need uint (1)

Lunix Nutcase (1092239) | more than 2 years ago | (#36404088)

To further add on, for example if you want to work with 8-bit unsigned values you have to start with a 16-bit signed number, cast it down, then you have to do an "& 0xff" to get the actual value you want. Why do I need such needless complications to my code when they could have just gotten off their lazy asses and just created proper unsigned types? Apparently people writing C, C++, etc compilers seem to be perfectly capable of creating unsigned types despite the vague notion of how "complex" it is.

Re:Need uint (1)

doublebackslash (702979) | more than 2 years ago | (#36406716)

Actually, I didn't get far in when I posted it. I would not have if I had.

It IS bullshit. I agree 100% No apologetics, no nothing like that. You, good sir, are right. No good reason!

Also, it wouldn't even be that "hard" to add it. That is, insomuch as nothing would break due to that addition aside from perhaps a new keyword to avoid (I'm sure someone used uint/ubyte/ulong as a variable name somewhere along the line)

Thanks for the proverbial smack upside the head. Apparently I needed it!

Re:Need uint (1)

Cutting_Crew (708624) | more than 2 years ago | (#36400898)

how about the ability to overload operators? this just needs to happen.

Re:Need uint (1)

doublebackslash (702979) | more than 2 years ago | (#36402542)

Why?

How is
    Widget a = new Widget();
    Widget b = getBaseWidget();
    b = a + b;

Any better than
    Widget a = new Widget();
    Widget b = getBaseWidget();
    b.addNewModule(a);

Are you playing keyboard golf? Do you like having to remember what each operator does in every different combination? Does your IDE not auto-complete?

Really, tell me. Overloading operators seems like a good way to help ruin the readability of your code.

Re:Need uint (1)

Netbrian (568185) | more than 2 years ago | (#36402818)

For certain kinds of sci/math operations, operator overloading is very helpful (complex numbers anyone"), and it's quite cumbersome to write and read the Complex C = a.Add(B), especially for longer equations.

Re:Need uint (1)

HiThere (15173) | more than 2 years ago | (#36404124)

Unsigned integers isn't the point. What's needed is Range types, where one can specify both the lowest and the greatest value. Optionally also specify the increment, but that's just icing.

Re:Need uint (1)

sourcerror (1718066) | more than 2 years ago | (#36405536)

Biginteger for the rescue.
Also most hacks for signed to unsigned conversion uses Biginteger. (Mask out parity bit, add to bigint, then add 2^32 to it.) Maybe Sun should have included this hack in a utility library :)

Re:Need uint (1)

HiThere (15173) | more than 2 years ago | (#36412010)

You're going to need to explain why you think Biginteger satisfies the requirements of a Range type. It seems to have neither a settable lower bound nor a settable upper bound. You can't say "This represents the integers -7 through 13." in any way that is obvious to me. (Yeah, you can program it. That's what a Range type is supposed to eliminate the need for.)

Re:Need uint (1)

sourcerror (1718066) | more than 2 years ago | (#36412552)

I never felt the need to use such range types, and can't imagine a situation where it would be useful. People usually want signed, unsigned or freaking huge integers. Sparing a few bits of memory doesn't turn me on.

Re:Need uint (0)

Anonymous Coward | more than 2 years ago | (#36404652)

While I've run into a few problems with the lack of unsigned ints and longs, the vast majority of the headache with signed primitive types in Java, at least for me, has been with bytes.

Firstly, I'm curious why anyone would even want a signed byte, let alone why it would be more useful than an unsigned byte. But the bigger is issue is that almost every time you do bitwise operations on bytes you have to force a conversion to an int (with an & 0xFF) or else the result isn't as expected. This is wasteful, unintuitive and leaves code cluttered and harder to read. A simple exercise in implementing a basic base64 encoder/decoder becomes frustrating and requires some trial and error before you figure out where you need to switch to integer operations.

Re:Need uint (1)

bigsexyjoe (581721) | more than 2 years ago | (#36404818)

I've been coding Java professionally for years. It never even occurred to me that it needed unsigned integers. Why does it NEED that? For one thing, it's an object-oriented language, so if you want to, you make make your own class that implements it. I don't think that would even create a lot of overhead. Most new languages that compete don't even let you work with primitives at all.

Re:Need uint (1)

AJNeufeld (835529) | more than 2 years ago | (#36415442)

For many purposes, unsigned types just delays a problem. "I need to count over 32000 so I'll use an unsigned short" ... And then the code breaks when the unexpected happens, and the count exceeds 65000. An extra bit of count range is NOT desirable... If you want bigger counts, use the larger type!

For the most part, math on unsigned integers produces the same result as math on signed integers. Division, being the exception, but if you are dealing with integers, you likely aren't doing a lot of division anyway.

Count down loops are harder with an unsigned variable. "for( x=10; x>= 0; x--)" is an infinite loop!

Bit banging is really the only place the unsigned types are useful.

If you really, really, need unsigned integers for a particular problem, you could always use JNI and program that part in a different language.

Java is Doomed (1, Interesting)

bjourne (1034822) | more than 2 years ago | (#36399304)

It is symptomatic of the JCP (Java *Community* Process -- in reality run by a committe of about a dozen international corporations) that is filled with bureaucracy and childish infighting. IMHO the writing is on the wall for Java because stuff moves way to slowly. Java has JPA which would have been a really nice ORM... about five years ago but technology moves faster than that. Compare that to C# whose development process is entirely controlled by a single company and you have Linq2Sql and the Entity Framework. There is more api churn, but at least stuff is moving forward.

It was especially apparent with J2ME which went from market leader to an also ran player. All the companies invested in Java tried to stab each other in the back and abused the JCP to gain advantages on each other. The way several of the mobile JSR:s were specified, weren't so much dependent on what would be the best technical decisions but on compromises intended to make everyone happy and not give the market leader (who already had a working reference implementation) an edge. That's why some of the JSR:s are so bizarre such as the Mobile Sensor api.

To bad, I say. The Java platform had so much potential that will go to waste. It would have been hard enough for Java to complete if the CLR wasn't superior technology, but it is. The future looks fairly bleak for Linux on the server side without a competitive virtual machine.

JPA (1)

sourcerror (1718066) | more than 2 years ago | (#36399458)

Java has JPA which would have been a really nice ORM... about five years ago but technology moves faster than that.

And it came out exactly five years ago.

"The final release date of the JPA 1.0 specification was 11 May, 2006. "
http://en.wikipedia.org/wiki/Java_Persistence_API#History [wikipedia.org]
Or did you mean JPA 2.0?

IIRC java came out earlier with ORM, than MS. (Also see Toplink)

Re:JPA (1)

Mongoose Disciple (722373) | more than 2 years ago | (#36399826)

But, 'out' and 'part of standard Java' are two different things, and that illustrates exactly the problem with Java for many developers, which is: standard Java is always far behind the curve, so it's always necessary to augment Java with community efforts to accomplish the tasks at hand as a professional developer.

And, great that the Java community is so active and vibrant that there *will* be something out there that solves the problem that you're having, but which one? How often have you grabbed a community Java package to solve some business problem and figured out a little too late that while it does 98% of what you need, you can't get the last 2% done at all without tossing that framework and starting over with a different one?

Ultimately what I think I'm saying is: you can't be a casual Java developer and be a good Java developer. You need to remain very current on each community project that you even might use to be able to make your architectural decisions correctly. You need to be aware of which of these things you might pull in don't play well with each other and why. This is a problem that developers in several other languages just don't, in any practical sense, have.

Re:JPA (1)

ubersoldat2k7 (1557119) | more than 2 years ago | (#36400354)

standard Java is always far behind the curve

Well of course, just look at all the platforms supported by the JVM and all the projects/enterprises which depend on Java. You can't do what Python did with 3k and break backward compatibility. You can't also do a big framework release as .Net does because Java is not controlled only by a single company nor runs in a single platform.

How often have you grabbed a community Java package to solve some business problem and figured out a little too late that while it does 98% of what you need, you can't get the last 2% done at all without tossing that framework and starting over with a different one?

Luckily, you can implement such 2% of features by your own. Really, it's not that hard and that's what programmers do, not simply put together a bunch of frameworks and visit /.

You need to be aware of which of these things you might pull in don't play well with each other and why.

Then I suppose it's better to have one company to tell you how to do it and to sell you all the solutions.

This is a problem that developers in several other languages just don't, in any practical sense, have.

I suppose you're talking about .Net here, because this happens with C/C++, Python, Ruby and Perl that I know of. Actually, it's worst in some of them.

Re:JPA (1)

Mongoose Disciple (722373) | more than 2 years ago | (#36401454)

Really, it's not that hard and that's what programmers do, not simply put together a bunch of frameworks and visit /.

Yeah, become the millionth Java programmer to create their own unmaintainable knockoff of Struts. That's exactly what the world needs.

Out of curiousity, how much Java development have you done for large (i.e. Fortune 500) companies? Priorities are a lot different there vs. Java app you throw together for a homework assignment.

Re:JPA (0)

Anonymous Coward | more than 2 years ago | (#36401816)

Never use a Framework if you don't know how to use it. No framework ever does 100% of what you need; those are called "solutions" not frameworks to help you create "solutions".

Re:JPA (1)

sourcerror (1718066) | more than 2 years ago | (#36401962)

"But, 'out' and 'part of standard Java' are two different things"
No, they aren't . Specs being out means part of standard Java. Hybernate existed years before that.

Re:JPA (1)

Billly Gates (198444) | more than 2 years ago | (#36401082)

There are developers out there that actually think ORM is a cheap knockoff to LinQ. MS had it first! etc ...

Sadly it doesn't matter as ORM was never really marketed while LinQ was and took over mindshare among developers

Re:Java is Doomed (0)

Anonymous Coward | more than 2 years ago | (#36399792)

Java is Doomed

Please don't make me laugh. As long as Java is the premiere development solution for the fastest growing mobile device platform that also has the highest market share, it isn't going anywhere.

Compare that to C# whose development process is entirely controlled by a single company

Better brush up on them javascript skills, skippy. That "single company" you mention has found a new shiny for their next flagship OS release and it ain't C# or Silverlight.

Re:Java is Doomed (1)

Cutting_Crew (708624) | more than 2 years ago | (#36401012)

speaking of Javascript Interface Builder is really, really nice for building UIs. Using a sophisticated and refined tool like Interface Builder is MUCH much nicer than the current kludge of web technologies that consist of HTML, CSS, and JavaScript all over the place and various data exchange formats like XML, JSON, or whatever combined with eight different JavaScript frameworks and a potentially very different server-side programming model and finally trying to jam it all together into something that someone can see on the other side in terms of a GUI interface.

If i want to go into my widgets and change the color of text or the attributes of a widget I don't have to go into some xml code to change it.

Re:Java is Doomed (1)

cardpuncher (713057) | more than 2 years ago | (#36399836)

I don't think Java is doomed any more than COBOL is doomed - it's deeply embedded in so many back office systems that it is going to be around in perpetuity regardless of whether the language and its associated environment has any further development. .Net/CLR is indeed a better "Java" than Java but it isn't as entrenched, still basically dependent on the Windows platform and Microsoft itself seems to be going cool on the whole project so I'd say it was the more likely candidate for ultimate doom than Java, even though it is technically superior in many respects. The CLR has a lot of "cloud" potential, but whether Microsoft would dervie any benefit from letting it sufficiently loose is questionable.

Oracle essentially has to shift Sun iron in order to make money out of Java; Microsoft has to shift Windows licences to get money out of .Net. It's hard to see how either can continue indefinitely to develop a product whose funding is contingent on selling something only peripherally related.

Re:Java is Doomed (1)

Billly Gates (198444) | more than 2 years ago | (#36401308)

That is my feel of it too. Like a nice old mainframe/cobol-ish platform, but is more modern for the late 20th/21st century.

If my website needs to be rewritten to be enterprisish, I have 2 options Java or C#/ASP.NET. With Java I can run the code 10 years from now when its old and crusty on a mainframe if I wished or a few servers just like Cobol. Whether that is a good thing or not is debatable but it is conservative and I know it will still run. With Microsoft I would likely have to rewrite it every few years when things change but it would be more modern and any developer with Visual Studio can work on it.

What I do not like is where Java is going from their new overlords. To be fair C# is tied to SQL Server and Windows so it is a proprietary stack as well. I have to choose which is better to be shafted by. I wish IcedTea would go somewhere so I would not feel so confined and left behind.

Java is not being updated and it is creaky old and now a liability. IBM is the only other vendor I can choose besides Oracle if I want real enterprise support and updated software and database access. I assume Java will be more and more integrated with the Oracle Database while IBM's version will be more friendly with DB2/Web sphere etc. Either way it is becoming expensive compared to other more open alternatives. What a mess and I hope thigns change and Oracle looses the lawsuit bigtime and we have a nice Java fork. :-)

Right now I will stick with PHP until I have the actual need to run something like big like that and pick a platform.

Re:Java is Doomed (1)

Shados (741919) | more than 2 years ago | (#36404722)

With Microsoft I would likely have to rewrite it every few years when things change but it would be more modern and any developer with Visual Studio can work on it.

.NET code from the original 1.0 version still work in 4.0. There are a VERY breaking changes... there's a few in java too. To be fair, the .NET ones break a bit more than in Java, but it is still very very minor. We're currently going through dozens of applications we wrote around the time .NET 1.0 came out, and most of them run as is, a few took about 15 minutes of work to port. There are situations where people were doing stuff in unsupported ways and that doesn't port cleanly though.

To be fair C# is tied to SQL Server and Windows so it is a proprietary stack as well.

To Windows (Mono doesnt really count), yes. To SQL Server? Absolutely not. There's a few of the "pluggable" APIs that only have SQL Server as built in implementations, but virtually everywhere where you have SQL Server support, you can have a provider for any other database. The closest thing to SQL Server tie in is in .NET, not C#, in the form of LINQ to SQL... but that thing is more of a tech demo than anything, and there's nothing stopping someone from making LINQ to WhateverYouWant, the API is pluggable.

The recommended scenario is to use Linq to Entity, and that is not SQL Server dependent.

Re:Java is Doomed (0)

Anonymous Coward | more than 2 years ago | (#36399902)

Java had ORMs before almost any other language. Look at EOF (part of WebObjects) which supported Java in 1997 and was completely ported from Objective C to Java in 2001. And toplink, hibernate, cayenne (http://cayenne.apache.org) and many more Java ORMs.

JPA is not an ORM but is actually a standard for interoperability between some ORMs written in Java. There are so many to choose from there had to be a standard written.

But yes, the JCP is extremely disfunctional and because of that Apache pulled out from the process early this year. I am not sure what the other participants are still doing there since it is clear they have no say and do not form a community which sets the direction of the language nor enforce the licensing rules which (including Oracle) should be bound by according to the contractual agreements.

Re:Java is Doomed (1)

ubersoldat2k7 (1557119) | more than 2 years ago | (#36399918)

Do you really believe all the bullshit you just wrote? If you spend all day immersed in MS crap, then I suppose it's not your fault.

The Java platform had so much potential that will go to waste.

Did you read who are part of the JCP? Do you have any idea of how much money and resources have been invested in Java platform? So, you really think these players are just going to say 'Hey, I think it would be better to ditch all of this and become MS resellers'. Actually, it's the other way around.

The future looks fairly bleak for Linux on the server side without a competitive virtual machine.

Sure, Linux is competitive on the server side because of the JVM. Please Mono, come and save Linux! Please let us feel the joy of .Net development.

Re:Java is Doomed (2)

owlstead (636356) | more than 2 years ago | (#36401106)

It is symptomatic of the JCP (Java *Community* Process -- in reality run by a committe of about a dozen international corporations)

Of course: those companies have a lot of people working on Java. They *are* a large part of the community.

that is filled with bureaucracy and childish infighting.

They are having serious issues regarding licensing. To call that bureaucracy and infighting? I presume that is rather subjective. Personally, I think it is rather a defining issue.

IMHO the writing is on the wall for Java because stuff moves way to slowly. Java has JPA which would have been a really nice ORM... about five years ago but technology moves faster than that. Compare that to C# whose development process is entirely controlled by a single company and you have Linq2Sql and the Entity Framework.

Java as a language is mainly build on being easy to maintain. A lot of people don't believe in Linq2Sql as it merges two languages together. It's rather questionable if that is the right road to take. It's certainly not the Java road, and never was. You can argue about that during language design, but that's how it is.

There is more api churn, but at least stuff is moving forward.

It was especially apparent with J2ME which went from market leader to an also ran player. All the companies invested in Java tried to stab each other in the back and abused the JCP to gain advantages on each other. The way several of the mobile JSR:s were specified, weren't so much dependent on what would be the best technical decisions but on compromises intended to make everyone happy and not give the market leader (who already had a working reference implementation) an edge.

Many Java API's, especially those in the Java standard edition are very well defined. Take a look at the collections API, the SmartCard I/O API, the way cryptographic providers work etc. etc. This is much less the case with the embedded Java forms, I give you that. Personally, I don't think that the fastest mover should always get the support. The best technical solution should be choosen, and I think this is one of the strengths of the JCP. Note that that might not always translate into the best marketing, that's true. But at least it is more or less fair, and it stops horrors like jPCSC from becoming an API standard instead of smartcardio.

That's why some of the JSR:s are so bizarre such as the Mobile Sensor api.To bad, I say. The Java platform had so much potential that will go to waste. It would have been hard enough for Java to complete if the CLR wasn't superior technology, but it is. The future looks fairly bleak for Linux on the server side without a competitive virtual machine.

IMHO the Java VM is pretty much compatitative, and it's getting better too. If linux fails, I would be very surprised if it is because of the performance of the Java VM (personally, I think they have much more urgent problems than that, and I'm typing this from an Ubuntu desktop...).

.Net is doomed (0)

Anonymous Coward | more than 2 years ago | (#36401146)

Haven't you heard? True WIn 8 applications can only be done in JavaScript and HTML5. dotNet just got kicked off the desktop.

Re:Java is Doomed (1)

VGPowerlord (621254) | more than 2 years ago | (#36403002)

To bad, I say. The Java platform had so much potential that will go to waste. It would have been hard enough for Java to complete if the CLR wasn't superior technology, but it is. The future looks fairly bleak for Linux on the server side without a competitive virtual machine.

Then take OpenJDK and fork it! Except that you can't relicense it because it's GPLv2, and GPL isn't compatible with anything other than GPL.

Java 7? What's that? (0)

Anonymous Coward | more than 2 years ago | (#36399382)

My java reports it is version 1.6.0_26. What happened to java 2, 3, 4, 5, 6?

What I'm really saying is why can't sun/oracle use a sensible, consistent numbering scheme? If you want to drop the leading 1, THEN DROP THE LEADING ONE ALL THE TIME!

Re:Java 7? What's that? (1)

TheRaven64 (641858) | more than 2 years ago | (#36401434)

Java 1.2 was renamed Java 2 for branding purposes. All subsequent Java versions have had a silent 1. at the start, so Java 7 is really Java 1.7.

These comments are stupid (-1)

benjfowler (239527) | more than 2 years ago | (#36399466)

These comments are stupid. A lot of redundant, and quite a few are quite ignorant.

Pro tip: don't comment on something you obviously know nothing about.

Re:These comments are stupid (0)

Anonymous Coward | more than 2 years ago | (#36399712)

Thank you for your enlightening contribution pointing out what was wrong with the comm... wait, no, you didn't actually add anything to the discussion.

Re:These comments are stupid (0)

Anonymous Coward | more than 2 years ago | (#36401110)

Oh boy we've got captain obvious in the house. Any other amazing topics you want to talk about while you have the stage?

Java 6 fork anyone? (1)

Billly Gates (198444) | more than 2 years ago | (#36401442)

I do not like where Java is going and I know I am not alone.

I do not like how it is being proprietary from a once open standard and what the new license agreement is doing to Google. If it can happen to Google it can happen to Apache or anyone else. Java is old and not being updated which is why real Java developers download free third party api's like Hibernate rather than wait on Oracle. After LinQ beating ORM's and the lack of AJAX and other things that .NET is doing it seems to be falling further and further behind. What about Java support for the BSD users? Consoles? ... or other platforms?

Is it possible to fork IcedTea? I would like to see it more like .NET with faster innovation and more languages being ported over to the JVM. Who is with me?

Toplink, Hybernate (1)

sourcerror (1718066) | more than 2 years ago | (#36402264)

You're right. What is Java desperately needs is more cowbell.

Toplink was out in 1998, Hybernate was out in 2002, in 2006 came out the JPA standard, that gave a uniform interface for both. .net got LINQ in 2007, how is that beating Java in ORM?

Java = COBOL?? (0)

Anonymous Coward | more than 2 years ago | (#36405100)

As much as I dig Java, it just seems irrelevant as a technology in 2011 and beyond. It really started to slip for me when the trend in application design went heavyweight with ORMs and bloated frameworks. Java itself is just plain cool, but all the crap IDEs, UML tools, ORMs, servers and frameworks just take all the fun out of it. We should have known that Java as a culture was going south when IBM started investing so heavily in it!

Re:Java = COBOL?? (1)

sourcerror (1718066) | more than 2 years ago | (#36405328)

I like the IDEs (both Netbeans and Eclipse; Netbeans for the form editor, and easy installation of Glassfish; Eclipse for the very good content assist/fix suggestions), the ORMs (through JPA), I think EJB3 is quite nice, however there seems to me an overabundence of servlet frameworks (Spring, Struts, JSF etc.) And most of them have a pretty steep learning curve and lacking documentation (I learned JSF so far, as it's standardised through JCP; and that's the best documented). But it's weird for me that it has so many expression languages stacked on top of each other that seem redundant and plain confusing.
And the enterprisey mindset with astronaut architects, who don't ever touch code is pretty repulsive, but I think at it's core J2EE is quite good technology.

Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Sign up for Slashdot Newsletters
Create a Slashdot Account

Loading...