Got any links that indicate that C# is either slow or unreliable?
I'm sure C# is fast and reliable under Windows, but this is a discussion about Mono.
And products being available in Java from vendors doesn't really mean much if you don't intend to use them in the first place, or they are trivial to interface with your code.
What I mean is that you can interchange the Sun VM, the IBM VM, the HP VM or the BEA VM, and all would compete to produce the best and highest performance VM for your use.
As far as Java being the de-facto standard, while it is in higher use than C#,
exactly...
C# is being used by large businesses, and there is a large market for C# programmers.
Large is a relative term.... it is very small compared with Java (or even with legacy VB6/Visual C++)
It surprises me that Swing still sucks so much after all this time. I would love to use one language exclusively if I could, but until I see some decent gui apps being built using Swing, it's hard for me to want to use Java unless I have backend services to create.
Have you actually tried running OpenGL/DirectX accelerated Swing apps with Java 5.0? I suspect you may be surprised at how Swing has changed over the years.
It's all mostly re-use, except in the rarest of occasions, and that doesn't make it less innovative.
I'm afraid it does! It is called 'packaging' and 'marketing', not innovation.
VB was innovative exactly because it allowed non-experts to write code.
This is nonsense. There had been plenty of systems that allowed non-experts to write code. The best of these was Smalltalk (which had a popular Windows version in the early 90's called Actor). Smalltalk was designed specifically to allow non-experts to write code, and was already more than 15 years old before VB was released.
I think you ought to make sure you know your IT history before you post.
It is well known that Bill Gates had seen and commented on a Smalltalk-based GUI system for DOS/Windows called Digitalk in the 80s before VB was released. This is proof that VB was not innovation.
While Java is often suitable for enterprise apps or web based apps, it just isn't useful for consumer-grade application development
That will be news to the many developers who have produced such applications. Go to the Swing Connection on the Sun Java Website and you will see hundreds of applications that are consumer-grade. This includes games, graphics apps, and multi-media apps.
And, of course, there are the thousands of different Java games that are downloaded to mobile phones every day!
Perhaps Java will be a more useful option once GNU Classpath matures a bit more, and GCJ support under Windows is improved.
This will be news to the thousands of developers who are already using Java under Linux and Windows for application development right now! If you look at the IT job market (Java being the most required skill for commercial application development), you won't see Java uptake being held up because it is not currently a 'useful option'!
Personally, I can see the advantage of a mature open source Java, but Java is not being held back by this.
No it isn't. NetBeans 4.1 and 5.0 under Java 5.0 are far faster in terms of GUI performance than, for example Eclipse - which uses native GTK components.
C# and the core parts of.NET are open standards, whereas Java is not
This means nothing. These parts are still subject to patents. Sun is prepared to certify any Java implementation as 'Java' providing it passes their compatibility tests. They have even done this for clean-room implementations by rival companies like HP.
That in itself won't give you compatibility with Microsoft applications
Whereas Java gives you a definite guarantee of compatibility.
and you lose nothing by not going to Java.
Except performance, reliability, being able to use quality products from multiple vendors such as Sun, HP, IBM etc, and using the language which is now the de-facto standard for commercial server-side software development.
Java's slow and most of the stuff written these days won't work cross-platform.
Wrong.
Java 5.0 beats.Net and Mono in almost all benchmarks, and comes close to C++ speed, even for high-performance numerical work.
If Sun can write complete IDE (NetBeans) that is fully cross-platform and portable between different vendors JVMs, then the statement 'that most stuff written these days won't work cross-platform' is nothing more than a troll.
With Java you now have a complete implementation of all language APIs on Windows, Linux, Solaris, HP and so on, not an incomplete port of.NET (Mono) potentially subject to Microsoft patents.
If the Apache Harmony projects succeeds (and it has a lot of backing) there will be a complete open source cross-platform Java implementation. There are already open-source Java versions that are good enough for many applications (gcj, Kaffe).
Microsoft's innovation may have just been to put all of the existing innovative ideas into one product and to successfully get developers excited about it.
That is NOT innovation! Re-using other ideas is NOT innovation.
There may have been other easy to use IDE platforms out there prior to VB, but it was VB that caught fire. Why? Because of the small innovations that made it slightly better.
What innovations? VB 'caught fire' because it was Basic, and MS recommended. Developers (like me) had been using GWBasic and other MS-bundled Basic versions for years. An MS recommendation will give the system an advantage.
VB also caught on because it allowed poor and novice developers to do pretty things quickly. Unlike better languages (Pascal), it allowed a sloppy development process that seemed 'fun' at the time, but led to endless code messes that developers like me have had to clear up years later.
If Java had 100% of the innovation and MS 0%, why has c# and.net gotten such wide adoption so far and sparked such a large enthusiast community?
It hasn't. C# has had a pretty sluggish uptake. There is moderate usage of.NET because it is the recommended MS development process, and as an upgrade to existing Visual Studio product use. Look at something like the TOIBE index of language resources and you will see that C# has had a low and static figure for a long time.
Why has it captured the imagination of Miguel deIcaza, one of the Open Source world's leading innovators and visionaries,
I have no idea. It has been a mystery to me for years.
in the form of the Mono project (which is quite mature, I might add)?
A yes, Mono - that constant.NET catch-up project. It is not mature, as it is incomplete. Significant enterprise parts of.NET have been left out and will probably remain left out as Microsoft revises.NET, deprecates older versions and adds new hard-to-copy features.
Why deIcaza could not have put that effort into a portable high-performance up-to-date open source Java is beyond me. I suspect Mono was an attempt to lure MS developers onto Linux.
They have taken much criticism over the years for not including the Stored procedures, views, and triggers. These now all appear in version 5.0.
Which isn't out yet.
From the point of view of anyone who wants a stable database, having these features in a preview version that the company does not recommend for general use yet means that these features are effectively absent from the product.
So, MySQL STILL does not have stored, procedures, views and triggers in a form that is usable.
Think of how many rapid prototypes were written (even by experienced coders) in VB and how much innovation was facilitated by that.
That is not the same as VB itself being innovative. It wasn't. IDEs with form designers and components had been around before VB. In fact, VB was a crippled system compared with these, as it did not allow inheritance.
C# may not be the most elegant language, but you must admit that it represents more than an incremental improvement over Java.
I don't see how that is true. Java was deliberately designed not to be a 'everything but the kitchen sink thrown in' language like C++ in order to make code more robust and maintable. C# is going the way of C++.
It's essentially what would have happened if Sun could have broken reverse compatibility after 5 years of Java and done a complete rewrite. For business reasons, Sun couldn't innovate, so Microsoft stepped in.
That is nonsense. C# was a basically direct copy of Java with some Delphi features added. There is little that C# has now that Java doesn't. Innovation does not require breaking backward compatibility. Java has many features that C# - decent standard ORM systems for example - still doesn't have, and all on a high-performance cross-platform VM. So much for 'couldn't innovate'!
Sun with Java? Is a JVM innovative? I can say that in academia there were previous VMs around
The innovations in Java are not the language itself, or the use of VMs. It is the security system - the sandbox and it is the VM architecture, especially the Hotspot engine. Other languages have promised portable cross-platform high-performance VMs for a long time, but few if any have delivered.
They own the corporate information pipeline. That is where value is. Information is valuable. Making it easy to create, get, and use information.
They don't, and never haved owned the 'information pipeline'. Most servers are not Microsoft. Most corporate enterprise systems are not microsoft. Microsoft have been pushing to make information easy to use on Microsoft systems to try and leverage use of their servers. So far they have failed to dominate.
The emission of energy does not help the information problem, as the energy emitted bears no known relationship to the material that made up the black hole.;)
No sorry - it definitely bears no relationship at all - it is purely an interaction between the vacuum and the warped space of the event horizon. It is entirely and provably random.
You can't mix licenses with Sun. IF you write code for them it MUST be under their license. You could never GPL it.
So what? This is true of many other open source licenses too: for example, the Apache license 1.1, the IBM public license 1.0 (and IBM just won an award for contributions to open source), the Mozilla Public License are just a few.
I have problems with Software Patents too, anyone who doesn't it pretty dumb about software and patents and certainly has not been keeping up with the MS Patent crap. IPR -- Intellectual Property Rights? The GPL has no problems with that. All rights belong to the person who wrote the code.
You are missing the point. Just because you don't like software patents doesn't mean they magically go away. Companies have to deal with this issue, which is why non-GPL licenses are required.
Just keep on beleiving all those good things about Sun.
This is based on 20 years of experience with their products, as against obvious prejudice. If you want to forget about Sun's contribution to the spread of Linux with code donations to GNOME, and Open Office (the Linux killer desktop app) I guess that is up to you.
I'm staying the hell away from OpenSolaris and advising my clients to do so also.
Great way to help your clients! Restrict their choice and stop them using one of the most powerful Unix systems ever written. Linux is awesome. So is Solaris. Choice is good.
I guess you are similarly going to insist your clients stay the hell away from Apache, Mozilla and IBM?
Not trying to start a flame-war here, but aren't your gripes applicable to Apple as well, especially with the release of OS X and the switch to x86 CPU's?
No. Apple has always maintained superb backwards compatibilty. For example, their move to PowerPC years ago included an emulator of previous chips so that software would continue to run unchanged.
Linux would be guilty as well with incompatibilities and user interface changes.
Not it wouldn't. Linux has always conformed to standards such as TCP/IP and Posix. I recently installed a very old Debian installation on a 15-year old Sparcstation and it integrates perfectly with the latest RedHat and Fedora systems in terms of networking, X remoting. It just works - this is the meaning of consistency!
This has to be one of the silliest articles I have seen for a long time.
I have been using Microsoft products since the 1970s and they have never supported portable skills and consistency. They have regularly dropped technologies (and abandoned developers and users) in order to change direction. One of the biggest examples of this is a recent one - attempting to force developers to switch from 'traditional' Visual Basic - for better or worse one of the most popular development environments ever - to VB.NET, which has major incompatibilities. This move alone alienated a large number of developers who had been MS supporters. So much for 'portable skills'. Then there are Windows incompatibilities, changes to network protocols, changes to registry structures, user interface changes (which require significant retraining for Windows administrators with every other release). Developers struggling with DLL hell and installation issues on different Windows versions will be most amused by the statement that 'there should be a standard... that works everywhere'.
It is nothing but marketing spin and nonsense, and the author should be embarrassed.
If you want Java apps that feel fast, just use SWT or GTK's java bindings.
This was true until recently. Now Java's Swing (especially with Java 5.0) feels fast.
Java is horrendous for throwing anything together that is less than 1000 lines or so of code.
Oh come on! This is just FUD! Java is close to C++ in syntax, and certainly suitable for small applications.
Does HP's "clean-room implementation" use licensed code from Sun like java.* and javax.*?
No.
Got any links that indicate that C# is either slow or unreliable?
I'm sure C# is fast and reliable under Windows, but this is a discussion about Mono.
And products being available in Java from vendors doesn't really mean much if you don't intend to use them in the first place, or they are trivial to interface with your code.
What I mean is that you can interchange the Sun VM, the IBM VM, the HP VM or the BEA VM, and all would compete to produce the best and highest performance VM for your use.
As far as Java being the de-facto standard, while it is in higher use than C#,
exactly...
C# is being used by large businesses, and there is a large market for C# programmers.
Large is a relative term.... it is very small compared with Java (or even with legacy VB6/Visual C++)
Er, this apples to oranges comparison proves your point how, exactly?
The experience of users who use both NetBeans and Eclipse under Linux tends to suggest that the NetBeans GUI has a better response.
All I can do is quote user comments - there are no metrics.
Sorry, not trying to upset the proverbial applecart here, but your link does not refer to any actual statistics.
I'm afraid that you can't really give statistics about the experience of using a GUI - what do you expect?
It surprises me that Swing still sucks so much after all this time. I would love to use one language exclusively if I could, but until I see some decent gui apps being built using Swing, it's hard for me to want to use Java unless I have backend services to create.
Have you actually tried running OpenGL/DirectX accelerated Swing apps with Java 5.0? I suspect you may be surprised at how Swing has changed over the years.
Doing a quick google search it appears that C# often beats Java
Often beans != mostly beats.
Java has many companies working hard to provide high-performance VMs. C# has Microsoft and Mono.
Java zealot who bases opinions on limited and unfair tests.
I am not a Java zealot. I have held back from using Java for serious math work for years.
In real-world applications, C# matches up quite well to Java's speed.
But without its wide industry acceptance and portability.
It's all mostly re-use, except in the rarest of occasions, and that doesn't make it less innovative.
I'm afraid it does! It is called 'packaging' and 'marketing', not innovation.
VB was innovative exactly because it allowed non-experts to write code.
This is nonsense. There had been plenty of systems that allowed non-experts to write code. The best of these was Smalltalk (which had a popular Windows version in the early 90's called Actor). Smalltalk was designed specifically to allow non-experts to write code, and was already more than 15 years old before VB was released.
I think you ought to make sure you know your IT history before you post.
It is well known that Bill Gates had seen and commented on a Smalltalk-based GUI system for DOS/Windows called Digitalk in the 80s before VB was released. This is proof that VB was not innovation.
Do you have any stats I could look at to support your statement? Just curious...
m l
yes, I do.
I have been severely critical of Swing performance in the past, however it has improved dramatically.
here is a single post which gives a typical comparison:
http://www.javalobby.org/java/forums/m91832009.ht
But in the end, the best thing to do is to download NetBeans + Java 5.0 and Eclipse (the GTK version is best) and try them out.
While Java is often suitable for enterprise apps or web based apps, it just isn't useful for consumer-grade application development
That will be news to the many developers who have produced such applications. Go to the Swing Connection on the Sun Java Website and you will see hundreds of applications that are consumer-grade. This includes games, graphics apps, and multi-media apps.
And, of course, there are the thousands of different Java games that are downloaded to mobile phones every day!
So much for Java not being 'consumer-grade'!
How on Earth can this be rated troll when it there is not a single fact in the post which is incorrect?
Perhaps Java will be a more useful option once GNU Classpath matures a bit more, and GCJ support under Windows is improved.
This will be news to the thousands of developers who are already using Java under Linux and Windows for application development right now! If you look at the IT job market (Java being the most required skill for commercial application development), you won't see Java uptake being held up because it is not currently a 'useful option'!
Personally, I can see the advantage of a mature open source Java, but Java is not being held back by this.
and NetBeans is still slow
No it isn't. NetBeans 4.1 and 5.0 under Java 5.0 are far faster in terms of GUI performance than, for example Eclipse - which uses native GTK components.
C# and the core parts of .NET are open standards, whereas Java is not
This means nothing. These parts are still subject to patents. Sun is prepared to certify any Java implementation as 'Java' providing it passes their compatibility tests. They have even done this for clean-room implementations by rival companies like HP.
That in itself won't give you compatibility with Microsoft applications
Whereas Java gives you a definite guarantee of compatibility.
and you lose nothing by not going to Java.
Except performance, reliability, being able to use quality products from multiple vendors such as Sun, HP, IBM etc, and using the language which is now the de-facto standard for commercial server-side software development.
Java's slow and most of the stuff written these days won't work cross-platform.
.Net and Mono in almost all benchmarks, and comes close to C++ speed, even for high-performance numerical work.
Wrong.
Java 5.0 beats
If Sun can write complete IDE (NetBeans) that is fully cross-platform and portable between different vendors JVMs, then the statement 'that most stuff written these days won't work cross-platform' is nothing more than a troll.
With Java you now have a complete implementation of all language APIs on Windows, Linux, Solaris, HP and so on, not an incomplete port of .NET (Mono) potentially subject to Microsoft patents.
If the Apache Harmony projects succeeds (and it has a lot of backing) there will be a complete open source cross-platform Java implementation. There are already open-source Java versions that are good enough for many applications (gcj, Kaffe).
Mono is a waste of time.
Microsoft's innovation may have just been to put all of the existing innovative ideas into one product and to successfully get developers excited about it.
.net gotten such wide adoption so far and sparked such a large enthusiast community?
.NET because it is the recommended MS development process, and as an upgrade to existing Visual Studio product use. Look at something like the TOIBE index of language resources and you will see that C# has had a low and static figure for a long time.
.NET catch-up project. It is not mature, as it is incomplete. Significant enterprise parts of .NET have been left out and will probably remain left out as Microsoft revises .NET, deprecates older versions and adds new hard-to-copy features.
That is NOT innovation! Re-using other ideas is NOT innovation.
There may have been other easy to use IDE platforms out there prior to VB, but it was VB that caught fire. Why? Because of the small innovations that made it slightly better.
What innovations? VB 'caught fire' because it was Basic, and MS recommended. Developers (like me) had been using GWBasic and other MS-bundled Basic versions for years. An MS recommendation will give the system an advantage.
VB also caught on because it allowed poor and novice developers to do pretty things quickly. Unlike better languages (Pascal), it allowed a sloppy development process that seemed 'fun' at the time, but led to endless code messes that developers like me have had to clear up years later.
If Java had 100% of the innovation and MS 0%, why has c# and
It hasn't. C# has had a pretty sluggish uptake. There is moderate usage of
Why has it captured the imagination of Miguel deIcaza, one of the Open Source world's leading innovators and visionaries,
I have no idea. It has been a mystery to me for years.
in the form of the Mono project (which is quite mature, I might add)?
A yes, Mono - that constant
Why deIcaza could not have put that effort into a portable high-performance up-to-date open source Java is beyond me. I suspect Mono was an attempt to lure MS developers onto Linux.
They have taken much criticism over the years for not including the Stored procedures, views, and triggers. These now all appear in version 5.0.
Which isn't out yet.
From the point of view of anyone who wants a stable database, having these features in a preview version that the company does not recommend for general use yet means that these features are effectively absent from the product.
So, MySQL STILL does not have stored, procedures, views and triggers in a form that is usable.
Think of how many rapid prototypes were written (even by experienced coders) in VB and how much innovation was facilitated by that.
That is not the same as VB itself being innovative. It wasn't. IDEs with form designers and components had been around before VB. In fact, VB was a crippled system compared with these, as it did not allow inheritance.
C# may not be the most elegant language, but you must admit that it represents more than an incremental improvement over Java.
I don't see how that is true. Java was deliberately designed not to be a 'everything but the kitchen sink thrown in' language like C++ in order to make code more robust and maintable. C# is going the way of C++.
It's essentially what would have happened if Sun could have broken reverse compatibility after 5 years of Java and done a complete rewrite. For business reasons, Sun couldn't innovate, so Microsoft stepped in.
That is nonsense. C# was a basically direct copy of Java with some Delphi features added. There is little that C# has now that Java doesn't. Innovation does not require breaking backward compatibility. Java has many features that C# - decent standard ORM systems for example - still doesn't have, and all on a high-performance cross-platform VM. So much for 'couldn't innovate'!
Sun with Java? Is a JVM innovative? I can say that in
academia there were previous VMs around
The innovations in Java are not the language itself, or the use of VMs. It is the security system - the sandbox and it is the VM architecture, especially the Hotspot engine. Other languages have promised portable cross-platform high-performance VMs for a long time, but few if any have delivered.
They own the corporate information pipeline. That is where value is. Information is valuable. Making it easy to create, get, and use information.
They don't, and never haved owned the 'information pipeline'. Most servers are not Microsoft. Most corporate enterprise systems are not microsoft. Microsoft have been pushing to make information easy to use on Microsoft systems to try and leverage use of their servers. So far they have failed to dominate.
The emission of energy does not help the information problem, as the energy emitted bears no known relationship to the material that made up the black hole. ;)
No sorry - it definitely bears no relationship at all - it is purely an interaction between the vacuum and the warped space of the event horizon. It is entirely and provably random.
You can't mix licenses with Sun. IF you write code for them it MUST be under their license. You could never GPL it.
So what? This is true of many other open source licenses too: for example, the Apache license 1.1, the IBM public license 1.0 (and IBM just won an award for contributions to open source), the Mozilla Public License are just a few.
I have problems with Software Patents too, anyone who doesn't it pretty dumb about software and patents and certainly has not been keeping up with the MS Patent crap. IPR -- Intellectual Property Rights? The GPL has no problems with that. All rights belong to the person who wrote the code.
You are missing the point. Just because you don't like software patents doesn't mean they magically go away. Companies have to deal with this issue, which is why non-GPL licenses are required.
Just keep on beleiving all those good things about Sun.
This is based on 20 years of experience with their products, as against obvious prejudice. If you want to forget about Sun's contribution to the spread of Linux with code donations to GNOME, and Open Office (the Linux killer desktop app) I guess that is up to you.
I'm staying the hell away from OpenSolaris and advising my clients to do so also.
Great way to help your clients! Restrict their choice and stop them using one of the most powerful Unix systems ever written. Linux is awesome. So is Solaris. Choice is good.
I guess you are similarly going to insist your clients stay the hell away from Apache, Mozilla and IBM?
Not trying to start a flame-war here, but aren't your gripes applicable to Apple as well, especially with the release of OS X and the switch to x86 CPU's?
No. Apple has always maintained superb backwards compatibilty. For example, their move to PowerPC years ago included an emulator of previous chips so that software would continue to run unchanged.
Linux would be guilty as well with incompatibilities and user interface changes.
Not it wouldn't. Linux has always conformed to standards such as TCP/IP and Posix. I recently installed a very old Debian installation on a 15-year old Sparcstation and it integrates perfectly with the latest RedHat and Fedora systems in terms of networking, X remoting. It just works - this is the meaning of consistency!
This has to be one of the silliest articles I have seen for a long time.
... that works everywhere'.
I have been using Microsoft products since the 1970s and they have never supported portable skills and consistency. They have regularly dropped technologies (and abandoned developers and users) in order to change direction. One of the biggest examples of this is a recent one - attempting to force developers to switch from 'traditional' Visual Basic - for better or worse one of the most popular development environments ever - to VB.NET, which has major incompatibilities. This move alone alienated a large number of developers who had been MS supporters. So much for 'portable skills'. Then there are Windows incompatibilities, changes to network protocols, changes to registry structures, user interface changes (which require significant retraining for Windows administrators with every other release). Developers struggling with DLL hell and installation issues on different Windows versions will be most amused by the statement that 'there should be a standard
It is nothing but marketing spin and nonsense, and the author should be embarrassed.
And the information paradox has, as far I know, has been solved by Hawking's discovery that black holes can 'emit' energy.
Sorry for previous comment - I assumed you meant Hawking's recent conjecture that black holes can emit information.
The emission of energy does not help the information problem, as the energy emitted bears no relationship to the material that made up the black hole.