In other words, it's a Java app installer that requires that you have Java installed.
Um...yeah. Whats your point? Java Web Start is part of the java runtime from Sun. If you go to www.java.com and "Get Java" you'll get Java Web Start too. Just think of it as a bonus feature.
The issue is that most classes of desktop applications run poorly in cross-platform fashion, due to deployment issues, GUI and UI issues, and/or the use by the app of technology that exists isn't cross-platform, because Pure Java doesn't cut it
Ive used Web Start for some time now. I click on the app (either in a web page, desktop icon, or directly in Web Start), Web Start downloads the app and checks for updates, and than it launches. If the app uses Java Swing, it looks and operates the same on all platforms. Once the app is download it is saved on your computer.
As for technology thats on one platform thats not on another I can only hazard to guess you are talking about something like using ActiveX in Linux or something. Hell, dont use ActiveX if you want to be cross platform. Duh. But pure Java itself has no functionality that is platform specific which is why its cross platform.
The LD_ASSUME_KERNEL mess on GNU/Linux comes to mind.
Thread libs always been a bitch. What does this have to specifically do with Java? I know some old java virtual machines dont work right if you dont set the environment variable. But than again lots of old non-java programs wont either.
After all, the backwards compatibility is a best-effort thing, hardly a guarantee.
Yeah. Thats why there is a testing phase when you build applications. But in six years I have yet to see a pure java app NOT cross-platform 100%. Im sure you'll say Im just lucky. Luck or not, until than its kinda hard to sway me to believe otherwise.
I find it utterly hilarious that people say that Swing proves Java is fast, because the really fast parts aren't written in Java.
Swing is called a light-weight gui since it has no native peers. This means there are no native widgets in otherwords. Whoever said Swing is fast?
Azurues uses SWT. SWT is not Swing. SWT uses native widgets. SWT is generally faster than swing because of this.
BUT what people dont get is why Swing exists. SWT, although faster, operates differently on different platforms and looks different. Windows widgets look different than GTK or Qt based ones. SWT problems is the same as any other cross-platform gui like WxWindows. Swing though always looks the same no matter what the platform is. This means Swing apps look and operate the same no matter what the platform.
For Windows perhaps. But if you're going to confine yourself to Windows, why bother with Java?
Java Web Start, atleast the one from Sun, is available on SPARC, Solaris X86, Linux, Mac OSX, and Windows.
You should compare a Java text editor to a native text editor
Well, if you take out the virtual machine Java would be about equal or better. Now you probably say thats not a fair comparison and I cant do that. But those Java crazy's are working on a single VM for multiple apps targetted for release 1.6. You can do this currently yourself too. I did this recently where I have two java apps launched from a single VM.
but, again, if you're going to tie yourself to a specific version of a VM on a specific platform, why use Java at all?
Are you talking end user or programmer? As a programmer, I can write in Java and know it will run on multiple platforms.
End users dont need to worry much about this. Recent versions of Suns java jvm updates itself. Since java is backwards compatible this means your incompatibility version issue is not really an issue.
I think that the fact that you felt the need to escape from Java and use an ActiveX control is all the proof that's required.
The activeX control was an Internet Explorer browser. Since I didnt feel like writing Internet Explorer again in Java it seemed like the smart thing to do. Your original argument was that Java apps did not play nicely with native ones which I proved incorrect.
Like COBOL, yes.
Yep. Only difference is Java apps are growing in numbers whereas theres often no new Cobol apps.
This makes it a pain if you want to deliver an application to the user with minimal hassle.
Not really. There is Java WebStart which solves this issue. Commericial products like InstallAnywhere solved this also. Old issue.
Java's "slowness" has at least three components: startup time, garbage collection delays, and the huge footprint which triggers swap activity.
Start up time is slow. It takes approx a couple seconds. Ofcourse this is a one time cost that interpreted languages go through. C# has the same problem.
Garbage collection delays? Ive never seen this as a big problem. With good coding practice (create fewer objects, reuse etc) this becomes invisible.
Memory swapping? You must have a mighty large java app or very little memory. As for java being a memory pig that is questionable since IE, mozilla, and about a dozen other apps I run on my computer consume more memory than my java apps like Azurues. Go figure.
It insists on reinventing everything, it insists on abstracting everything, and it insists on total control over the environment.
I just wrote a java app the other day that embeds an activeX control within it. Worked great. Ive written C++ apps that use Java (gcj) and it worked great. I think youll have a hard job trying to prove that strange view.
I think it condemns Java to a perpetual "behind the scenes" existance, growing ever more baroque appendages in its invisible niche, until its burdensome legacy is swept away by something more open
Java is already open. Go look at projects like GNU classpath or Kaffe. Javas invisible niche is kinda hard to miss since it covers most IT departments here in the United States and abroad. A bit hard to miss. You can go to SourceForge and see that it is currently almost exceeded the number of C and C++ apps.
Your example more fits C# at its ilk which has had very slow adoption.
If resizing a window is "slow" you probably just have a crappy computer. Azureus uses SWT which uses native widgets. In other words, if Azureus resizes slowly that would mean the rest of your apps not written in java do the same.
Even some of us regular slashdotters use XP. Have to for certain apps. Sure, there is alternative OSS but many have not reached a level of maturity equal to what can be found on XP. Some day soon maybe...
Just a little gossip chatter that there is fears of "anti-American" slogans being displayed at the games. The Olympics board has no control over what the BBC decides to cover which could possible include such footage. So, a little censorship should prevent us from thinking no one out there likes us. That will make them go away right?
I have to take back my "vomit" comment for FLTK. I can see where such a light weight gui is totally practical. Not easy on the eyes but, hell, neither am I.:)
I tried an app written Fox. Slowwwww. I actually watched it take several seconds to render the window on my desktop. I looked at a few sample FLTK screenshots and vomit came to mind. "Light" speaks volumes there. WxWindows, which I tried in the past, showed no performance advantage over SWT, a native widget lib in java by IBM. Do you have something decent to support your argument or is that pile of crap the best you got to offer?
I noticed something one day: lack of sex in Sci-Fi. This makes no sense since (1) most sci-fi viewers are guys and (2) they are generally sexually starved geeks.
Great. This is just what the world needs. Ant has something like 100 different tags with like 10 attributes to each of those. Creating large projects with Ant becomes a huge task of managing xml errors while trying to get the damn thing to build something. Now lets add some complication! People will love this. Eat it right up!
Someone really needs to build a better make. Make a better make. Whatever. If your one of those wacky open source coders who dont have a project to waste your time on this planet behind a computer than this is a project for you!
Yes, I've used 'ant' which is very slow to start up
Ant build files are written in XML which ofcourse means Ant needs an xml parser in order to read the file. For some reason they picked Xerces for the job. Xerces is well known for being feature rich but also for being bloated and slow. As for the build file structure I wouldnt say Make is much cleaner.
Anyhow, someone gave you time measurements on app startup with Ant vs Make. No, they did not run Ant on a build file because you said Ant startup was slow. The reading of the build file is not the app startup.
These operations still take up memory in your address space that is managed by the garbage collector.
No, the GC does not keep track of such things. If you create a window, the example I gave earlier, the window manager only gives the virtual machine a pointer. The memory allocated for the window is handled by the window manager. In windows this is called a handle (hwnd). When the window needs destroyed a call from the vm tells the window manager to destroy the window. This is pretty basic stuff. You can actually create a program the generates a window and than ends but the window will still remain. Most gui apis wrap these native calls with classes that, when destroyed by the vm manually or automatically (like when the program ends) that a native call to the window manager destroys the window.
Hell, its faster than a C runtime call to malloc because it doesn't have to go sniffing around for a large enough block.
I guess Im just an old C nut but I can tell you your dead wrong here. You cannot instantiate a class in a vm faster than I can malloc memory in C.
They are also faster to allocate and take NO TIME to deallocate.
I was talking of alocating and deallocating classes. In both languages this is slower than doing a malloc or free in C. To get around this though with Java and.NET its best to just create a group of classes and reuse them. So, in practice you take one slight performance hit in the creation of the classes but do not have the collector hit for collection since you are not deallocating the classes.
Which generates a load of shit bytecode with tons of typecasts that ARE bad for performance.
I have not read this. Do you have a link? So are you saying that if I reverse engineer bytecode that used generics that the generics would have been replaced by type casts? Im really curios where you aquired this information.
I'd really rather just keep my local variables local, thank you.
Do you even know what your talking about? Have you ever even written a class? Heres a quick generic oo class:
class MyClass {
int b;
int c; }// Now a struct equiv:
struct MyStruct {
int b;
int c; }// Watch how they reference those variables:
MyClass theClass = new MyClass(); MyStruct theStruct;
theClass.b = 3; theStruct.b = 3;
WOW!!! Are you amazed yet?
They are within the VM, but the garbage collector does not allocate them nor does it deallocate them.
Nope, you have to do all the garbage collection yourself! Ofcourse I doubt you can optimize the operation as well as todays garbage collectors if your application is of any scale.
In addition to this reduced pressure on the GC value types are quicker to manipulate because they do not require a pointer dereference, and as an added bonus you can create them all day long and ever force a GC collection.
Do you really feel the GC needs you relieving its load?
Your line about not dereferencing struct pointers and creating them all day long is too scary for me. Hopefully whatever program you are writing only runs for a few seconds and you have tons of ram.
My choices are to either pass in a re-usable object (which sucks when you have a method with 10+ local doubles)
How about you just create a class with 10 double instance variables? This way it would look (and act) pretty much like your struct. Just a thought. When I moved from C to C++ I stopped using structs for that reason.
wrap them with JNI which has its own overhead?
Overhead?
Oh the horror. Are you trying to say that C# treats structs outside the virtual machine or something and it thus can create them or access them faster than C# classes? Please elaborate.
GC so that if you are creating and destroying thousands, hundreds of thousands, or millions of variables the GC doesn't have to constantly collect.
Give an example of where this is needed.
Also note that structs can be created, manipulated, and destroyed with Java with JNI and CNI.
In.NET they are actually part of the backend. The VM. In Java, in the VM they're all just boxed objects. And lots of typecasts. Shitty. Google around for better explainations.
Java 1.5 has auto unboxing. Same thing.NET has. This was added on top of JSR-14. You are probably looking at the original generics design for Java 1.5 on googled pages. Its been updated.
Value types are especially used in the drawing APIs, becuase if you have GC pauses while you're redrawing the UI it will look slow to the user.
Most API's in both Java and.NET wrap native code that takes care of most hardware and memory intensive operations such as guis. How many C# coders you think use MFC or xlib/gtk/qt functions to create windows? For short lived objects where there is no API its best to reuse objects rather than create new ones since in both languages the allocation process hits performance much worse than the deallocation process.
The.NET version of generics includes support in the VM itself; this means that if you instantiate a generic type with a basic type (e.g., an ArrayList of int, in Java terms) in.NET you get unboxed types (actual ints) and in Java you get boxed types (Integers). This adds a lot of indirection, which has performance implications
Java 1.5 (now at beta 2) generics are a part of the VM. It also supports auto unboxing like.NET.
# Multi-language support by design, which lets some complicated languages like C, C++ and Fortran to be supported without hacks.
Multi-language support is never easy work in languages like C, C++, or even Fortran. It is not a design issue as much as system differences. You need really sharp people who know multiple platforms to be able to pull this off. Even simple things like writing a program to generate text files becomes an issue in that different platforms perform newlines differently. Than try to add in i8n support and watch your programmers leave in droves.
ValueTypes (structs) are not supported in Java, which is a source of major pressure on the GC, an issue solved completely by the availability of it on.NET
Structs? Have you heard of classes?.NET included structs which was nice but its only there for compatibility with older languages like C. You shouldnt use them for straight.NET development. Its up there with continueing to use pointers. If you have to have those sort of things why even use.NET?
Today: Generics are a VM feature, not only a
Generics exist in Java. They existed as open source projects and are now part of the language (see version 1.5). Ive heard this argument in the past:.NET has this feature and Java doesnt. Apparently no one gave thought to the idea that Sun would just put out a new version with that feature included also.
Binding APIs for C# and.NET is trivial, which is why there is a whole industry of bindings for the framework: its trivial to call back into the old code base, without using JNI of any kind.
JNI is crossplatform. The.NET method is not (or atleast I should say I have not seen it actually work yet or found claims that it should). You should also check out CNI which allows Java classes to be treated as C++ classes.
Some people care about the fact that it has been standardized by ECMA.
95% of Microsoft's implementation of.NET is not ECMA standard (mostly the language libraries). Besides that this is really a poor argument since language standardization has no actual value. If there were name an instance where this was an issue?
.NET improves upon the lessons learned from Java and were able to make changes that Sun could not (yes, that means that someone else can build something new now, and fix the.NET mistakes;-)
There are hordes of open source and commercial virtual machines. The actual number far surpasses.NET implementations. I could write one tommorow and make as many changes as I liked. If you go against the standard you'll find people yelling and screaming at you. Same goes with.NET. Go ahead and fork.NET and see what people say to you.
Some of us prefer C# the language to Java the language.
I kept hearing people hyping the Apex units over and over again. So I went and purchased one over at the local Walmart. One word for it: crap. I had all sorts of problems with the unit. Some DVDs with advanded features were impossible to watch on the device. So I tried to return it and Walmart explained I could only exchange it for another. So I did thinking it was just ONE bad Apex. Wrongo again. Same problems. Returned the new one and demanded a in-store credit. Required the store manager to sign off on it but I was able to free myself from Apex hell.
Im currently quite satisfied with my Sony. It states it can play the same number of formats as the Apex and I have not seen it having any problem actually living up to that claim.
Sorry, dont get it. Its either a very poor attempt at humor or a poor attempt to try to make people believe it was humor to cover a bad comment. Ill go with the later.
Java's memory footprint is currently too large to allow numerous java programs of a moderate complexity (and size) to be running simultaneously on the desktop.
True. Version 1.6 of java is suppose to finally solve this issue. There are serious concerns that have to be addressed: namely security and stability. If I have two apps running on the same VM it is possible that they could one could crash both or look into the other ones memory space. Kinda icky..NET has no solution for this problem. Unless you are talking of compiling to an exe? Another interesting note about.NET is the incompatibilities between the versions. A 1.0 app cannot run on 1.1. Also, you are unable to have two different virtual machines on your box.
priority for Sun, and instead we'll see.NET/C# rule the desktop. Hope Sun proves me wrong. .NET will probably rule the desktop...on Windows! Seriously,.NET will rule Windows XP and Longhorn. Not much of a question there. Its those damn Mac and Linux people who will benefit from a Java desktop I believe. If the Java desktop matures at a level equal or greater than Gnome or KDE we may get a super hybrid Linux desktop that will rule all platforms.
Its so hard to hate them sometimes! On one hand they kill competition with shady tactics. On the other, they have some damn good products. Curse you Microsoft!!!
Then how come it still looks like a GTK reject? And why is sorting by column so slow?
I can only guess you must be running KDE. SWT, the last time I checked, uses GTK widgets on Linux. I have no idea if they are gonna write one for Qt.
As I already stated if you want native look-and-feel widgets go with SWT (or even AWT) instead. One mans fortune is anothers loss. You have to pick.
In other words, it's a Java app installer that requires that you have Java installed.
Um...yeah. Whats your point? Java Web Start is part of the java runtime from Sun. If you go to www.java.com and "Get Java" you'll get Java Web Start too. Just think of it as a bonus feature.
The issue is that most classes of desktop applications run poorly in cross-platform fashion, due to deployment issues, GUI and UI issues, and/or the use by the app of technology that exists isn't cross-platform, because Pure Java doesn't cut it
Ive used Web Start for some time now. I click on the app (either in a web page, desktop icon, or directly in Web Start), Web Start downloads the app and checks for updates, and than it launches. If the app uses Java Swing, it looks and operates the same on all platforms. Once the app is download it is saved on your computer.
As for technology thats on one platform thats not on another I can only hazard to guess you are talking about something like using ActiveX in Linux or something. Hell, dont use ActiveX if you want to be cross platform. Duh. But pure Java itself has no functionality that is platform specific which is why its cross platform.
The LD_ASSUME_KERNEL mess on GNU/Linux comes to mind.
Thread libs always been a bitch. What does this have to specifically do with Java? I know some old java virtual machines dont work right if you dont set the environment variable. But than again lots of old non-java programs wont either.
After all, the backwards compatibility is a best-effort thing, hardly a guarantee.
Yeah. Thats why there is a testing phase when you build applications. But in six years I have yet to see a pure java app NOT cross-platform 100%. Im sure you'll say Im just lucky. Luck or not, until than its kinda hard to sway me to believe otherwise.
I find it utterly hilarious that people say that Swing proves Java is fast, because the really fast parts aren't written in Java.
Swing is called a light-weight gui since it has no native peers. This means there are no native widgets in otherwords. Whoever said Swing is fast?
Azurues uses SWT. SWT is not Swing. SWT uses native widgets. SWT is generally faster than swing because of this.
BUT what people dont get is why Swing exists. SWT, although faster, operates differently on different platforms and looks different. Windows widgets look different than GTK or Qt based ones. SWT problems is the same as any other cross-platform gui like WxWindows. Swing though always looks the same no matter what the platform is. This means Swing apps look and operate the same no matter what the platform.
For Windows perhaps. But if you're going to confine yourself to Windows, why bother with Java?
Java Web Start, atleast the one from Sun, is available on SPARC, Solaris X86, Linux, Mac OSX, and Windows.
You should compare a Java text editor to a native text editor
Well, if you take out the virtual machine Java would be about equal or better. Now you probably say thats not a fair comparison and I cant do that. But those Java crazy's are working on a single VM for multiple apps targetted for release 1.6. You can do this currently yourself too. I did this recently where I have two java apps launched from a single VM.
but, again, if you're going to tie yourself to a specific version of a VM on a specific platform, why use Java at all?
Are you talking end user or programmer? As a programmer, I can write in Java and know it will run on multiple platforms.
End users dont need to worry much about this. Recent versions of Suns java jvm updates itself. Since java is backwards compatible this means your incompatibility version issue is not really an issue.
I think that the fact that you felt the need to escape from Java and use an ActiveX control is all the proof that's required.
The activeX control was an Internet Explorer browser. Since I didnt feel like writing Internet Explorer again in Java it seemed like the smart thing to do. Your original argument was that Java apps did not play nicely with native ones which I proved incorrect.
Like COBOL, yes.
Yep. Only difference is Java apps are growing in numbers whereas theres often no new Cobol apps.
This makes it a pain if you want to deliver an application to the user with minimal hassle.
Not really. There is Java WebStart which solves this issue. Commericial products like InstallAnywhere solved this also. Old issue.
Java's "slowness" has at least three components: startup time, garbage collection delays, and the huge footprint which triggers swap activity.
Start up time is slow. It takes approx a couple seconds. Ofcourse this is a one time cost that interpreted languages go through. C# has the same problem.
Garbage collection delays? Ive never seen this as a big problem. With good coding practice (create fewer objects, reuse etc) this becomes invisible.
Memory swapping? You must have a mighty large java app or very little memory. As for java being a memory pig that is questionable since IE, mozilla, and about a dozen other apps I run on my computer consume more memory than my java apps like Azurues. Go figure.
It insists on reinventing everything, it insists on abstracting everything, and it insists on total control over the environment.
I just wrote a java app the other day that embeds an activeX control within it. Worked great. Ive written C++ apps that use Java (gcj) and it worked great. I think youll have a hard job trying to prove that strange view.
I think it condemns Java to a perpetual "behind the scenes" existance, growing ever more baroque appendages in its invisible niche, until its burdensome legacy is swept away by something more open
Java is already open. Go look at projects like GNU classpath or Kaffe. Javas invisible niche is kinda hard to miss since it covers most IT departments here in the United States and abroad. A bit hard to miss. You can go to SourceForge and see that it is currently almost exceeded the number of C and C++ apps.
Your example more fits C# at its ilk which has had very slow adoption.
If resizing a window is "slow" you probably just have a crappy computer. Azureus uses SWT which uses native widgets. In other words, if Azureus resizes slowly that would mean the rest of your apps not written in java do the same.
Even some of us regular slashdotters use XP. Have to for certain apps. Sure, there is alternative OSS but many have not reached a level of maturity equal to what can be found on XP. Some day soon maybe...
Just a little gossip chatter that there is fears of "anti-American" slogans being displayed at the games. The Olympics board has no control over what the BBC decides to cover which could possible include such footage. So, a little censorship should prevent us from thinking no one out there likes us. That will make them go away right?
I have to take back my "vomit" comment for FLTK. I can see where such a light weight gui is totally practical. Not easy on the eyes but, hell, neither am I. :)
Fox toolkit, FLTK and the list goes on.
I tried an app written Fox. Slowwwww. I actually watched it take several seconds to render the window on my desktop. I looked at a few sample FLTK screenshots and vomit came to mind. "Light" speaks volumes there. WxWindows, which I tried in the past, showed no performance advantage over SWT, a native widget lib in java by IBM. Do you have something decent to support your argument or is that pile of crap the best you got to offer?
I noticed something one day: lack of sex in Sci-Fi. This makes no sense since (1) most sci-fi viewers are guys and (2) they are generally sexually starved geeks.
Maven is like Ant on steroid.
Great. This is just what the world needs. Ant has something like 100 different tags with like 10 attributes to each of those. Creating large projects with Ant becomes a huge task of managing xml errors while trying to get the damn thing to build something. Now lets add some complication! People will love this. Eat it right up!
Someone really needs to build a better make. Make a better make. Whatever. If your one of those wacky open source coders who dont have a project to waste your time on this planet behind a computer than this is a project for you!
Yes, I've used 'ant' which is very slow to start up
Ant build files are written in XML which ofcourse means Ant needs an xml parser in order to read the file. For some reason they picked Xerces for the job. Xerces is well known for being feature rich but also for being bloated and slow. As for the build file structure I wouldnt say Make is much cleaner.
Anyhow, someone gave you time measurements on app startup with Ant vs Make. No, they did not run Ant on a build file because you said Ant startup was slow. The reading of the build file is not the app startup.
These operations still take up memory in your address space that is managed by the garbage collector.
No, the GC does not keep track of such things. If you create a window, the example I gave earlier, the window manager only gives the virtual machine a pointer. The memory allocated for the window is handled by the window manager. In windows this is called a handle (hwnd). When the window needs destroyed a call from the vm tells the window manager to destroy the window. This is pretty basic stuff. You can actually create a program the generates a window and than ends but the window will still remain. Most gui apis wrap these native calls with classes that, when destroyed by the vm manually or automatically (like when the program ends) that a native call to the window manager destroys the window.
Hell, its faster than a C runtime call to malloc because it doesn't have to go sniffing around for a large enough block.
I guess Im just an old C nut but I can tell you your dead wrong here. You cannot instantiate a class in a vm faster than I can malloc memory in C.
They are also faster to allocate and take NO TIME to deallocate.
I was talking of alocating and deallocating classes. In both languages this is slower than doing a malloc or free in C. To get around this though with Java and
Which generates a load of shit bytecode with tons of typecasts that ARE bad for performance.
I have not read this. Do you have a link? So are you saying that if I reverse engineer bytecode that used generics that the generics would have been replaced by type casts? Im really curios where you aquired this information.
I'd really rather just keep my local variables local, thank you.
Do you even know what your talking about? Have you ever even written a class? Heres a quick generic oo class:
class MyClass
{
int b;
int c;
}
struct MyStruct
{
int b;
int c;
}
MyClass theClass = new MyClass();
MyStruct theStruct;
theClass.b = 3;
theStruct.b = 3;
WOW!!! Are you amazed yet?
They are within the VM, but the garbage collector does not allocate them nor does it deallocate them.
Nope, you have to do all the garbage collection yourself! Ofcourse I doubt you can optimize the operation as well as todays garbage collectors if your application is of any scale.
In addition to this reduced pressure on the GC value types are quicker to manipulate because they do not require a pointer dereference, and as an added bonus you can create them all day long and ever force a GC collection.
Do you really feel the GC needs you relieving its load?
Your line about not dereferencing struct pointers and creating them all day long is too scary for me. Hopefully whatever program you are writing only runs for a few seconds and you have tons of ram.
My choices are to either pass in a re-usable object (which sucks when you have a method with 10+ local doubles)
How about you just create a class with 10 double instance variables? This way it would look (and act) pretty much like your struct. Just a thought. When I moved from C to C++ I stopped using structs for that reason.
wrap them with JNI which has its own overhead?
Overhead?
Oh the horror. Are you trying to say that C# treats structs outside the virtual machine or something and it thus can create them or access them faster than C# classes? Please elaborate.
GC so that if you are creating and destroying thousands, hundreds of thousands, or millions of variables the GC doesn't have to constantly collect.
Give an example of where this is needed.
Also note that structs can be created, manipulated, and destroyed with Java with JNI and CNI.
In
Java 1.5 has auto unboxing. Same thing
Value types are especially used in the drawing APIs, becuase if you have GC pauses while you're redrawing the UI it will look slow to the user.
Most API's in both Java and
The
Java 1.5 (now at beta 2) generics are a part of the VM. It also supports auto unboxing like
# Multi-language support by design, which lets some complicated languages like C, C++ and Fortran
to be supported without hacks.
Multi-language support is never easy work in languages like C, C++, or even Fortran. It is not a design issue as much as system differences. You need really sharp people who know multiple platforms to be able to pull this off. Even simple things like writing a program to generate text files becomes an issue in that different platforms perform newlines differently. Than try to add in i8n support and watch your programmers leave in droves.
ValueTypes (structs) are not supported in Java, which is a source of major pressure on the GC, an
issue solved completely by the availability of it
on
Structs? Have you heard of classes?
Today: Generics are a VM feature, not only a
Generics exist in Java. They existed as open source projects and are now part of the language (see version 1.5). Ive heard this argument in the past:
Binding APIs for C# and
for the framework: its trivial to call back into the old code base, without using JNI of any kind.
JNI is crossplatform. The
Some people care about the fact that it has been standardized by ECMA.
95% of Microsoft's implementation of
(yes, that means that someone else can build something new now, and fix the
There are hordes of open source and commercial virtual machines. The actual number far surpasses
Some of us prefer C# the language to Java the language.
Yep.
Im hoping that was humor. Ofcourse you could be redirected to text adult stories. Ascii porn is just would be awesome!!
I kept hearing people hyping the Apex units over and over again. So I went and purchased one over at the local Walmart. One word for it: crap. I had all sorts of problems with the unit. Some DVDs with advanded features were impossible to watch on the device. So I tried to return it and Walmart explained I could only exchange it for another. So I did thinking it was just ONE bad Apex. Wrongo again. Same problems. Returned the new one and demanded a in-store credit. Required the store manager to sign off on it but I was able to free myself from Apex hell.
Im currently quite satisfied with my Sony. It states it can play the same number of formats as the Apex and I have not seen it having any problem actually living up to that claim.
hahahaha.....hahaha.....ha....ha?
Sorry, dont get it. Its either a very poor attempt at humor or a poor attempt to try to make people believe it was humor to cover a bad comment. Ill go with the later.
Java's memory footprint is currently too large to allow numerous java programs of a moderate complexity (and size) to be running simultaneously on the desktop.
True. Version 1.6 of java is suppose to finally solve this issue. There are serious concerns that have to be addressed: namely security and stability. If I have two apps running on the same VM it is possible that they could one could crash both or look into the other ones memory space. Kinda icky.
priority for Sun, and instead we'll see
Its so hard to hate them sometimes! On one hand they kill competition with shady tactics. On the other, they have some damn good products. Curse you Microsoft!!!