Non-programming question about Java...
-
So I've made my first aquintance with Java since I need it for my study at OU. I've heard some colleagues and friends say that Java is absolutely terrible, so I wasn't to happy about having to use Java. I started using JCreator (which looks nice, but is quite limited in features). After that I was introduced to Eclipse which looks a lot better. Of course the editor has nothing to do with the language, but it makes programming in it a lot more pleasant. So what did I think of Java? It's not bad. Missing the Properties of C# and the Namespace Imports (using), but they're stuff I can get used to. I could run it on my desktop or in my browser without much trouble. Am I missing something or is Java just not the horrible language I was told it is?
It's an OO world.
public class Naerling : Lazy<Person>{
public void DoWork(){ throw new NotImplementedException(); }
}Java is a language which has been promoted by students, academics, and computer scientists. Because of this foundation, the language has been made much more complex than necessary limiting its use to only those who like such environemnts. Microsoft's .NET, in my opinion, is a far superior environment to work in (and yes, I am a .NET specialist) due to its easier learning curves and better intergated tools. That being said, Java is just as good as .NET in terms of capability, which is enhanced by the NetBeans platform, which mirrors the capabilities of Microsoft's Visual Studio. Your colleagues who have found Java to be a difficult language to work with may just see it as such due to the style of the environments that Java offers, which once again is based upon its historical foundations in academia and computer science. If you use the right tools (ie: Netbeans) and obtain some good manuals (ie: O'Reilly), it will make working with this language a far more enjoyable experience...
Steve Naidamast Black Falcon Software, Inc. blackfalconsoftware@ix.netcom.com
-
So I've made my first aquintance with Java since I need it for my study at OU. I've heard some colleagues and friends say that Java is absolutely terrible, so I wasn't to happy about having to use Java. I started using JCreator (which looks nice, but is quite limited in features). After that I was introduced to Eclipse which looks a lot better. Of course the editor has nothing to do with the language, but it makes programming in it a lot more pleasant. So what did I think of Java? It's not bad. Missing the Properties of C# and the Namespace Imports (using), but they're stuff I can get used to. I could run it on my desktop or in my browser without much trouble. Am I missing something or is Java just not the horrible language I was told it is?
It's an OO world.
public class Naerling : Lazy<Person>{
public void DoWork(){ throw new NotImplementedException(); }
}Personally I love the language, and with good dev tools like Netbeans and Eclipse emerging, its just getting better. As the second most popular language after C, it cant be going too wrong, and before dotNet Microsoft tried to steal it, for those that remember. The real issue is just that, one guy owns the platform, another a cool language, the guy with the platform (like Microsoft) makes a cool video system but licenses it so the platform above Java cant use it... and so the language has a Multimedia deficiency. Its the business end that is "where its really at", and keeping your eye on what these warring platforms get up to. This is how I use Java... and it scares the hell out of all the big platform boys. http://ecoamigo.herobo.com/POJO/ so I think its safe to say that Java is still very much in the game. If you consider that big players like Android/Google/IBM/Sun/Oracle are also very much in the Java game, I think its safe to say that the dotNet Java battle is far from over. Also look at things like the Apache Project... I fell in love with Java when Microsoft brought it out, yes!... and the love affair hasn't stopped.
-
I don't think the language is terrible, but I think the run time is a steaming pile.
CPallini wrote:
You cannot argue with agile people so just take the extreme approach and shoot him. :Smile:
Java is a modern procedural object-oriented language with garbage collection. It's really not that much different to C# and several other less common languages. Of course, the details are different and good programmer output requires language familiarity. A lot of language bitching is related to familiarity and habits of thought. Java's real success is in server applications due to it's platform independence. For the vendor, this means they can maintain a single core code base and sell to the customer's preferred platform, including Windows, Linux, Sun, IBM, and more. The vendor might have a little platform specific code and tweaks, eg, installers and launchers, but the core 99% of their code runs on any JVM. For the customer there is less platform tie-in although in practice this typically doesn't amount to much: customers will stick with their familiar platform. So the platform independence really translates to product availability for their house platform. JVMs are mature technology: fast, stable, scalable and tuneable. Java and the JVM is great for writing web applications and several good Java application server platforms are available that handle the connection and management stuff. Java has a pluggable library set that is roughly comparably to dotnet, with pluses and minuses. There are often a few different Java libraries available for a particular purpose including a lot of good open source. When debugging Java you tend to make it to the actual source rather than hitting a blackbox function call. A variety of other languages have been subsequently written for or ported to the JVM because it is a reliable standard. The case for Java on the desktop is a little weaker but the same argument applies. Zippy UIs are better written in native languages but generic system tools - things like ldap directory browsers or log analysers - are commonly written in Java.
If, after hearing my songs, just one human being is inspired to say something nasty to a friend, or perhaps to strike a loved one, it will all have been worth the while." - Tom Lehrer
-
Java is a modern procedural object-oriented language with garbage collection. It's really not that much different to C# and several other less common languages. Of course, the details are different and good programmer output requires language familiarity. A lot of language bitching is related to familiarity and habits of thought. Java's real success is in server applications due to it's platform independence. For the vendor, this means they can maintain a single core code base and sell to the customer's preferred platform, including Windows, Linux, Sun, IBM, and more. The vendor might have a little platform specific code and tweaks, eg, installers and launchers, but the core 99% of their code runs on any JVM. For the customer there is less platform tie-in although in practice this typically doesn't amount to much: customers will stick with their familiar platform. So the platform independence really translates to product availability for their house platform. JVMs are mature technology: fast, stable, scalable and tuneable. Java and the JVM is great for writing web applications and several good Java application server platforms are available that handle the connection and management stuff. Java has a pluggable library set that is roughly comparably to dotnet, with pluses and minuses. There are often a few different Java libraries available for a particular purpose including a lot of good open source. When debugging Java you tend to make it to the actual source rather than hitting a blackbox function call. A variety of other languages have been subsequently written for or ported to the JVM because it is a reliable standard. The case for Java on the desktop is a little weaker but the same argument applies. Zippy UIs are better written in native languages but generic system tools - things like ldap directory browsers or log analysers - are commonly written in Java.
If, after hearing my songs, just one human being is inspired to say something nasty to a friend, or perhaps to strike a loved one, it will all have been worth the while." - Tom Lehrer
I'm humbled by your sorcerous skill at casting maximized wall of text.
CPallini wrote:
You cannot argue with agile people so just take the extreme approach and shoot him. :Smile:
-
Closer timings than on my machine, do you think it's due to the StopWatch? Can't image. The matter is definitely quite obscure, so I wouldn't dare to speculate about why it's still slower on x86.
Wout
-
I don't think the language is terrible, but I think the run time is a steaming pile.
CPallini wrote:
You cannot argue with agile people so just take the extreme approach and shoot him. :Smile:
I'll second that. I had a C program that took 10s to run. It read variable length records and split them into fixed sized record files. Converted it to Java: after 2 hours it still hadn't finished. That was the bytecode interpreter. Native is a lot faster but crap for development.
-
You haven't used a lot of GUI APIs then.
-
You haven't used a lot of GUI APIs then.
-
What's worse than Swing then? Instead of some vague all-knowing comment why don't you give an example? I think you'd be pretty hard-pressed to find anything worse than the layouts in Swing and the way the whole GUI feels so clunky.
Take it you haven't tried other non-Java GUIs like SL-GMS, SDL, FLTK, MFC, Windows SDK, Athena Widgets or X-Windows. SL-GMS is screen scalable - everything is a fraction of 1 screen so to draw a line across the centre, it has to be from 0.0,0.5 to 1.0, 0.5. In these APIs, the button sizes are fixed: they don't expand to the text size so if you're switching from English to German where small words like return become big words like zurückkehren you need to redo the entire GUI. SL-GMS is so bad, the text even runs out of the list boxes and over other controls! The tree control in MFC is sheer murder. Even MS can't get it right. Sometimes on explorer windows, disk drives repeat. If you have a big C# project in Visual Studio, it takes ages to open and ages to close because the tree control keeps on redrawing itself as it closes each project! If you want it to work properly, you need custom drawing and that's a nightmare in itself. It is really clunks are us. SDL and X Windows are really basic - lower than AWT (which is very similar to Motif). Count yourself lucky that you haven't been given just one routine: how to draw a dot at a location on the screen in a certain colour. Then you have to write the entire suite: buttons, lines, textboxes, listboxes, fonts: the whole works!
-
So I've made my first aquintance with Java since I need it for my study at OU. I've heard some colleagues and friends say that Java is absolutely terrible, so I wasn't to happy about having to use Java. I started using JCreator (which looks nice, but is quite limited in features). After that I was introduced to Eclipse which looks a lot better. Of course the editor has nothing to do with the language, but it makes programming in it a lot more pleasant. So what did I think of Java? It's not bad. Missing the Properties of C# and the Namespace Imports (using), but they're stuff I can get used to. I could run it on my desktop or in my browser without much trouble. Am I missing something or is Java just not the horrible language I was told it is?
It's an OO world.
public class Naerling : Lazy<Person>{
public void DoWork(){ throw new NotImplementedException(); }
}As and old time (seriously) C and then C++ programmer, I love Java. In fact I'm expending a large effort of time, not to mention dollars, to get my SCEA. I will be testing for SCJP shortly (Two weeks). All my career direction is toward Java now. Even if I do have to C# .Net at this time.