I agree. Enumerated types are something Java has been lacking for too long, so these type-safe enums will be welcome (though Joshua Bloch, the specification lead on JSR 201, has a nice alternative in his excellent Effective Java book).
I really don't care much about the rest. I'll give the generics and the autoboxing a go, but I don't really like the new for loop syntax. Firstly I think it's ugly, they've compromised to avoid adding a new keyword (I don't really know why, they were happy to add new keywords in 1.2 and 1.4) and it also means that for the first time we get built-in language support for classes outside of the java.lang package, which strikes me as a bit strange.
What would be nice from a purely aesthetic point of view (it'll never happen because of backwards compatibility) is if we could have a Java 2.0 (which would be confusing in it's self since 1.2 was "Java 2") that cleaned up the messy parts of the core libraries. Move the collections framework out of the java.util package either into the java.lang package (since we know have built-in language support for it) or into it's own package, remove all the of the methods/classes that were deprecated in or before 1.2 (developers have had enough notice to stop using them and legacy code is likely to continue running on old runtimes), fix naming inconsistencies (System.arraycopy should be System.arrayCopy for one, and do you call size(), getSize() or length() to find the size of something?).
As somebody pointed out below, varargs are not mentioned in JSR 201, they won't be in 1.5. I can see from my limited experience with C++ that they can be quite powerful but I'm not keen on them. They can turn compile-time errors into runtime errors and it would make method overloading more complicated.
Every Java programmer instantly recognizes the head of an "iterator for-loop". It's an idiom.
Personally I don't like for loops with Iterators, it just seems not quite right (I think it's a hang-over from my days as a Pascal programmer). I always use a while loop.
It's correct to say that the start-up time for JVMs is a concern (more so than actual Java execution speed) but fortunately things are getting better in this respect. Java 1.4.2 (which is in beta at the moment) has made some significant improvements in this area.
This article about how NASA develops software for the shuttle makes for interesting reading. It's a whole different world to the way most commercial (and open source software) is developed.
Re:this is all well and good
on
GCC 3.3 Released
·
· Score: 3, Informative
...I can tell you with certainty that Visual SourceSafe 6.0 is a steaming pile of dog turd that needs to be exorcised, not bug fixed.
Amen. I wouldn't have thought it possible to write a product that makes CVS look like a sensible choice for source control if I hadn't seen it with my own eyes.
We used to use SourceSafe, now we use CVS. CVS is an horrific train-wreck of an application but compared to VSS it's a triumph of software engineering.
SWT doesn't break write-once-run-anywhere. Once SWT is ported, Eclipse compiles with no changes. Eclipse is far from a trivial application.
Yeah, I wish I had phrased that better, but at present if you want to run eclipse on Linux and Windows you have to download a different version for each platform (because the appropriate SWT implementation is included in the bundle). However if IBM were to take control of Java they would have the option of making SWT part of the core platform,much like AWT is, so each JRE would already have the classes available and applications would not have to bundle platform-specific libraries. And if that happened SWT would be a more attractive option (I couldn't say how the SWT API compares to the Swing one as all my experience is with Swing/AWT at present).
Java will not be disappearing any time soon. Too many big name companies (most notably IBM and Oracle) have invested too much money in Java for them to let that happen. Also, with the way that Java is developed, through the Java Community Process, any potential buyer would find it difficult to exert full control over the the technology. For a closed product, Java is pretty open.
IBM would be the most obvious candidate as Java and particularly open-source Java offerings (such as the Jikes compiler and Eclipse IDE) are a big part of their software activities. They develop their own IDEs and app-servers and ship JVMs for several platforms that have routinely out-performed Sun's equivalent offerings.
It would also be interesting to see how the SWT vs Swing issue would work out if IBM were to become Java's new guardians. Swing is the Sun graphics toolkit for Java and is the standard for client-side Java. It's fully platform independent and uses pluggable look-and-feels with lightweight components to emulate the look and feel of the native platform. SWT is IBM's alternative that is used in the Eclipse IDE. It's not quite so portable as it provides an abstraction on top of the native windowing system but it has advantages in terms of performance and closer integration with the underlying system. It breaks the write-once-run-anywhere philosophy but is growing in popularity.
Oracle could be another contender, they too use a lot of Java, particularly for their client-side tools (which it has to be said weren't very good last time I used them) and they partner with Sun on the database/hardware front.
Apple could be a dark horse, they have a vested interest in Java. In a world where the desktop is dominate by Microsoft, the availability of Java software is a good thing for them as it means there will always be software that runs on Macs. They have put a lot of effort into supporting Java in MacOS X and gone further than other operating systems to help Java applications fit in with the look and feel of the platform.
A lot of people don't realise just how much Java coding is going on out there, because most of it is hidden away on the server side. This site claims that Java is the world's most popular programming language by some distance (though you may argue about the accuracy of their method of measuring these things). I also read elsewhere (can't find a link) that there are more lines of Java being written these days than any other language.
Re:How about legacy-free cars ?
on
Legacy-Free PCs
·
· Score: 2, Funny
Many people don't know it, but today's cars--including the one you're driving right now
I would like to think that most Slashdot readers have the good sense to avoid such dangerous web-browsing habits.
Re:ISA slot adapter card for PCI slot?
on
Legacy-Free PCs
·
· Score: 1
Does anyone make an ISA slot adapter for PCI slots?
Nice idea but, ignoring the electronics, it probably wouldn't be very useful as it would raise the height of the slot and then a standard ISA card wouldn't fit in your case properly.
An interesting point, and this process is more advanced in Europe where European Freedom of Labour laws dictate that all workers in the European Union are free to move between the various member states and have the same rights as local workers.
So for example, an Italian is free to go and work in Ireland, a German can be employed in Spain, an Englishman in France etc.
Things will move further along this path next year when the EU is expanded from 15 to 25 members, with countries like Bulgaria and Romania joining. However Turkey will not be joining yet as the current member states are concerned that Turkish workers would flood Europe with cheap labour.
The only barriers to this type of economic migration are cultural and more specifically language differences.
It's all part of the field of bio-informatics, biology-inspired metaphors for solving problems with computers. If anyone's interested in Genetic Algorithms, I strongly recommend Melanie Mitchell's book (not a referal link). It covers the area in an interesting way and provides lots of pointers for further reading.
- are happy to learn how to make managed code/vm code call to native and vice-versa (this is far from a trivial problem)
Fairly straightforward, spent some time doing just that this week, a couple of little gotchas but fairly painless overall (though personally I'd have rewritten the native part in Java, given the problem at hand).
Unless everybody in your team is going to be forced to use the same IDE, you need another solution. IDEA is great from what I've seen of it, but in our team of five developers we use five different IDEs/editors with everything tied together with Ant and CVS.
Reminds of Maslow's quote: "If the only tool you have is a hammer, every problem begins to look like a nail" (or something similar).
Sure, you can solve the problem with make, but you have an extra step that's not necessary with Ant as all the tasks are written in Java and therefore cross-platform without requiring platform-specific configuration.
Make is great for development where the specifics of the platform are important but, in my opinion as a Java developer, Ant is better suited to Java development.
Autoconf can do detailed dependency checks, e.g. whether the int is 2 bytes or 4 bytes, or if the compiler can handle some things
Ant is primarily for Java development, where these aren't really issues because the target is a virtual machine. Data types are the same size regardless of platform (int is always 4 bytes etc.).
Why would you want to use an inferior tool like Ant just for "the abiity to be cross platform" ??? This is where their argument really falls flat. After all, Ant is a Java tool, right? Java is cross platform. You compile it on one platform and run it on many others -- you don't recompile your Java code on each platform! Where's the need for a cross platform Java build tool? This really doesn't make any sense at all.
Well we use multiple platforms for development (Linux, NT, XP, Win2000) and Ant (plus xdoclet and JUnit) makes it easy for us to just get the code from CVS and have it compile and run straight off on any platform, no messing.
Consultant: It involved a near global catastrophy which occured aroung the 19th century. Only the speedy responce by excellent programmers saved civilisation.
I didn't know that. You'd have thought that they'd have learned from that and not let it happen again in the 20th century.
I agree. Enumerated types are something Java has been lacking for too long, so these type-safe enums will be welcome (though Joshua Bloch, the specification lead on JSR 201, has a nice alternative in his excellent Effective Java book).
I really don't care much about the rest. I'll give the generics and the autoboxing a go, but I don't really like the new for loop syntax. Firstly I think it's ugly, they've compromised to avoid adding a new keyword (I don't really know why, they were happy to add new keywords in 1.2 and 1.4) and it also means that for the first time we get built-in language support for classes outside of the java.lang package, which strikes me as a bit strange.
What would be nice from a purely aesthetic point of view (it'll never happen because of backwards compatibility) is if we could have a Java 2.0 (which would be confusing in it's self since 1.2 was "Java 2") that cleaned up the messy parts of the core libraries. Move the collections framework out of the java.util package either into the java.lang package (since we know have built-in language support for it) or into it's own package, remove all the of the methods/classes that were deprecated in or before 1.2 (developers have had enough notice to stop using them and legacy code is likely to continue running on old runtimes), fix naming inconsistencies (System.arraycopy should be System.arrayCopy for one, and do you call size(), getSize() or length() to find the size of something?).
As somebody pointed out below, varargs are not mentioned in JSR 201, they won't be in 1.5. I can see from my limited experience with C++ that they can be quite powerful but I'm not keen on them. They can turn compile-time errors into runtime errors and it would make method overloading more complicated.
Every Java programmer instantly recognizes the head of an "iterator for-loop". It's an idiom.
Personally I don't like for loops with Iterators, it just seems not quite right (I think it's a hang-over from my days as a Pascal programmer). I always use a while loop.
It's correct to say that the start-up time for JVMs is a concern (more so than actual Java execution speed) but fortunately things are getting better in this respect. Java 1.4.2 (which is in beta at the moment) has made some significant improvements in this area.
This article about how NASA develops software for the shuttle makes for interesting reading. It's a whole different world to the way most commercial (and open source software) is developed.
Amen. I wouldn't have thought it possible to write a product that makes CVS look like a sensible choice for source control if I hadn't seen it with my own eyes.
We used to use SourceSafe, now we use CVS. CVS is an horrific train-wreck of an application but compared to VSS it's a triumph of software engineering.
SWT doesn't break write-once-run-anywhere. Once SWT is ported, Eclipse compiles with no changes. Eclipse is far from a trivial application.
Yeah, I wish I had phrased that better, but at present if you want to run eclipse on Linux and Windows you have to download a different version for each platform (because the appropriate SWT implementation is included in the bundle). However if IBM were to take control of Java they would have the option of making SWT part of the core platform,much like AWT is, so each JRE would already have the classes available and applications would not have to bundle platform-specific libraries. And if that happened SWT would be a more attractive option (I couldn't say how the SWT API compares to the Swing one as all my experience is with Swing/AWT at present).
Java will not be disappearing any time soon. Too many big name companies (most notably IBM and Oracle) have invested too much money in Java for them to let that happen. Also, with the way that Java is developed, through the Java Community Process, any potential buyer would find it difficult to exert full control over the the technology. For a closed product, Java is pretty open.
IBM would be the most obvious candidate as Java and particularly open-source Java offerings (such as the Jikes compiler and Eclipse IDE) are a big part of their software activities. They develop their own IDEs and app-servers and ship JVMs for several platforms that have routinely out-performed Sun's equivalent offerings.
It would also be interesting to see how the SWT vs Swing issue would work out if IBM were to become Java's new guardians. Swing is the Sun graphics toolkit for Java and is the standard for client-side Java. It's fully platform independent and uses pluggable look-and-feels with lightweight components to emulate the look and feel of the native platform. SWT is IBM's alternative that is used in the Eclipse IDE. It's not quite so portable as it provides an abstraction on top of the native windowing system but it has advantages in terms of performance and closer integration with the underlying system. It breaks the write-once-run-anywhere philosophy but is growing in popularity.
Oracle could be another contender, they too use a lot of Java, particularly for their client-side tools (which it has to be said weren't very good last time I used them) and they partner with Sun on the database/hardware front.
Apple could be a dark horse, they have a vested interest in Java. In a world where the desktop is dominate by Microsoft, the availability of Java software is a good thing for them as it means there will always be software that runs on Macs. They have put a lot of effort into supporting Java in MacOS X and gone further than other operating systems to help Java applications fit in with the look and feel of the platform.
A lot of people don't realise just how much Java coding is going on out there, because most of it is hidden away on the server side. This site claims that Java is the world's most popular programming language by some distance (though you may argue about the accuracy of their method of measuring these things). I also read elsewhere (can't find a link) that there are more lines of Java being written these days than any other language.
Many people don't know it, but today's cars--including the one you're driving right now
I would like to think that most Slashdot readers have the good sense to avoid such dangerous web-browsing habits.
Does anyone make an ISA slot adapter for PCI slots?
Nice idea but, ignoring the electronics, it probably wouldn't be very useful as it would raise the height of the slot and then a standard ISA card wouldn't fit in your case properly.
To me this is what science is about, otherwise the world would still be flat.
The world was never flat.
Can I be the first to call April fools
No.
An interesting point, and this process is more advanced in Europe where European Freedom of Labour laws dictate that all workers in the European Union are free to move between the various member states and have the same rights as local workers.
So for example, an Italian is free to go and work in Ireland, a German can be employed in Spain, an Englishman in France etc.
Things will move further along this path next year when the EU is expanded from 15 to 25 members, with countries like Bulgaria and Romania joining. However Turkey will not be joining yet as the current member states are concerned that Turkish workers would flood Europe with cheap labour.
The only barriers to this type of economic migration are cultural and more specifically language differences.
Willard: They say your methods are unsound.
Kurtz: Are my methods unsound?
Willard: I don't see... any method... at all, sir.
Thanks for the link (should be http://snapshot.opera.com/unix/intel-linux/365-200 30307-7.0.0-P2/ though), I've been waiting for Opera 7 on Linux.
SHIFT+CLICK = Open in new Window.
CTRL+SHIFT+CLICK = Open in background.
It's all part of the field of bio-informatics, biology-inspired metaphors for solving problems with computers. If anyone's interested in Genetic Algorithms, I strongly recommend Melanie Mitchell's book (not a referal link). It covers the area in an interesting way and provides lots of pointers for further reading.
Well that would probably be a bug in IE4 since, according to the W3C, that page is perfect XHTML.
Chocolate fireguards.
a while ago, the person discovering it, named it. not sure if thats still the case
Only if this one was discovered by Mr. S/2002 J1.
- are happy to learn how to make managed code/vm code call to native and vice-versa (this is far from a trivial problem)
Fairly straightforward, spent some time doing just that this week, a couple of little gotchas but fairly painless overall (though personally I'd have rewritten the native part in Java, given the problem at hand).Unless everybody in your team is going to be forced to use the same IDE, you need another solution. IDEA is great from what I've seen of it, but in our team of five developers we use five different IDEs/editors with everything tied together with Ant and CVS.
Reminds of Maslow's quote: "If the only tool you have is a hammer, every problem begins to look like a nail" (or something similar).
Sure, you can solve the problem with make, but you have an extra step that's not necessary with Ant as all the tasks are written in Java and therefore cross-platform without requiring platform-specific configuration.
Make is great for development where the specifics of the platform are important but, in my opinion as a Java developer, Ant is better suited to Java development.
Autoconf can do detailed dependency checks, e.g. whether the int is 2 bytes or 4 bytes, or if the compiler can handle some things Ant is primarily for Java development, where these aren't really issues because the target is a virtual machine. Data types are the same size regardless of platform (int is always 4 bytes etc.).
Why would you want to use an inferior tool like Ant just for "the abiity to be cross platform" ??? This is where their argument really falls flat. After all, Ant is a Java tool, right? Java is cross platform. You compile it on one platform and run it on many others -- you don't recompile your Java code on each platform! Where's the need for a cross platform Java build tool? This really doesn't make any sense at all.
Well we use multiple platforms for development (Linux, NT, XP, Win2000) and Ant (plus xdoclet and JUnit) makes it easy for us to just get the code from CVS and have it compile and run straight off on any platform, no messing.
Consultant: It involved a near global catastrophy which occured aroung the 19th century. Only the speedy responce by excellent programmers saved civilisation.
I didn't know that. You'd have thought that they'd have learned from that and not let it happen again in the 20th century.