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.
Ezzaral
Posting Genius
15,986 posts since May 2007
Reputation Points: 3,250
Solved Threads: 847
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
peter_budo
Code tags enforcer
15,436 posts since Dec 2004
Reputation Points: 2,806
Solved Threads: 902
Eclipse all the way, much lighter than netbeans.
iamthwee
Posting Expert
5,950 posts since Aug 2005
Reputation Points: 1,543
Solved Threads: 439
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.
Ezzaral
Posting Genius
15,986 posts since May 2007
Reputation Points: 3,250
Solved Threads: 847
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.
peter_budo
Code tags enforcer
15,436 posts since Dec 2004
Reputation Points: 2,806
Solved Threads: 902
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 :)
Ezzaral
Posting Genius
15,986 posts since May 2007
Reputation Points: 3,250
Solved Threads: 847
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.
Ezzaral
Posting Genius
15,986 posts since May 2007
Reputation Points: 3,250
Solved Threads: 847
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
peter_budo
Code tags enforcer
15,436 posts since Dec 2004
Reputation Points: 2,806
Solved Threads: 902
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.
jwenting
duckman
8,392 posts since Nov 2004
Reputation Points: 1,662
Solved Threads: 337
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.
Ezzaral
Posting Genius
15,986 posts since May 2007
Reputation Points: 3,250
Solved Threads: 847
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.
iamthwee
Posting Expert
5,950 posts since Aug 2005
Reputation Points: 1,543
Solved Threads: 439
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.
jbennet
Moderator
18,523 posts since Apr 2005
Reputation Points: 1,826
Solved Threads: 601
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 justB A S I C ;)
However there is no point to start war about topic, all of us like his/her chosen IDE
peter_budo
Code tags enforcer
15,436 posts since Dec 2004
Reputation Points: 2,806
Solved Threads: 902
>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.
iamthwee
Posting Expert
5,950 posts since Aug 2005
Reputation Points: 1,543
Solved Threads: 439
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.
jbennet
Moderator
18,523 posts since Apr 2005
Reputation Points: 1,826
Solved Threads: 601