Java2 SDK v. 1.4 Released
pangloss writes: "Yay: XML, built-in Perl-ish regex, jdbc 3.0, asserts, IPv6, lots of other goodies. Release notes and incompatibilities. And I think this means I can use my wheel-mouse in NetBeans without that extra module ;) Download it here." WilsonSD adds: "There are many cool new features including a New I/O package, an Assert Facility and enhanced performance." Some other random Java notes: O'Reilly has an essay about why you won't see any open source J2EE implementations, and Kodak has filed a patent-infringement claim against Sun regarding Java.
SDK 1.3.1 stability was terrible on Redhat 7.1 and 7.2 Hopefully 1.4 will be much better. Otherwise I will have to continue using IBM's 1.3.0 SDK.
I've been working on a server that takes a lot of connections in Java, and you can finally do it with the support of "select" in Java 1.4. But no support for SSL. I undertand why it happens, but this "we'll get around to doing the security later" is why we don't have a lot of security.
Java will always present a dilemma. With the push for portability, you often have to wait for the platform itself to support things like this (select) or kludge it in very non portable ways. But that portability leaves the system behind which hurts it in competition with other systems more tolerant of innovation and the fracturing it brings.
A good philosophy would be to rule that every time a system library or feature needs to do something that an ordinary user can't do, they don't just build it in, they make a way that an ordinary user could write it. That paves the way for more innovation.
Has it been over a year since you last donated to the Electronic Frontier Foundation
I hope that Swing is faster now under linux. I played with netbeans and jedit and although there are really good they are not very fast on linux. on a slower windows PC jedit stated much faster than on my linux box.
a few days ago I played a little with Ruby (the coolest language available IMHO) and Gtk+. although the bindings are not yet finished they work very well under Linux and this is much faster than Java/Swing.
Maybe Ruby is the future. At least I hope so. If Ruby gets more stable modules Ruby can be the Number One OOP language. It is cleaner than Perl or Java, the Programms are shorter, the Language is more intuitive and.... and.... and. This is only my humble opinion. See for yourself if you like ruby. check out http://www.ruby-lang.org
talk about a joke getting old!!
In Soviet Russia you dant have to put up with these crappy jokes
almost makes you as queasy as the ad naseum linux discussions here on slashbot.
I agree. If I had a Beowulf cluster for every time someone said...oh never mind.
Visual Studio .Net was released today.
.Net .. no anti-M$FT commie flames from fud prophets please.. I want opinions of people that have actually used it and have genuine comments.
Where is a story on that?
So much for the facade of neutrality.
What do people think of Visual Studio
A summary of all the new features is available here:e s.html
http://java.sun.com/j2se/1.4/docs/relnotes/featur
Articles about the news APIs and how to use them available here:
http://java.sun.com/j2se/1.4/articles.html
Being bitter is drinking poison and hoping someone else will die
I think its nice.
It seems a little sluggish.
But boy so did that bear after he ate my Uncle Ron.
J. Handey
Selectors! Multiple sockets per thread! Yes, yes, ye... crap, I guess I have to toss out and rewrite all that code.
From the enhanced performance link:
:-)
* Access much larger memory spaces
Hihi, probably needed to keep SWING performing
After reading this article I come away from it with 2 very important thoughts. One: The license agreement. I cannot believe that the license agreement contains the core functionality statement wrapped up in one tidy legal clause. "Distributed under a licensing agreement with Spyglass, Inc.
Contains security software licensed from RSA Data Security Inc.
Portions of this software are based in part on the work of the Independent JPEG Group.
Multimedia software components, including Indeo(R); video, Indeo(R) audio, and Web Design Effects are provided by Intel Corp.
Unix version contains software licensed from Mainsoft Corporation. Copyright (c) 1998-1999 Mainsoft Corporation. All rights reserved. Mainsoft is a trademark of Mainsoft Corporation." I mean somebody at the SPCCA will be pissing themselves that SUN would even release the SDK nevermind fire Jim Henderickson over it. Any thoughts?
As, up until RC1, the API is in place, but won't actually talk to any MIDI devices (It just works with their own softsynth).
Why bother having an API if you can't actually do anything with it ?
This makes me so happy. Coming from C++, I really really missed assertions. They give me much more confidence in my code. Some people seem to have trouble using them, but after a while they can become second nature. In fact, one can come to rely very heavily on them.
I know it can rip midi into mp3. Maybe this would be a go?
Well that kind of gives an answer to every javahead that says "Why bother with Mono, when you have J2EE? What a waste of time."
Mono is at least opensource... can you say the same for J2EE? Will you ever be able to say the same?
The 3,000,000th post was this one.
Permission is hereby granted to repost this announcement, provided that you change something (i.e. not verbatim).
Thank you for your day.
I am trying to ascertain which assertions you assert to be using to assist your assets.
And still no generic data structures (a.k.a. templates in the C++ world)... all those explicit downcasts from Object hurt and need to be optimized away by the JIT...
-Hein
The 4 GB address space limit has become a severe limit on Java bloat. It's good to see that Sun finally addresses this problem.
I have a dual boot machine at home, one partition Windows 98, the other Slackware 8.0. Today I downloaded and installed the new Java SDK 1.4.0-rc on both systems. And while I think that some iscolated windows difficulties causes my oppinion to be rather biased, I found the install much easier going on Linux.
However I will note that, while the Java Web Start was installed on Windows, I didn't find any version of it for linux. And the downside to the Web Start I found is that it constantly wanted to download and install a new version of Java Runtime Environment 1.3.x everytime I lauched an application. And then after the download, and installed, I'm prompted to reboot the computer. After rebooting and trying to launch again, it again starts to download JRE 1.3.x and through the whole cycle all over again.
As well, with my windows install I found I was constantly having difficulties getting it to use the default classpath (ie, no environment variable set for CLASSPATH). I ended up having to resort to specifying the classpath at the command line. And no matter how much I tried, I could no manage to get Swing to work properly.
However on the other hand, the Linux install was rather straight forward, with a few simple steps: Change download to executable; Run it; move the extracted directory to a shared path (as su); add the java/bin directory to the search path; and finally add the java/man directory to the search paths for man.
The windows installer was straight forward, though the above problems still hampered me.
-- Never monkey with another Monkey's monkey
Hmm, if SDK v1.2 became "Java2", shouldn't v1.4 be called "Java4"? Oh I see, "Java2" was a "marketing trick" used in the tough year 1997 and the name has stuck.
Perhaps,but remember that the change from 1.1 to 1.2 contained some major rehaul of APIs.
In this 1.4 release Sun kept a carefully budgeted set of new features and emphasized quality and performance, like they said they would. You can expect more changes in 1.5 (codename Tiger) which is planned to come some time around the middle of 2003. If that will be Java3, who knows, they have just started working on it.
Being bitter is drinking poison and hoping someone else will die
Autopr0n.com actualy runs using the first beta of JDK1.4. I needed the new ImageIO libraries for the, um, 'site previewer :P' (and the regexs made some of the parsing I'm doing a lot easier :). I tried 1.4b3 but it was far more unstable, and my regexs broke.
:P
Definetly cool that the stable version is out, I'll have to upgrade at some point, when I have time.
Hopefully they'll implement this at Topcoder.com too, so I don't have to keep using the old docs in the compos
autopr0n is like, down and stuff.
Jesus, Sun's PR corps must have flipped their collective shit when they read Karen Tegan's remark. While in general I find that kind of bluntness refreshing, a director of Platform Compatibility spouting off and essentially saying, "Well, that sucks for you, but we make money off of compatibility testing. We give everything else away for free, so cut us a break." is really a testament to the Sun Micro (brutally) plain-talking attitude.
.NET takes off, they will loosen up to benefit from a little more old-fashioned agrarian innovation and buzz.
Deeper, though, I think, is the need to rein in Java a bit....It has achieved ubiquitousness, and I think Sun knows it. Watch. If
I guess it would be nice to have SSL built into java, but you could write it yourself, it's not like it's a fundementl language flaw. The specs are out there, and the java Crypto API would probably help you out quite a bit.
autopr0n is like, down and stuff.
This release is not a fina stable release.
It's just the RC:
http://java.sun.com/j2se/1.4/download.html
It's been there for the past two weeks.
You call this news?
see subject
autopr0n is like, down and stuff.
Throw the classpath in your AUTOEXEC.BAT file on the C: drive on your win98 machine. Should work.
autopr0n is like, down and stuff.
OK.. I am a Java fan... (recently this has been changing though.)
.Java. I am really impressed with the CLR/CLI stuff. Right now, as it stands, Java is a proprietary language. Unless we see SUN Open Source Java (or push it through a standards committee), we *may* see a JDK 1.5... but no one will use it.
:)
I have mixed feelings with JDK 1.4.
The JPDA (debugging) support in 1.4 is vastly improved. You can now redefine classes in a running virtual machine. This is really cool and I have written an Ant 'Redefine task to take advantage of this.
The assert facility is OK.... i don't like the fact that they added an Assert keyword but I don't get to make the decisions.
There is also some controversy.
The JSPA agreement that one has to sign to participate in the JCP is WAY too restrictive for Open Source developers. The Apache Software Foundation has a good document where they drawn the line in the sand on their participation.
The Log4J people are upset because there is now a 'stanard' Java package for logging. IMO the 'standard' package is inferior to Log4J in many situations.
The regexp package is not all it is cracked up to be either. I would recommend Jakarta ORO or Jakarta Regexp.
As far as that... it runs GREAT on Linux. Probably the most SOLID VM I have ever run.
They did break some stuff with legacy code. If you ever named a class 'URI' your code will now fail to compile because they put this class in the java.net package which everyone imports anyway.
As far as C# vs
Also.. check out my Reptile project. It is Java based, only requires JDK 1.2 and incorporates some really cool Java/XML stuff.
What good is this platform really?
It seems to me that Java is nothing but slower than other languages, and the write once run anywhere concept has already been bastardized, so whats the point?
Not trying to troll, but Im a developer and I really would like to know why people care about this still?
Are there some good articles out there (besides the sun ones) on how to use the new features?
thx
matt
Are there any _good_ java VMs and class libraries? Kaffe looked decent, but appears to be a little "stale" wrt the current state of the art. Are there any projects working to address this?
I just took a look at the three patents Kodak is suing Sun over, and, huh?
Sure looks like Kodak claims it invented OLE.
Which, hey, they may have, and Microsoft either licensed or stole it.
What's the real story?
--Blair
This is in regard to the kodak suit.
What I find especially bothersome is the the fact that Koday (supposedly) had these patents. They did nothing with them. Sun produced a product, hyped it, sold it, improved it and put in millions of dollars and man hours into it.
Kodak then comes in and demands money after the fact when they made no attempt to actually do anything.
I think that's crazy. Why punish the people who got off their asses and did something especially if the punisher was too lazy or stupid to actually make use of their idea.
This isn't just about sun and kodak either. Who was suing palm recently? Same thing.
Sit on your ass doing nothing, wait for somebody else to do all the work. Then sue them and retire in the bahamas. It's the american way I guess. Sure beats working.
War is necrophilia.
Due to import control restrictions, the JCE jurisdiction policy files shipped with the Java 2 SDK, v 1.4 allow "strong" but limited cryptography to be used. An "unlimited" version of these files indicating no restrictions on cryptographic strengths is available.
The JSSE implementation provided in this release includes strong cipher suites. However, due to U.S. export control restrictions, this release does not allow alternate "pluggable" SSL/TLS implementations to be used
What seems even stranger now is that you cannot used "pluggable" implementations (in JSSE). Maybe the "nasty" europeans/asians/africans/martians would provide some unlimited strong cryptography pluggin otherwise???
The article says nothing about the nature of
the supposedly infringed patents. Here's their
titles:
US05206951
Integration of data between typed objects by mutual, direct invocation between object managers corresponding to object types
US05421012
Multitasking computer system for integrating the operation of different application programs which manipulate data objects of different types
US05226161
Integration of data between typed data structures by mutual direct invocation between data managers corresponding to data types
???
Swing's faster... if you read any of the articles you would have known that already
My favorite thing about using 1.4 is code like this:
public void methodA throws MyException {
try { Driver d = Class.forName(driverClass).newInstance(); }
catch (Exception ex) { throw new RuntimeException("problem loading driver"); }
}
can now be this:
public void methodA throws MyException {
try { Driver d = Class.forName(driverClass).newInstance(); }
catch (Exception ex) { throw new RuntimeException("problem loading driver", ex); }
}
Notice the RuntimeException constructor now has the original exception passed to it. It can be retreived higher up the stack, and I believe is printed during a ex.printStackTrace(...). It lets you pass the root cause exception up the stack trace, while preserving the entire state, without having to declare it everywhere.
But I can't forsee Ruby supplanting Java for large projects. The typing is too dynamic, and this ends up being a big headache and source of problems in larger code bases. More concertely, the lack of compile-time type checking makes it hard for Ruby to scale to big projects. You don't find out until runtime if something is type correct, and even then maybe not until some rare execution sequence occurs. Or, worse, it might be type correct in the Ruby sense (i.e., an object can receive a certain message), but not be at all type correct from the programmer's point of view, which might manifest itself in difficult-to-find bugs.
This is a problem with dynamic casting in Java/C++, too, but in those languages the dynamic type checking is the exception rather than the rule (this will get a lot better when Java introduces parametric types in 1.5). More fundamentally, though, at least those languages offer compile-time type checking support, whereas Ruby does not and cannot (since code can be dynamically injected into objects).
5. Notice of Automatic Software Updates from Sun. You acknowledge that the Software may automatically download, install, and execute applets, applications, software extensions, and updated versions of the Software from Sun ("Software Updates"), which may require you to accept updated terms and conditions for installation. If additional terms and conditions are not presented on installation, the Software Updates will be considered part of the Software and subject to the terms and conditions of the Agreement.
6. Notice of Automatic Downloads. You acknowledge that, by your use of the Software and/or by requesting services that require use of the Software, the Software may automatically download, install, and execute software applications from sources other than Sun ("Other Software"). Sun makes no representations of a relationship of any kind to licensors of Other Software. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF OR RELATED TO THE USE OF OR INABILITY TO USE OTHER SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
Antti S. Brax - Old school - http://www.iki.fi/asb/
What's wrong with the Sun articles? Sun has always done an exceptional job documenting and writing tutorials for the Java API(s) and language. I credit Sun with starting the whole trend of supplying high quality, public documentation with languages and APIs.
Kodak baught a company that was doing stuff with it, or trying to. Now their suing because they wan't more money.
autopr0n is like, down and stuff.
Swing should be much faster under X anyhow, they have totally re-written that sub system.
Sun are putting the desktop on the back burner. I know they mention JFC/Swing in performance improvements but that's not the only place where the effort needs to go. If you search their bug database for open reports on most any GUI component you'll at least a half dozen bugs open, many of them years old (check out JTable and how well done that is). I haven't seen the soure code yet, but I'd also assume they didn't suddenly go "Hey, why did we write StringTokenizer to be such a slow, memory-hogging piece of shit?" or similarly? Sun is like Microsoft - they make as many features as possible, worry about the bugs later and let hardware catch up to overcome their crippling defects caused by overzealous and misinformed OOD. The worst thing is that young programmers are led to think that Sun's code is actually *good* which spreads their poor, inefficient form to the next generations. I would rant on more but I've said this too many times already. Don't worry, I'll stop once I can get enough money to work for myself and dump Java.
I thought http://www.jboss.org/ and http://www.exolab.org/ were getting pretty close to open souece J2EE?
(BTW yes j2se 1.4 does mean scrolling in Netbeans without any plugins).
But, damnit, where is the source for this one.
Swing is much faster on linux, and it is about
8-10 times faster on a remote X session.
Why is this not under the developers section?
I have read the articles. There have also been a lot of these articles when jsdk 1.3 came out and Swing was not much faster. Swing is a cool idea. If it could match the performance of VB on windows or Qt in Linux there would be much more cross platform apps and this would also help linux onto the desktop.
Take a look at www.hackersquest.org.
EverQuest Emulator scriptable in ruby.
I prefer using a more sophisticated error handling object which uses exceptions (I'm talking C++, here) to trap and bubble up errors. This way you can decide what to do about a particular condition based on how severe it is and what avenues for error/status reporting you have access to.
You also don't neccesarily lose important data on an error just because a customer is reporting it (you can log something that you don't want the user to see).
Remember that the closer your debug binary is to your release binary, the more valuable your runtime experience with your debug version is when testing your release version.
Why is Grand Theft Auto a much more serious crime than Reckless Driving?
The article says Wang Labs.
Why is Grand Theft Auto a much more serious crime than Reckless Driving?
It's a shame that Kodak/Wise never enforced the patents to stop MS from developing OLE. That would've saved many people's sanity.
This sig made only from recycled ASCII
> Yes I am a Christian. and No, that doesn't automatically make me stupid, biased or fanatical.
Yes it does make you that!
This means that they are claiming that if you agree to this licence, you are also agreeing to the licence of any application which installs itself (and you have agreed to let it install itself).
I'm sure that that is not legal, and could invalidate the whole agreement. On the other hand, I don't see how a licence agreement that you haven't signed is worth the pixels its printed on.
To say that Sun's online license agreements are binding would be to say that you are not allowed to click on a button with two words on it which is displayed on the web without agreeing to this contract.
As someone pointed out in response to another article, not agreeing to the licence agreement preserves your right to click on the "I Agree" button without agreeing to the licence agreement. It is in the agreement that it says that you agree that clicking the button means that you agree.
Is that convoluted enough?
Why is Grand Theft Auto a much more serious crime than Reckless Driving?
Oh yes, and I nearly forgot a trivial-but-annoying one:
perl -e 'fork||print for split//,"hahahaha"'
I've never used assertions, but they seem a great complement to unit testing. Unit testing allows you to write code to test your functions and easily see if something breaks, the major problem is that they lack an easy way to look inside objects to keep an eye on internal consistency. Assertions can be great to catch those silly little boundary mistakes.
A good unit testing framework for Java is JUnit, they are available for other languages as well.
BTW, you can create your own assertions with Log4J, so even JDK 1.1/1.2/1.3 users can use them:
if(logger.isDebugEnabled())
if (bla>10)
logger.warn("bla>10, bla=" + bla);
This uses almost no CPU-time if debugging is disabled. Log4J is a very good logging package, it surely beats System.out.println, check it out!
The Drowned and the Saved - Primo Levi
I'm so sick of reading this anti-Java crap by people who either (a) haven't used java or (b) have only written small projects in C/C++. I just can't believe the assertions being made by some people.
... almost zero.
Specifically for this posting, I can't comment on the Unicode stuff, but:
* Wrappers work OK. They allow good performance for the primatives without the many problems void* can cause. The wrappers are hardly difficult to use and in fact they're used pretty infrequently.
* Variable arguments to functions: Java is not C. Get over it. Not every feature of C is worth cluttering up the language for. The number of times I've needed varargs in my life is
* You can't create a list anonymously: What about average(new int[] { x, y, z }) ?
* The syntax is intentionally inflexible: Sun added assert even though many people didn't like it. Here's an assert class:
public Class Assert {
public static void assert(boolean assertion) {
if (!assertion)
throw new RuntimeException("blah");
}
}
You can put Assert.assert(boolean) anywhere and it will throw a runtime exception on failure.
This stuff is not rocket science, but hardly anyone posting to these threads seems to have a clue about Java. Java has it's flaws but IMO they are far less serious than C or C++ for writing large applications.
... why most geeks are against software patents.
sigh....
IANAL but write like a drunk one.
Remember, this is Sun the people who released Solaris 2.0 which:
- was the first version of Solaris
- declared itself to be SunOS 5.0
- was an implementation of System V Release 4.0
Obviously being able to count is not a prerequisite for getting a job in Sun's marketing department.
Use Kaffe.
My favourite new feature is that lightweight components can now be run in headless mode - see
C ha nges.html#headless
http://java.sun.com/j2se/1.4/docs/guide/awt/AWT
You have to set a property to true:
-Djava.awt.headless=true
as a switch when running the VM for example. Then you can generate server-side graphics on Unix without having to run XVfb. This has been an annoyance for some time, as you had to have different deployment rules depending on your target OS, as NT always has a graphical environment taking up resources whether you want it or not, so it wasn't an issue there.
The upshot is that you can now use java.awt.Image.BufferedImage as an image source in servlets that generate dynamic images, instead of java.awt.Frame, which always seemed wrong. It uses less resources too, as it doesn't have to do a context-switch to your X server to create images!
Hey, there are lots of great new features in this new release, but that is the first one that made life easier for me.
You can use templates to make C++ put on a pink tutu and dance a little dance for you. Alexandrescu uses them, for instance, to make C++ forcibly multiply inherit a chain of classes into a single child class. He also has a single inheritance template setup and a lot of other sick and twisted stuff that every C++ programmer should at least know about.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
It shouldn't be any harder. You don't need an IDE to write in the Java language for the J2SE platform, but Sun still provides a free(beer) IDE that includes a form designer. Likewise, you don't need an IDE to write in the C# language for the .NET platform, but M$ still provides an expensive IDE that includes a form designer. Besides, the languages are so similar that it may even be possible to take simple business logic (not I/O) written in one language and simply recompile it in the other language.
Will I retire or break 10K?
I use Java at work and I had to beat 5 fucking team leads with a crow-bar to convince them to move to Java 1.2. Now they all run the other way when they see me coming -- it's a lot harder to get near them with a crow-bar. By the time my company gets done with its final focus meeting to decide that moving to 1.4's a good idea, Sun will be releasing Java 2.4 (With telepathic user interface code.) If I get all used to how great Java 1.4 is, work will suck more, and it already sucks so much that light can't escape.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
This signed byte decision really sucked. It makes your code completely convolted. For the love of God - add unsigned types to Java.
I beg your pardon? Does someone hold the patent to "computer system that uses objects" too?
The title of a patent has no legal force. You must read the claims to understand the patent.
Will I retire or break 10K?
The New I/O utility looks interesting -- possibly powerful enough to overcome the problem preventing me from using Java right now: 16-bit characters.
Yes, 16-bit characters are nice for internationalization, but if I'm trying to slurp up 600 MB of data, it really hurts to have to store the text portions using two bytes per character. I know it's not politically correct, but perhaps a choice of char sizes would have been nice? (I'm a Java newbie, though -- there's probably an esoteric way around it.)
1.3 completely broke Java on Cyrix. Once you installed 1.3 you were SOL - every time a VM started, you'd get an illegal instruction error. Sun used an optional P6 instruction that Cyrix chose not to implement to keep power consumption down. Instead of checking CPUID to see if the instruction was available, they just checked the processor familly and assumed that the instructioon was there. Intel's docs clearly state that the instruction is completely optional and that apps should check a flag returned from CPUID before using it.
Sun has known about this for over a year now, but they refused to fix it. Hopefully 1.4 will actually run on by Cyrix box now.
t'nera semordnilap
A wild guess here, but maybe [this article is not in the Developers section] because it is under the Java section?
No, it's under the Java topic, and topics != sections. I would send further discussion (this is already off-topic) to Meta Slashdot Discussion, but according to the hidden sid index, it no longer exists.
Will I retire or break 10K?
Ok, so 1.4 may be faster. 1.4 may be more stable on Linux. 1.4 may be more robust. But, they still didn't fix the thing that annoys me the most about Java. Why is it so freaking complicated to do a simple read from the keyboard???
Someone further down said:
>An enum is just a primative aliased by a name.
Yes, they are, so I can write the C code
enum color={red,green,blue};
switch (color) red:--; green:--; blue:--;
(my sntax may be wrong, but you get the idea)
as Java:
static final RED=1, GREEN=2, BLUE=3;
switch (color) RED:--; GREEN:--; BLUE:--;
(don't remember if you can have mutiple vars inited in the decl, but you get the idea)
But what if I have two enums "ranges" with some of the same names? Like:
enum PersonType={Client, Customer, Vendor, Supplier};
enum ComputerType={Client, Server, Desktop};
if I defined all the enum lables as finals in Java, and then used them in switch statements/assigns on variables, I don't get the type-checking I do in C. So in C:
enum PersonType aPerson = Desktop;
would be flagged as an error, but in Java the equivalent
int PersonType = DESKTOP;
would be perfectly fine as far as the compiler is concerned.
This could be a problem..
This is a very common problem that people run across using the Web Start. The reason is that if you are using a JVM that is a pre-release or has a '-' in the version name, webstart will assume it's a beta and will attempt to download a 'release' version. Here's what you do to trick it:
Hopefully that should cover it.
I tried jDiskReport, and it was really sweet!
-Chris
Hi, I forgot to mention, but when you change the version value from 1.4.0-rc to 1.4.0 you MUST hit enter in the edit field and not just OK or else it won't take the change.
-Chris
...finally works with the old banking applet I'm forced to use. Cheers!
My class and I was at Sun Microsystems in Ireland in 2001. They talked a lot about how good Java was. But when I asked one of the top people this simple question "Why isn't staroffice programmed in Java?", they said "We don't know, actually".
I know why. It's because Java just can't compete with faster languages when it comes to larger programs that require real window handlement. (personal opinion ofcourse).
Now on to the "so-called" platform independability. I personally have been asked several times to convert java programs so they can be run on UNIX platforms (like HP-UX) because they just didnt perform well on those platforms. Instead we chose TCL or similar. Which seem to do the job.
Best luck to Java in the future. Hope you programmers can fix these "small" problems :-).
These people have looked deep within my soul and assigned me a number based on the order in which I joined.
Uh, the following code:
// process next command
DataInputStream din = new DataInputStream(System.in);
while (curLine = DataInputStream.readLine())
{
}
Will read lines of characters from the keyboard. This is difficult?
-Chris
The story should have read "no LICENSED open source J2EE implementations". There are OS J2EE app servers (JBoss), and in fact they are quite good... the problem (as stated in the article) is that it's hella expensive to get the official seal of J2EE. That doesn't mean it doesn't work!
.NET is better, you have to ask how good an open .NET server you're going to be able to build without ASP.NET or Windows Forms. Neither of those are part of the current ECMA submissions, though as stated in the .NET article yesterday they are expected to be submitted at some point...
.NET (at least under windows). It will be interesting to see if .NET app development is nearly as annoying as MFC was (I doubt it will be).
Now if you think
At the moment J2EE has gone through a lot of refinement, and I think makes a pretty good platform for server side development. I think desktop code is still up for grabs by either Jvaa or
"There is more worth loving than we have strength to love." - Brian Jay Stanley
...what MS employees who get paid to make fake posts on Linux geek discussion groups as anonymous cowards try to erect to cover their tracks.
Eternal vigilance only works if you look in every direction.
Others have corrected some other points pretty well, but I thought I'd throw in two other points I didn't see well covered:
1) Warnings/errors. After many years of real world programming, I'm going to say right now that that is an error. If you find a variable that is not initialized, it is going to be a bug - even if not now, nine times out of ten it will be at some point in the future.
I personally am happy to have that not compile instead of relying on someone else to run lint (or the equivilent) frequently over the code... things like this are one of the reasons Java programmers don't need to run Lint style checks much. The langauge and general programming conventions help elimiate "dumb as a hammer" errors that we ALL make from time to time.
2) Java has some nice internationalization support if you really care to do it correctly for all cases - you can use a BreakIterator to properly navigate through a string for any language.
Java has always had (I think) well thought out tradeoffs between performance and ease of programming that led to things like this, but generally always supported some way to do things "more correctly" if you really needed to - wrapper objects are an example of this is so is String not handling characters wandering past 16 bits in size. You have the primitive type wrappers if you need them (as you noted), and also the heavy-duty internationalized support classes like BreakIterator and Collator.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
I understand that sometime in the not too distant future, a MinGW distribution for Windows will be available.
I use Java for most of my development using IBM's (sometimes Sun's) JDKs, but I hope in the future to use the GNU tool chain for many projects.
-Mark
I enjoy developing with Java, but for the last year or two I have increasing felt that the time is appropriate to freeze the platform except for bug fixes.
A similar situation existed a few decades ago in the Lisp world: there were many great dialects of Lisp and a large committee effort stirred everything together as ANSI Common LISP. Is Common LISP perfect? Of course not, but it is a very stable platform supported by both free Open SOurce implementations and several very good commercial products.
I would like to see Sun slow down the marketing-driven new releases.
I think that the Java community would now be best served by a stable frozen platform.
Anyway, just my opinion :-)
-Mark
Does anyone know anything about the status of multidimensional arrays?
I've poked around a bit at JavaNumerics and jcp.org, but couldn't find much more than "we're looking into it."
While this may be a useful addition to the language, I am somewhat pissed off about the way the keyword was introduced. Despite the temporary "strategy" offered by Sun in the latest JDK to avoid problems with legacy source code containing "assert" as an identifier, a LOT of code will need to be rewritten. For example, Java implementations of rules engines and expert systems commonly use "assert" as a method name (the function of this method in rules systems is similar to the function of the keyword). This should have been a reserved keyword from version 1.0 and up!!! Supposedly, assertions were part of the original spec, ao I am puzzled why they weren't more careful (I mean, GOTO is a reserved keyword, so WTF?). Sun has done a good job of managing the Java specification, but this was definitely a fsck-up!
Dude, read up. There is an excellent discussion of the reasoning behind their design decisions. They give a very good justification for adding a keyword; in fact, it's one of the FAQ questions:
Unlike a lot of other languages (C++ and C# spring to mind), the Java designers have been very tight about letting multitudes of constructs into the language. Java's minimality and internal consistency is one of the reasons it's been so successful, and its designers know this. They are very intelligent people who are making decisions very carefully -- and they're not going to add something to the language unless they have a very good reason.
In this case, they have a very good reason.
Java chars are 4 bytes long, just like java integers. Maybe you're thinking of shorts?
Because Java contains a lot of special-casing for String objects (such as overloading '+' and forcing a toString() method in every class), and because String is final, you can't write your own class BetterString which fixes this unicode problem and still works like a String.
Ever heard of security? Stability? Do you know what immutable objects are? Can you imagine the havok that would insue of Strings could change their values arbitrarily after creation time? If you didn't answer yes to all three, shut up.
There is no universal type like void* in C. There is Object, but primitive types (int, char, float, etc.) are not objects. You can't pass them by reference. There are duplicate, object wrappers for these (called Integer, Character, etc.) which can be passed by reference, but you spend stupid amounts of time wrapping and unwrapping primitives.
The only time this is ever at all a bad thing is when you try to put primitives into collections that take objects. Hopefully the plans for generic collections will allow you to move the two lines of code that convert the primitives to objects and back will be replaced by a more interesting two lines of code somewhere else.
A function cannot take variable arguments of arbitrary type. The closest you can get is a function which accepts an array of Objects. (But Object is not a universal type - you can't give primitives to such a function without wrapping them).
Just suppose you could find a genuinly good use for a function that needs variable arguments of unpredictable type -- and object array is as good as anything. Just wrap any primitives and declare the array right where you need it (although you don't appear to know that such a thing is possible -- see next response).
You can't create a list anonymously. if x, y and z are ints, and "average" is a function which takes an array of ints, you can't do "average({x,y,z})". This makes the previous limitation more serious.
RTFM. Try average(new int[]{x, y, z}).
Things that should be warnings are in fact errors. For example, this snippet won't compile, because "a might not have been initialized": int a;int b = 0;if(b == 0) {a = 1;} System.out.println(a);. There are times when you want to write code logically equivalent to this, but the compiler makes you pointlessly initialise the variable at the start. The programmer may know things that the compiler doesn't; in this instance, that a will be initialised. It would be better for the compiler to merely warn, and then a runtime error to occur if the programmer was wrong.
Java warnings are, quite honestly, the best thing since sliced bread. I watch people trying to write C++ programs who regularly forget to initialize variables and spend hours trying to figure out what's going wrong. Java 1.4 is getting even stricter with the rules for acceptable code, which means that more programmers will have to fully understand the implications of what they've written. This is a Good Thing (TM).
The syntax is intentionally inflexible. To add a worthwhile "assert" statement, Sun had to add it to the core language, which is something that only Sun can do. Compare C, where anyone can write a reasonable assert macro. The same thing will apply to other things which you might want to do, but can't.
Have you ever seen an obfuscated java contest? I rest my case.
byte is signed in Java - instead of running from 0 to 255, it runs from -128 to 127. If you want to write the byte 0xA9 ( = 169) to a binary file, you have to call it -31
Every primitive number type is signed in java. That means number types are few and consistant. No warnings (not that these warnings are bad) about implicit casts between signed shorts and unsigned longs. If you must hold a number between 0 and 255 directly in a primitive, use the int type. It you want to complain that the int type will hold numbers that are too big, just & off all of the bits you don't want before you display the final number or whatever.
where is it?
4 25 7&mode=thread&tid=122
r y_ id=2602
i remember reading
http://slashdot.org/article.pl?sid=01/12/23/031
http://daily.daemonnews.org/view_story.php3?sto
yeah whatever?
remove NOT from email.
For example, if you have code like this:
import java.sql.*;
// start up a class, do some stuff, and then...
import java.util.*;
Date date = new Date()
The compiler will come back with a message like: "Can't figure out if you mean java.sql.Date or java.util.Date". So its not ever a namespace clash, because the compiler catches those problems before they get started.
As far as poor documentation of dependencies, that isn't really a factor either. You can't look at the import section to determine class dependencies anyway, because you don't have to import a class to use it. You might want to make that a convention, but its one of those things that is hard to maintain over a lot of code. If you want to call that 'source-code-level documentation' you can, but that's not what it is. Its not 'source-code-level' any more than the javadoc comments are.
-Mike
Anybody else find the timing of the big .Net rollout and the publisizing of Kodak's patent lawsuit against JAVA interesting?
MS using Kodak to make JAVA look more risky?
Java is NOT slow, Java code can run very quickly, especially if written properly, just like most other languages. It may not be as fast as optimized C++ code, but it's not slow, either.
Java ISN'T perfect, but you're beating on points that are simply wrong. You should probably learn about what you're talking about before you post. Write that one down.
I see the biggest issue being that Sun essentially has a choke hold on Java, particularly J2EE. Improvments and updates are unlikely to come as quickly as they would if Java were more open.
Computer Science is Applied Philosophy
I imagine that Sun's marketing wanted to appease IT managers whom are weary of any thing that is versioned 1.x, while appeasing developers who hate version inflation. Java was renamed "The Java 2 Platform" and the JDK was renamed J2SE.
Will there ever be a Java 3? Possibly, but the dual versioning would start getting absurd because the same product would have two mutable version numbers, confusing the situation even further (plus J2EE would be renamed J3EE).
Another good question: will the next major release of MacOS be X 11.0 or XI 11.0?
I just started rolling out a javahelp application on my 'doze boxes, only to find that hsviewer crashes. These are fully patched W2K boxes, and trawling the web produces no mention of hsviewer.exe exploding in on itself. Suggestions ? (apologies for the offtopic post - my monday deadline prompted it).
JDK1.4 has alot of features, but the biggest improvments is BUGS! The Java group spent 6 months doing nothing but fixing bugs. We went from 60 bugs in the Server compiler down to 0. JDK1.4 is much more stable the previous releases
SunOS is core components (i.e., kernel), while Solaris refers to entire "operating environment." Dickweed.
DataInputStream din = new DataInputStream(System.in); // Wathever chars you want.
// process next command
// key at a[0]
byte a[]=new Byte[1];
while (DataInputStream.read(a)!=-1)
{
}
Is'nt easy?
Won't work -- the DataInputStream doesn't get any data until the user presses enter. Sux.
TogetherJ is the cutting edge dog testicles of Java IDE's, if you think all Java GUI's are crummy check it out!
TogetherJ is truly amazing Java product, and anyone who doubts the capabilities of the language should be forced to watch a demo (and some of us have the irony of coding C++ in a Java IDE with TogetherC, not me fortunately).
IBM's 1.3 series of JVM's are faster, more stable and better supported than the line series. How long are we going to have to wait until IBM releases their version. IBM have been throwing their weight around recently with Java (& Linux). Lets see if they are willing to keep up that so called support.
I'm a big fan of JBOSS, and (though I haven't tried it) would've liked to see Enhydra succeed as open source. But I don't see why Sun should grant a J2EE trademark to them. Sure, the price might have been outrageous, but companies like IBM and and BEA seem willing to pay it. Sun allowed them to see the source from the reference implementation and allows them to use the parts of it that haven't been implemented independently yet.
The spirit of open source isn't about marketing. And the J2EE mark is just that. JBOSS is very successful on its own right, and whether Sun blesses it shouldn't matter. Apache has succeeded without Netscape or Microsoft's compatibility certification, though there are still companies who feel more comfortable with a web server branded by a large corporation. Though this draws comparison with Versign refusing to recognize certificates from Apache, its not quite as bad, and eventually, they were forced to accept. Anyway, verisign isn't exactly to be held up as a model corporate citizen
It might be desirable for Sun to open up java to public standardization, but I don't think anyone build on java expecting that to happen. Its like WINE expecting Microsoft to certify it as 100% Windows compatible (even if it really were.)
It may be one day that people will want their J2EE implementations to be JBoss compatible.
Two thumb up on JDK1.4. The new io (nio) alone is worth the switch. I've been playing with it since beta one, and except for a strange bug (now fixed) in UDP where all incoming packets on all channels each falsely reported their origination address as having come from the same address as was reprorted on the first packet... except for that!:)... this stuff rocks. Packet transmission speeds are up something like 40-50% or more if I recall correctly. It's quick.
The Channel abstraction for talking to sockets also happens to be a nice one. The whole nio library has the taste of having been well-thought out by someone who really new what he was doing.
C//
Try the following snippet out on jdk 1.3.1 and 1.4.
public class JDK14Bug {
public static void main(String[] args) {
java.rmi.server.RemoteServer.setLog(null);
}
}
The javadoc says "Log RMI calls to the output stream out. If out is null, call logging is turned off."
To me 1.4 is broken. If I pass in a null I now get a NullPointerException with 1.4.
So I raised a bug on the java.sun.com site. A couple of weeks ago I get an email telling me it is a duplicate of another bug (which it isn't!). I was also told this is now the expected behaviour. It clearly doesn't follow the javadoc and has broken existing behaviour. I asked for Sun to look again but alas no reply.
What gives!
I am on a s-l-o-w dialup connection, and it is almost impossible to download a 12MB file, in one shot, under this condition.
Therefore, I need to find a place where I can do somekind of "getright" or "netvampire" type of "segmented" download.
In other words, I need to find an exact URL (either HTTP or FTP) so to get the "segmented" download session going.
Is there anyone who can provide the exact URL for the Java 1.4 JRE kit, please?
Thanks in advance !
Muchas Gracias, Señor Edward Snowden !
I mention autopr0n in my sig, but the majority of my posts here do not talk about it. If you want to see for your self, just go here and read the last 25 commenst I've made.
autopr0n is like, down and stuff.
The poster disagrees with my interpretation of the quote (the jury is still out for me on which interpretation is more accurate), and says so in a polite enough manner.
My response was to think about what he said and consider it seriously.
I agree with some of your points, and disagree with others; however, I have little emotional incentive to seriously consider your points or respond to them since your post comes across as arrogant and offensive.
Perhaps sometime you will not be perfectly and unambiguously correct about something, and someone else will point it out. Will you be more likely to listen to them if their comment begins by calling you an idiot?
Anyway, it would be nice to have a stimulating discussion in which we potentially learn something from each other rather than a pissing contest where we assert our egos. In response to my misstatements, I would much rather hear, "here's the real scoop" than "shut up because you don't know what you're talking about."
Why is Grand Theft Auto a much more serious crime than Reckless Driving?