If a C app runs fine on that machine and a Java one does not, what does this tell us about Java.
On High-End-Systems everything runs fine, the real differences in performance and efficiency are only seen on old systems or on systems which run more than a dozen (Java) applications at once. The latter would be the case if more of our software would be converted to Java. You can only afford the bloat of Java on a fast sytem because 90% of your apps are NOT written in Java.
This statistic says nothing about the real use of any of these languages. It just tells us how many people started projects in one of the languages but it does not tell us about the success. They might be abandoned right after they started a few lines of code or the might be very active and have a few thousand lines of code.
I am working at a Java Project at the University and I have found Java to be an absolute nightmare when it comes to consistency of implementation.
I agree with you in that the idea of Java was good, but the implementation of the language has absolutely no aspects of a beautiful/easy-to-use language.
I could name dozens of things I encountered in the past few weeks but I will name just a few:
-primitive types and associated classes: When I want to store a variable of one the primitve types like int (the ones you use in every class) you have to wrap them into a class (Integer) which has no way to change the Value later. So everytime I want to e.g. increment a counter stored this way, I have to convert it back to int, increment it und create a new Integer-Object to store the incremented value back into my container-class.
-If I want to compare two Classes I have to use the equals-Method instead of a simple operator-overloading which would enable me to use ==
-When I retrieve an Object from a Container it is a java.lang.Object instead of the type I stored which totally negates the advantages of static typing
-Attributes of a Class are not totally protected against access from the outside (I have to work with old code that makes heavy use of this)
In short, Java is critical because it is portable and managed.
I worked a year as a system administrator after school and I can tell you Java is nowhere near it's theoretical Portability in the field. Once I had to replace a couple of hundred JRE because one important (Java-)Software the Company used produced lots of errors on 1.3.1_04 and ran fine on 1.3.1_02.
When I started the programming project for the University I mentioned above I had to install Borland Together (for UML which we had to use). I tried to install it but the InstallAnywhere insisted on using its 1.3.1 dynamically compiled JRE which did not run on my glibc 2.3 system. I had to manually unpack the installation package, use another JRE 1.3.1 to install (the installer insisted on the old version, i had installed 1.4.2 at the time). When I tried to use the JRE 1.4.2 with it later (by editing the start-shell-script) the exporting to images of the diagrams stopped working.
Long story short, Java is not portable nor compatible to another version of itself, which would be no real problem if it you had the source of the old Java-Program you wanted to use but since almost all Java-Programs are closed-source this poses quite a big problem as soon as someone wants to use more than one Java-Program on his/her computer.
I am working at a Java Project at the University and I have found Java to be an absolute nightmare when it comes to consistency of implementation.
I agree with you in that the idea of Java was good, but the implementation of the language has absolutely no aspects of a beautiful/easy-to-use language.
I could name dozens of things I encountered in the past few weeks but I will name just a few:
-primitive types and associated classes:
When I want to store a variable of one the primitve types like int (the ones you use in every class) you have to wrap them into a class (Integer) which has no way to change the Value later. So everytime I want to e.g. increment a counter stored this way, I have to convert it back to int, increment it und create a new Integer-Object to store the incremented value back into my container-class.
-If I want to compare two Classes I have to use the equals-Method instead of a simple operator-overloading which would enable me to use ==
-When I retrieve an Object from a Container it is a java.lang.Object instead of the type I stored which totally negates the advantages of static typing
-Attributes of a Class are not totally protected against access from the outside (I have to work with old code that makes heavy use of this)
In short, Java is critical because it is portable and managed.
I worked a year as a system administrator after school and I can tell you Java is nowhere near it's theoretical Portability in the field. Once I had to replace a couple of hundred JRE because one important (Java-)Software the Company used produced lots of errors on 1.3.1_04 and ran fine on 1.3.1_02.
When I started the programming project for the University I mentioned above I had to install Borland Together (for UML which we had to use).
I tried to install it but the InstallAnywhere insisted on using its 1.3.1 dynamically compiled JRE which did not run on my glibc 2.3 system. I had to manually unpack the installation package, use another JRE 1.3.1 to install (the installer insisted on the old version, i had installed 1.4.2 at the time). When I tried to use the JRE 1.4.2 with it later (by editing the start-shell-script) the exporting to images of the diagrams stopped working.
Long story short, Java is not portable nor compatible to another version of itself, which would be no real problem if it you had the source of the old Java-Program you wanted to use but since almost all Java-Programs are closed-source this poses quite a big problem as soon as someone wants to use more than one Java-Program on his/her computer.
Since Ruby was 'invented' by a Japanese Programmer it had Unicode Support right from the beginning AFAIK.
I've seen Ruby-Scripts with Japanese variables, functions,etc.
I use ZoomPlayer for Windows. It has lots of configuration options to adjust the behaviour and look to your needs and the Standard Version is a free download:
http://www.inmatrix.com/files/zoomplayer_download. shtml
DHTML, IE specific JavaScript hacks. MS offers a "new way to make web pages",...
Which might explain why most corporate webpages suck. I don't know about you but I prefer my webpages plain, simple and usable on every browser. All that drop-down-menu,etc. crap just makes the sites slower to navigate.
If a C app runs fine on that machine and a Java one does not, what does this tell us about Java.
On High-End-Systems everything runs fine, the real differences in performance and efficiency are only seen on old systems or on systems which run more than a dozen (Java) applications at once. The latter would be the case if more of our software would be converted to Java. You can only afford the bloat of Java on a fast sytem because 90% of your apps are NOT written in Java.
This statistic says nothing about the real use of any of these languages. It just tells us how many people started projects in one of the languages but it does not tell us about the success. They might be abandoned right after they started a few lines of code or the might be very active and have a few thousand lines of code.
And now with correct layout:
I am working at a Java Project at the University and I have found Java to be an absolute nightmare when it comes to consistency of implementation.
I agree with you in that the idea of Java was good, but the implementation of the language has absolutely no aspects of a beautiful/easy-to-use language.
I could name dozens of things I encountered in the past few weeks but I will name just a few:
-primitive types and associated classes:
When I want to store a variable of one the primitve types like int (the ones you use in every class) you have to wrap them into a class (Integer) which has no way to change the Value later. So everytime I want to e.g. increment a counter stored this way, I have to convert it back to int, increment it und create a new Integer-Object to store the incremented value back into my container-class.
-If I want to compare two Classes I have to use the equals-Method instead of a simple operator-overloading which would enable me to use ==
-When I retrieve an Object from a Container it is a java.lang.Object instead of the type I stored which totally negates the advantages of static typing
-Attributes of a Class are not totally protected against access from the outside (I have to work with old code that makes heavy use of this)
In short, Java is critical because it is portable and managed.
I worked a year as a system administrator after school and I can tell you Java is nowhere near it's theoretical Portability in the field. Once I had to replace a couple of hundred JRE because one important (Java-)Software the Company used produced lots of errors on 1.3.1_04 and ran fine on 1.3.1_02.
When I started the programming project for the University I mentioned above I had to install Borland Together (for UML which we had to use). I tried to install it but the InstallAnywhere insisted on using its 1.3.1 dynamically compiled JRE which did not run on my glibc 2.3 system. I had to manually unpack the installation package, use another JRE 1.3.1 to install (the installer insisted on the old version, i had installed 1.4.2 at the time). When I tried to use the JRE 1.4.2 with it later (by editing the start-shell-script) the exporting to images of the diagrams stopped working.
Long story short, Java is not portable nor compatible to another version of itself, which would be no real problem if it you had the source of the old Java-Program you wanted to use but since almost all Java-Programs are closed-source this poses quite a big problem as soon as someone wants to use more than one Java-Program on his/her computer.
I am working at a Java Project at the University and I have found Java to be an absolute nightmare when it comes to consistency of implementation. I agree with you in that the idea of Java was good, but the implementation of the language has absolutely no aspects of a beautiful/easy-to-use language. I could name dozens of things I encountered in the past few weeks but I will name just a few: -primitive types and associated classes: When I want to store a variable of one the primitve types like int (the ones you use in every class) you have to wrap them into a class (Integer) which has no way to change the Value later. So everytime I want to e.g. increment a counter stored this way, I have to convert it back to int, increment it und create a new Integer-Object to store the incremented value back into my container-class. -If I want to compare two Classes I have to use the equals-Method instead of a simple operator-overloading which would enable me to use == -When I retrieve an Object from a Container it is a java.lang.Object instead of the type I stored which totally negates the advantages of static typing -Attributes of a Class are not totally protected against access from the outside (I have to work with old code that makes heavy use of this) In short, Java is critical because it is portable and managed. I worked a year as a system administrator after school and I can tell you Java is nowhere near it's theoretical Portability in the field. Once I had to replace a couple of hundred JRE because one important (Java-)Software the Company used produced lots of errors on 1.3.1_04 and ran fine on 1.3.1_02. When I started the programming project for the University I mentioned above I had to install Borland Together (for UML which we had to use). I tried to install it but the InstallAnywhere insisted on using its 1.3.1 dynamically compiled JRE which did not run on my glibc 2.3 system. I had to manually unpack the installation package, use another JRE 1.3.1 to install (the installer insisted on the old version, i had installed 1.4.2 at the time). When I tried to use the JRE 1.4.2 with it later (by editing the start-shell-script) the exporting to images of the diagrams stopped working. Long story short, Java is not portable nor compatible to another version of itself, which would be no real problem if it you had the source of the old Java-Program you wanted to use but since almost all Java-Programs are closed-source this poses quite a big problem as soon as someone wants to use more than one Java-Program on his/her computer.
Since Ruby was 'invented' by a Japanese Programmer it had Unicode Support right from the beginning AFAIK. I've seen Ruby-Scripts with Japanese variables, functions,etc.
I use ZoomPlayer for Windows. It has lots of configuration options to adjust the behaviour and look to your needs and the Standard Version is a free download: http://www.inmatrix.com/files/zoomplayer_download. shtml
DHTML, IE specific JavaScript hacks. MS offers a "new way to make web pages",... Which might explain why most corporate webpages suck. I don't know about you but I prefer my webpages plain, simple and usable on every browser. All that drop-down-menu,etc. crap just makes the sites slower to navigate.
*searches for the "+5 Scary" Moderation*