What is the best compiler for JAVA? BlueJ, Eclipse, or what? Opinion, please...I'm kinda lost.

I assume you mean IDE when you say compiler, since those are what you listed. I've never used BlueJ, so I can't comment on that one. Eclipse and Netbeans are both good IDEs and are free. There are many commercial ones out there, but I doubt they add enough value over Eclipse or Netbeans to really bother with. We use Netbeans here at work and have always been happy with it.

I heard some complains about BlueJ so dunno.
I been trying to use NetBeans but they are not very friendly towards me and in my opinion to complex for beginner (it is sort of Microsoft Studio in Java version for me). Currently I use JCreator LightEdition and messing around with limited version of IntellyJ

The light (free) edition of JCreator lacks code completion, JDK debugger, and refactoring tools though, which are huge time savers. Granted, Eclipse and Netbeans, while perhaps more complicated for a beginner, offer a fuller feature set from a free IDE.

The light (free) edition of JCreator lacks code completion, JDK debugger, and refactoring tools though, which are huge time savers.

Beginner is expected/supposed to learn befor he should get some help with code completition. Many of students at my university failed subject because for once they been using NetBeans at university pc's but couldn't get them running at home/laptops (I will not comment on that). Secondly most labs been done on Unix system with instalation of Java on it.
Personaly I prefer to do it the way as I do, because I'm in charge of coding (hopefully), I have certain habbits while writing and I do not want IDE to automaticaly closing bracklets, providing code completition, trashing my hardisk with tons of new un-necessary folder structors and do other silly things.

Beginner is expected/supposed to learn befor he should get some help with code completition. Many of students at my university failed subject because for once they been using NetBeans at university pc's but couldn't get them running at home/laptops (I will not comment on that). Secondly most labs been done on Unix system with instalation of Java on it.
Personaly I prefer to do it the way as I do, because I'm in charge of coding (hopefully), I have certain habbits while writing and I do not want IDE to automaticaly closing bracklets, providing code completition, trashing my hardisk with tons of new un-necessary folder structors and do other silly things.

That's understandable for learning and is ok for small projects of a few files. Once you start hammering code all day, every day, on a project that comprises several hundred class files though, code completion, jdk debugger, and refactoring become immensely productive :)

That's understandable for learning and is ok for small projects of a few files. Once you start hammering code all day, every day, on a project that comprises several hundred class files though, code completion, jdk debugger, and refactoring become immensely productive :)

I think that it's safe to assume that since this guy hasn't even found an IDE yet, he's not going to be working on projects that comprise several hundred class files without spending serious time learning. ;)

I think that it's safe to assume that since this guy hasn't even found an IDE yet, he's not going to be working on projects that comprise several hundred class files without spending serious time learning. ;)

Ok, you have a point there :)

I just find those feature to be very handy and code completion and jdk debugger can even benefit a beginner in the learning process. Memorizing API functions and trying to decipher exception messages from a text stack trace only slow down the process of learning the language and how to use it effectively. Some would say "bah, that's all part of the trials a beginner must face!", but I don't think that necessarily enhances learning - it just creates frustration.

Memorizing API functions and trying to decipher exception messages from a text stack trace only slow down the process of learning the language and how to use it effectively. Some would say "bah, that's all part of the trials a beginner must face!", but I don't think that necessarily enhances learning - it just creates frustration.

This sort of problems actualy helped me to understand better what I'm doing wrong, so now I do get mostly typos instead of horrible stack of error messages which didn't make any sence on the beginning

Memorizing API functions and trying to decipher exception messages from a text stack trace only slow down the process of learning the language and how to use it effectively. Some would say "bah, that's all part of the trials a beginner must face!", but I don't think that necessarily enhances learning - it just creates frustration.

Absolutely not.
If you don't learn the language, it's syntax and APIs, and always have to look up each and every command as soon as you don't have a tool to do it all for you, you don't know anything.

If you can't read and understand a stacktrace or compiler error, you are utterly useless as a programmer.

If you can't handle frustration and keep functioning regardless, you're utterly useless in any job or any part of life for that matter.
You're instead a spoiled little brat who isn't used to maybe not getting his way once in a while, who starts whining and sulking at the slightest setback instead of facing up to the challenge and overcoming it.

Absolutely not.
If you don't learn the language, it's syntax and APIs, and always have to look up each and every command as soon as you don't have a tool to do it all for you, you don't know anything.

If you can't read and understand a stacktrace or compiler error, you are utterly useless as a programmer.

If you can't handle frustration and keep functioning regardless, you're utterly useless in any job or any part of life for that matter.
You're instead a spoiled little brat who isn't used to maybe not getting his way once in a while, who starts whining and sulking at the slightest setback instead of facing up to the challenge and overcoming it.

Ok, I'm not trying to say that knowing the API and being able to read a stack trace is useless. What I specifically meant is that I think having tools to help with such things makes it faster to learn with less frustration.

Certainly there is enough information in a trace to know the source of an error, but tools can help you locate the specific code that is causing the error faster and focus on understanding why it is occurring and fixing it.

It's great to know much of the API by heart, but in an application of much size at all, unless you happen to have a photographic memory (I don't, I'm sorry, perhaps that makes me useless as you seem to indicate) you are going to need to look up method signatures, constants, etc. Obviously it's right there in the javadocs, but code completion puts that right in your editor. Instead of looking up and copying those things, your time can be spent in learning to use them effectively. Code completion will not pick the method for you.

If you think that learning with tools to help will make a beginner a "useless brat", fine, you're welcome to think so. In some cases that may well turn out to be the case. Personally I think the tools let them focus on using the language effectively and spend less time trying to figure out why it won't compile.

In my own case, I had to learn java using only TextPad and the command line, so I honestly can't say empirically one way or the other. But having a good IDE might have allowed me to learn to use the language the right way faster.

I also agree with parts of the above. The microsoft visual studio (IDE) for c# and vb.net in particular makes it so easy and painless to develop applications. All the api is brought up as you type.

That's why it is king of RAD, I've never encounted a java GUI builder, netbeans, jbuilder or eclipse that even comes close to visual studio. Sure some IDEs have intellitext and GUI builders, but there is always something that just doesn't gel.

I guess that is why projects such as mono is generating so much enthusiasm.

Having just gone through this process a month or two ago, I can offer a beginners point of view.
Netbeans did confuse me.
I found BlueJ unreliable. It would give me errors when there were none, and not give me errors when there were.
JGrasp is what I finally settled on. Simple, lite, and it does nothing more than compile and save.
It knows key words (int, public, string) and changes their color so that I know that part was right.
And when I was first starting, that was more than enough.


That's why it is king of RAD, I've never encounted a java GUI builder, netbeans, jbuilder or eclipse that even comes close to visual studio. Sure some IDEs have intellitext and GUI builders, but there is always something that just doesn't gel.

mmm, visual studio is great. It takes a lot of rap but i think its one of the best IDEs out and that any language could learn some lessons from it.

I'm a fan of JCreator (what is used in many AP Compsci classes).

Me too, the light edition. Code completion is really a hinderance id you touch type.

mmm, visual studio is great. It takes a lot of rap but i think its one of the best IDEs out and that any language could learn some lessons from it.

How many other IDEs and progarmming languages did you actually try? One of the best IDEs, I think that programming in style drag and drop is nothing special. I know some programmers which are good in it, but they prefer to work with other language beside VB. Also I stand by opinion of my teachers from university that programming in VB is just programming in Basic and because it was made visual by Microsoft it nothing special it is just B A S I C ;)

However there is no point to start war about topic, all of us like his/her chosen IDE

>mmm, visual studio is great. It takes a lot of rap but i think its one of the best IDEs out and that any language could learn some lessons from it.

Definitely, that's why it's king.

How many other IDEs and progarmming languages did you actually try?

However there is no point to start war about topic, all of us like his/her chosen IDE

I tried:

Visual Studio .NET
Visual Studio old school (version 5 / 97)
SharpDevelop
NetBeans
BloodshedDevC++
JCreator

my opinions:

bloodshed is good. i like its intellisense type thing and i like its code highlighting. It also adheres to ANSI (unlike VS)

NetBeans. Didnt like this IDE. It seems a bit slow and the interface is somewhat unwieldy

Jcreator. Liked it more than netbeans but the free versions was lacking in essential features.

SharpDevelop. Very very good. Looks and feels exactly like Visual Studio 2003 but lacks the polish. IMHO not as good as the full VS.NET but better than the express editions.

Old school VS. Old school VB6 looks dated now but i like it. It does exactly what it says on the tin but unless you specifically want to edit an old project or make smaller, faster code, there is no real reason to use this instead of VB.NET.

Old school C++ was also a wierd one. Nothing at all like C++.net but very good once you learn how to use it. Doesnt adhere to ANSI though. The MFC Appwizards rock.

VS.NET is IMHO the best. It has the largest amount of wizards and is the easiest to use for RAD and is consistent interface throughout.

Ok, I'm not trying to say that knowing the API and being able to read a stack trace is useless. What I specifically meant is that I think having tools to help with such things makes it faster to learn with less frustration.

Not in my experience. People end up learning the tool instead of the language and are utterly lost when that tool isn't available to them in the exact same version and configuration at a later date.

Once you can do it yourself those tools can speed up your workflow, and at that point pretty much any tool that's decent will be easy to master, but if you rely on that tool to the exclusion of learning to do it yourself (what IDE based teaching almost always ends up doing) you're useless in the real world.

Comments
I agree, learn the language first, then find the tool to help you with your work load

I tried:
Old school VS. Old school VB6 looks dated now but i like it. It does exactly what it says on the tin but unless you specifically want to edit an old project or make smaller, faster code, there is no real reason to use this instead of VB.NET.

Old school C++ was also a wierd one. Nothing at all like C++.net but very good once you learn how to use it. Doesnt adhere to ANSI though. The MFC Appwizards rock.

VS.NET is IMHO the best. It has the largest amount of wizards and is the easiest to use for RAD and is consistent interface throughout.

Never knew you could compile Java programs using Visual Basic 6 (or Visual C++ 6)...
Besides being some of the worst development tools ever to hit the professional tools market, and in the case of VC6 being utterly useless for people trying to write standards compliant C++, they're completely irrelevant for writing Java so have no place here (but then, neither do you with your insistence on noting in every thread that if only VB6 had been used everything would be perfect).

I was just comparing IDEs

and no i dont think VB is the best language in the world, what makes you think i think that?

he-he
you did not actualy said that VB is best language, however your early July Newsletter statement clearly shows where your royalty lay (I hope that is the correct english expression)

VB is a great language and anyone that thinks its just for noobs aught to be laughed at. For learning programming, and RAD, you cannot beat it. Visual Studio is an awesome piece of kit...

he-he
you did not actualy said that VB is best language, however your early July Newsletter statement clearly shows where your royalty lay (I hope that is the correct english expression)

Perhaps bennet uses VB and VB.net interchangeably? He uses the english language rather loosely.

This article has been dead for over six months. Start a new discussion instead.