An insider at Sun says there’s frantic discussion inside the company about big problems with the Java platform that, he claimed, “prevent general acceptance of Java for production software within Sun“. He said: “It strikes me as hypocritical for Sun to blame Microsoft for any failure of the Java platform when Sun’s own engineers find developing common software applications in Java impractical“. One of the problems, he claimed, is that while Java has a lot of benefits compared to C and C++, its implementation on Solaris makes it difficult to deliver reliable applications. The Inquirer has the scoop.
HAHAHAHA….come on Croanon….come and tell us how great Java is. Bleahhhh
Java removed the power of C++ and added a few pretty neat OO features plus a garbage collector. This makes Java an easier language for beginners, no pesky troubles with bothering to learn how pointers really work, when one should use a function pointer and when to not do so. The list goes on, because they removed the powerful features of C++, which undoubtable is not easy to use unless you are experienced.
C++s real big problem is the bad shape of APIs and mostly wrappers to C APIs. With a great API things are different (I would like to get some comments by BeOS and KDE coders here) and you still retain all the possible power. What I would like to see is a superset to C++, which adds more OO features to make it easier to program (and a native string type). This is not what Java is, do not be fooled by the similarities in syntax.
So if you are going to write applications for a UNIX system like Solaris, which has a native interface in C, I do wonder how effective it can be if you do it in Java. You can not get hold of anything outside the VM if you don’t write wrapper systems for the C APIs of Solaris, but then you throw the compatibility out the window (this is what M$ did, since Java sucks for making Windows applications). Any features that are added must be added to the VM, and all of a sudden be supported on a varied host of systems.
Where Java is doing well today is mostly places where it easily could be replaced by languages such as C#/VB.NET, Perl, Ruby, Python, etc. C/C++ doesn’t have this problem…
Very dull, but well written article tries to bring the reader to his opinion.
However they did not say what applications they were developing or how big the applcations are?
Some applications are better from a Java perspective whilst others I don’t see much point. Have you seen sun’s 3D framework or EJB? Those things are useless for small applications.
Does anyone know why java apps take so long to load/compile? I know, I know if you’ve got a fantastic system, with 2Ghz 256DDR java is pretty fast, but c’mon its not pratical for the average Joe, who just wants to say “Hello World”.
And some Applets aren’t worth anything compared to some of the Flash/Shockwave material thats out there.
just goto http://surface.yugop.com
and let your mind be blown away.
I have always favoured C++ over Java and I know exactly how pointers work so I have no problem with pointers and in my own programs because I love pointers so much, I use them for fun since I never make catastrophic mistakes that can crash a system Hehe I know my code Sometimes I may make a mistake by accident that brings Windows 9x to its knees and crashes lol Oh did I say I never make mistakes? No I was kidding
I think PatchPro epotomizes precisely the type of applictaion which shouldn’t be written in Java. For those of you who don’t know, PatchPro is a Solaris patching tool which assesses the current state of the system and automatically downloads and installs all necessary patches… at least, that’s how it’s supposed to work in theory.
I’ve ran into problems so numerous with PatchPro that I am no longer even attempting to use it. I’m sticking with the patch clusters, which install using shell scripts, and are very much reliable.
My latest PatchPro discovery is that PatchPro will exhaust the Java VM’s file descriptor table if too many patches need to be sequestered. I’m not certain if PatchPro just doesn’t close the handles to the patches it sequesters or if the Java VM is actually leaking descriptors, but there’s obviously a problem with PatchPro in some respect.
Bottom line: PatchPro is a poster boy for why system tools shouldn’t be written in Java, especially when a shell script can do its job much more effectively and reliably.
*SIGH*
Hands up everyone that thinks there isn’t a single M$ engineers that doesn’t LOVE to use .Net over C++.
Use the best tool for the job. If you want HW independance you might want to think twice about using C++.. If you only need to develop for a single HW platform, why on should you use a suboptimal solution such as Java or .Net?
> C++s real big problem is the bad shape of APIs and mostly wrappers to C APIs. With a great API things are different (I would like to get some comments by BeOS and KDE coders here) and you still retain all the possible power.
Indeed, C++ in BeOS is wonderful
Just forget about MFC and other crap.
and I was a C-only guy before I began using BeOS day2day one year ago…
Sun’s decision to use the java platform for some parts of Solaris genuinely bemuses me, in particular the Solaris Management Console (replacing admintool) and about the most unlikely application to ever be ported to another system imaginable. It’s pretty well featured but so _slow_ on some of the older systems (which are still officially supported in S9) it’s unusable – literally 10 minute startup times, and once you’re in it’s too painful to do much other than look.
That said for the implementation I do think Java is a very nice in concept (and runs java applications very nicely on my PDA thanks), but I also think Sun have been using the square peg in the round hole in some cases. Java really isn’t the best in the above case, but I guess the systems it’ll get much use on will be significantly faster than mine.
As for the language, I never really liked writing sentences where 3 letters would do in C .
one problem is that one reason is
is this a job for .Net?
🙂
Indeed, use the right tool for the job. If your OS has a C interface, use C (or C++ as a ‘better’ C, maybe even using classes for some internal stuff). Don’t try and wrap the APIs up for a language they were never intended for. At least in Windows you can wrap your APIs in a COM interface and then have a choice of languages that can call it in a reasonably natural way, but even that can seem a kludge on occasion.
has just disadvantages && advantages
The BIG disadvantage is of course
lack of speed
The BIG advantage (which is the opposite argument for speed)
is platform independance…
.NET is not as platform independant now as JAVA…
So make your choice…
PS: I thing that JAVA API’s are not that bad…(okay not all)
Although… the BeOS API is nicer 😉
If all OS would have these nice C++ API’s like BeOS
(and if there were standard API-s between several OS’s we even would not need some platform(JAVA) on another platform(OS))
.NET has one big advantage of knowing JAVA (they do it the same and they do it even better)
Thats evolution…
-A
> What I would like to see is a superset to C++,
> which adds more OO features to make it easier to program
Try boost (www.boost.org)
> (and a native string type)
What, like std::string? It’s been in there since ’98
I think the article says more about Solaris than Java, actually, and most about the Solaris patch system.
Sun engineers think that Solaris gets in the way of implementing many software applications. The problem is widely recognised internally.
See? It’s Solaris that gets in the way, not Java.
Memory hog? The online demo of JPetStore (http://www.ibatis.com/jpetstore/jpetstore-online.html) runs on a Pentium 233 with 64 Mb…or, as iBatis puts it: “Let’s see .Net run on that….” (I shiver at the thought of just starting Windows on a machine with 64 Mb..don’t even want to think about opening an application or running extra services with only 64 Mb!)
In a past life, I worked for a startup doing security middleware; the server was written entirely in Java.
It ran something like twice as fast on Windows NT as it did on Solaris, using hardware that was around a tenth of the cost. Sun’s VM in both cases, naturally.
It always amazed me that Sun’s language ran so poorly on Sun’s hardware.
– chrish
Long live C#.
.NET has one big advantage of knowing JAVA (they do it the same and they do it even better)
Thats evolution…
I completely agree with you if you are referring to Windows desktop applications; or even Windows client/server apps.
I am the manager of an internal tools team and I really like what my team can accomplish with C# on the desktop (The speed is what I’m referring to. I can write the same tools in C++ or something else, but C# provides decent development speeds and is a lot cleaner than C++).
However, I think .NET completely sucks for web development. If Microsoft would have cloned Java’s servlet capabilities in C#, then it would have been great. However, as always, they had to kludge a crappy existing MS technology into the mix (in this case ASP).
Personally, I prefer using Java servlets or Zope over .NET for web development.
The problem is clearly Sun, not so much Java. C, C++, and Java have all their place, but there are optimal places for using them. Sometimes C is better, sometimes Java. One does NOT fit all.
The problem is SUN’s “not developed here” attitude (which is true for many corporations) – and they try to stick in Java where it does not belong.
That said, Java itself does have problems (handling of primitives f.ex., or signaling multiple conditions on a wait just to name a couple of many, many).
I know this will result in many flames, but IMHO as a language, Java has reached its evolutionary peak – there is very little genuine core language development going on within Java. If you don’t believe that, for contrast take a look at Python which is still evolving nicely. Sure, Java is not as ossified as C, but it is pretty much “done”. Python meanwhile is still building nicely.
I only have one question, (I being a programmer student), why so many vent on the merits of Python yet I see so little interest on the language from big compagnies(where the money flows out and dictates what student will learn).
So why should I learn Python beside for the sole purpose of curiosity (which is still a pretty good reason if you ask me).
I guess I’ll stick to learning those languages so many compagny require new programmer to know Java and eventually c# also will be commonly requested. It’s just a matter of time.
While you can dispute yourself to the many avantage of X language over Y, it always comes down to money and demand.
But I am also favorable of using the best language for the best situation, like java for web applet.
any ways, I wan’t to hear comments from all of you experimented programmers and software bussiness owners…
Aside the fact that CroanoN is an idiot, there is a truth that Java is a good language and platform. The Java is not impractical, however for certain applications java may not be the right choice. Small tools are ok, but large applications consume too much memory in Java. Java doesn’t care too much about memory and CPU. When you write in Java, you give away your freedom to make your program the best on these issues. Sure you can optimize on various topics, but compared to native apps, still you are way behind. For that reason, the article has a point, but Java is not completely useless. It is getting better and better. Considering the fact that we have faster CPUs and our machines can have more memory, Java as a platform is the future, as well as C#. C# is slighly better though. Java may win the war, since research community published too many papers about Java, and making it better. So unless C# enjoys the same level of attention, Java will be the future language.
shhhh! Don’t tell anyone about Python or Ruby. I use both languages for business and personal projects. Development time is much less than Java and I would bet much less that C# too. I prefer Ruby, but Python is great too. Keep these languages in your back pocket and use them when you want to impress someone with how fast you can deliver a solid solution.
Since you are not asking about the technical merits of Python, I won’t comment on that. You asked about why you should learn Python? First, Python is very easy to learn… of course using Python by itself will not make you a better programmer, but it has a faster learning curve.
Second, with time, corporations will cotton on to Python – it takes time. Python is still evolving and needs to complete a bit more – but it has huge advantages in many situations, and it is just a matter of time before its use spreads much more. Programmers like any human being, likes to use what they already know – it is called the legacy problem. It takes time before a new generation of programmers writes with Python, and new code is generated in Python, which then needs to be maintained and extended. You need critical mass. If the language is any good, it’ll get that mass. Python is that good. It is just a matter of time.
shhhh! Don’t tell anyone about Python or Ruby. I use both languages for business and personal projects. Development time is much less than Java and I would bet much less that C# too. I prefer Ruby, but Python is great too. Keep these languages in your back pocket and use them when you want to impress someone with how fast you can deliver a solid solution.
I completely agree with you John. Python and Ruby really are excellent languages. It is time well spent to learn them. I like Python a little better myself, but that’s probably just because I know it better.
Knowing early Java from around 1997, three years ago, when we started a new GUI project, I was vehemently against Java and voted to use C++ and Qt instead. Management chose to go for the Java solution so I started to code with Java 1.3.x
Soon I had to admit that Java had improved drastically during that three years. It’s graphics library (Java2D) was very powerful, with features Qt didn’t offer at that time (now it is different).
So management’s reason that Java development might be faster than C++ development had its point, because the IDEs and documentation were really excellent.
On the other hand, my fears that Java is too slow and that interfacing to a database under Java might turn out to be a nightmare were not false either:
Yes, it was possible to code non-sluggish GUI in Java, but because there is not much performance margin in Java, one had to write quite clever code. Naive coding had no chance to produce something acceptable.
Buying a PC today (somewhere between 2 and 3 GHz clock rate) might make this problem go away a bit. Faster hardware makes Java fast enough at some point, Moore’s law helps them out.
Interesting enough the performance penalties of Java are not so much rooted in its interpretation of byte code, the hot spot JIT does a very good job, no what happens instead is that (at least our team) produced an application where nobody really cared about memory usage thanks to Java’s garbage collector. So Java turned out to be a memory hog. And moving lots of memory around makes things slow. Memory waste is the real Java problem.
Interfacing to the database turned out to be problematic, as I expected. The reason is that at its heart the database access drivers are coded in C and somewhere all those data that lies around in a C memory layout must get copied in or out of the Java VM and Java has its own memory layout for it data. This leads to duplication and unnecessary memory moves. And thus makes things slooow.
What went better than expected was the platform portability.
The GUI worked under Windows, Linux and Solaris without changes. The best platform was Windows, because of its nice fonts and the effort that Sun probably put into the Windows version.
My conclusion?
Java, client side Java to more precise, still sucks in some areas, but it sucks less than one tends to think.
For some stuff, like teaching imperative programming to students, or writing portable programs that need just to work and have no large demands on performance like perhaps a lot of business GUIs or database importers it might be good choice.
Regards,
Marc
Are you really believing anything like this ????
Come on… some anonymous engineer said that he had heard of something that was talked about at Sun… !!!!