• Post Reply Bookmark Topic Watch Topic
  • New Topic

Which is best and easiest Development Environment?  RSS feed

 
Bradley Clay
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I am currently reading Beginning Programming with Java for Dummies. Yea I am a NEWB!!! lol I was wondering which IDE is best and easiest. The book uses JCreator Pro. I have also heard Eclipse is a good one. There is also a Dummies book for Eclipse which I may read. Any other suggstions on an IDE is greatly appreciated. Also, should I read through the whole book first then go back and do the actual programming stuff or do everything as I go along? Which would be better?
 
Wouter Oet
Bartender
Posts: 2700
IntelliJ IDE Opera
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
There is no best and easiest IDE. It's a personal preference. Currently I have Netbeans, IntelliJ and Eclipse installed and use each one for different tasks.

I would advise you to do the programming as you go along. Otherwise you'll forget what you read.
 
fred rosenberger
lowercase baba
Bartender
Posts: 12563
49
Chrome Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
For a beginner, the best would be notepad and a command line.

And the only way to REALLY learn programming is to do it. So, I'd do the code as you go along. If they give you the option to download the software and run it...don't. It sounds stupid, but you'll learn a LOT more if you actually type all the code in yourself.

Also, experiment. type in the code, run it. Then change it and see what happens. Say "I wonder what happens if I do THIS" - then do it and find out.
 
Ninad Kuchekar
Ranch Hand
Posts: 64
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Welcome to Javaranch!

Bradley Clay wrote: Yea I am a NEWB!!! lol

The moderators here are strict about using "real words" and discourage to use short forms for phrases.


If you are asking about IDE's its really your choice, you could try using them and decide for yourself which suits you.
When I started programming, I used a Notepad, which helped me a lot in remembering syntax, method names, and avoiding commonly made mistakes which IDE's sometimes rectify themselves or at least notify the user.

Bradley Clay wrote: Also, should I read through the whole book first then go back and do the actual programming stuff or do everything as I go along?

It's not a novel! Go step by step, approach the book by separating it into topics and trying them out simultaneously. You can't lie on the bed at night and read the book and then go to your PC the next morning to try out the code!(You can, but you should not )
Read the topic and try out the code as you read, maybe experiment a bit too.
Good Luck!
 
Hauke Ingmar Schmidt
Rancher
Posts: 436
2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
fred rosenberger wrote:For a beginner, the best would be notepad and a command line.


I disagree. (But not fully ^^.)


And the only way to REALLY learn programming is to do it.


I fully agree.

In my opinion it is important how much knowledge the learner has in advance. Can he program some different language, does he know other tools? Or is he trying to learn how to program?

Another (imho very) important factor is how he learns. Does he have a teacher or supervisor? Is he learning for himself?

So my answer range for a new learner could be anywhere between Greenfoot, BlueJ, Notepad+Command Line (you have to know it, but no need to use it for the whole learning process) and any of the fully blown IDEs.
 
Campbell Ritchie
Marshal
Posts: 56536
172
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Disagree with you both
Get a decent text editor (I usually use Linux which has excellent products like Kate and gedit), not Notepad, which is good for some things but not for programming. Try Notepad++ and Notepad2, which are nothing like MS Notepad (but very like each other). They are much better for writing code, particularly if you find features like automatic indentation and bracket highlighting. They will even make keywords appear in a different colour from the rest of the text.
Then use the command line.
 
Hauke Ingmar Schmidt
Rancher
Posts: 436
2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
^^

Sure, Notepad is just a brand of editor, could be any. But it has one advantage: It does not offer any programming support. The whole point of using a text editor for Java programming is to learn and see the basics. To do real Java programming there is (IMHO) no way around an IDE. And the learning effect (the shock factor) is higher with less features.

But, as I mentioned before, in most cases I would not teach by using an editor and a command line. I would just use them to showcase (and tell stories about goodhard old times).
 
David Newton
Author
Rancher
Posts: 12617
IntelliJ IDE Ruby
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hauke Ingmar Schmidt wrote:[...] And the learning effect (the shock factor) is higher with less features. [...] in most cases I would not teach by using an editor and a command line.

So you'd deliberately deprive people of the most effective learning mechanisms?
 
Ninad Kuchekar
Ranch Hand
Posts: 64
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Campbell Ritchie wrote: ..., not Notepad, which is good for some things but not for programming. Try Notepad++ and Notepad2,...


Textpad is a good option too!
 
fred rosenberger
lowercase baba
Bartender
Posts: 12563
49
Chrome Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I actually use ConText. I don't use most of it's features. Text highlighting (string literals in one color, keywords in another, etc) and brace matching...but that's about it.

Of course, I don't do much actual coding anymore, and certainly nothing on any major project. So take my "notepad" with a grain of salt. The important thing is to use a tool that doesn't do most of the work for you, so that you really learn the language and not the IDE.
 
Seetharaman Venkatasamy
Ranch Hand
Posts: 5575
Eclipse IDE Java Windows XP
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Ninad Kuchekar wrote:Textpad is a good option too!

I use TextPad, but slowly I start liking Nodepad++ . because in some situation, Personally I feel notepad++ is flexible than textpad.
example: suppose you are viewing server logger in Textpad[I use baretail], then try to clean the log info , and then save . now Textpad not allow you to save since server is running . but Notepad++ allows you. also I feel comportable while searching a word in notepad++ since, the short-cut key is much like eclipse.

 
David Newton
Author
Rancher
Posts: 12617
IntelliJ IDE Ruby
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Redcar is my new editor of choice under JRuby--I still find it a little slow, but I can code it in Ruby. Big win.
 
Campbell Ritchie
Marshal
Posts: 56536
172
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
RedCar? Is that a Ferrari? Or the racecourse about 10 miles from here?

Couldn't resist the pun
 
Maneesh Godbole
Bartender
Posts: 11445
18
Android Eclipse IDE Google Web Toolkit Java Mac Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Campbell Ritchie wrote:.. They are much better for writing code, particularly if you find features like automatic indentation and bracket highlighting. They will even make keywords appear in a different colour from the rest of the text.


+1
Couldn't agree with Campbell more.
At a beginner stage, one should be focused on learning Java and not the IDE.
 
Bradley Clay
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thank you all for the advice. I think I will start writing my code in a text editor and command line, but also follow the book with an IDE to get used to both. Maybe use the IDE to find out what code needs to be typed to build a program then actually type it out myself to see what commands do what.
 
Campbell Ritchie
Marshal
Posts: 56536
172
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
That sounds to me a bit like getting the worst of both worlds.
 
Bradley Clay
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
So should I just find tutorials on writing Java code? That's actually what I want to learn. These IDE programs make it look confusing because when there is an error I don't know what is wrong, and I'm not really learning Java. I'm learning how to use the IDE. For example, I was doing the Hello world thing on Eclipse the other day and I put in "System.out.printIn" instead of "System.out.println" using an upper-case "i" instead of a lower-case "l". I was so confused because it looked like I typed everything correctly. I'm not looking for something tutorial to that level. That is a simple mistake I caught quickly. Are there any books for writing Java code, or any websites you can suggest? Thank you again.
 
Campbell Ritchie
Marshal
Posts: 56536
172
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Start looking for books here, and if you follow the links to amazon, JavaRanch gets a small payment.
 
Karim Gunjarge
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
best IDE is Eclipse, but better start with text editor; and use some tools like TextPad, or try jcreator.
 
Christian Dillinger
Ranch Hand
Posts: 200
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Bradley Clay wrote:So should I just find tutorials on writing Java code? That's actually what I want to learn. These IDE programs make it look confusing because when there is an error I don't know what is wrong, and I'm not really learning Java. I'm learning how to use the IDE. For example, I was doing the Hello world thing on Eclipse the other day and I put in "System.out.printIn" instead of "System.out.println" using an upper-case "i" instead of a lower-case "l". I was so confused because it looked like I typed everything correctly. I'm not looking for something tutorial to that level. That is a simple mistake I caught quickly. Are there any books for writing Java code, or any websites you can suggest? Thank you again.


Of cource you are learning Java when using Eclipse but you learn using Eclipse at the same time.
But where's the difference between the error Eclipse shows and the one you would see when using javac in cmd.exe? Eclipse shows a lightbulb with a red X on it. If you move the mouse to that red X, you see ("The method printIn is undefined for the type PrintStream")...
It shows the position and the reason for an error. Recognizing the difference between I und l is a matter of fonts, not of Eclipse or TextPad oder Notepad oder JCreator.

I recommend using command line for the first two programs. A simple HelloWorld and a simple app that uses another jar file. So you learn how to compile a simple class and how to set classpath at compile and at runtime. After that you can switch to an IDE and use their features like auto-completion... Why do you want to type "System.out.println(" more than once? "sysout" + CTRL +SPACE and you are done... Why do you want to lookup every import via API? CTRL+SHIFT+O. Why do you want to lose yourself in formatting code after inserting an if-Statement? CTRL+SHIFT+F.
Clear code makes it easier to understand java not just typing into a simple editor window.
 
Hauke Ingmar Schmidt
Rancher
Posts: 436
2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
David Newton wrote:
Hauke Ingmar Schmidt wrote:[...] And the learning effect (the shock factor) is higher with less features. [...] in most cases I would not teach by using an editor and a command line.

So you'd deliberately deprive people of the most effective learning mechanisms?


You are right, I was a bit unclear here. I apologise.

My main point is: There is no generally valid answer. It massively depends on how someone learns Java and/or programming and how much preexisting knowledge the pupil has.

Regarding a pure text editor: I see no value at all in being able to program Java with a text editor with no or only basic support (like syntax highlighting). The idea of supporters is, in my experience, that the pupil has to exactly know what he does, so he has to look up methods in the javadocs to learn "the hard way". In my experience this does not work. People tend to use what they know even if it is cumbersome.

And I think it even contradicts the idea of object oriented programming a little. An object has methods, so it could show me what methods it has. For a pure beginner, who is new to programming in general, a full blown IDE and the full list of autocompletions is distracting. I would begin with BlueJ or Greenfoot there (unless I see high potential for concentration, then I would start with an IDE and a simple project set up; you can even restrict the autocompletion in some IDEs).

People still have to know what to do. They still have to remember that there may be a specific method that does the job they want to do. Real world example, as simple as it might be: A pupil needed to count the number of objects in a list. Not *that* hard... but having learned loops a few lessons before the first approach involved to much manual labour. I brought up the idea that it might not be that uncommon to retrieve the size of a list so the pupil searched the list object's methods and found the right one by herself (the IDE used was BlueJ). Sure, can be done with external docs, too; but that would be more cumbersome (beginning with the fact that the method is not in the type's javadoc itself but in a parent class or implemented interface).

Text editor and console would just be a lesson to show that it is possible to do everything "by hand". I would use that maybe for a test but not for continous teaching. As I said before: to shock.

But it all depends on what to teach, whom to teach, how to teach. If the educational goal would be compiler builder I would let him do more by hand than someone who is going to create database reports.

---

Honestly, but that is a different topic, even the current professional IDEs are too close to "text editing and calling tools" for me. They need to develop toward source-file-independent code modelling tools. I don't mean business process modellng but code modelling (like in Eclipse Code Bubbles project). Beginning with the archaic conventions of code formatting (tabs vs. spaces, spaces around operators, chars per line...) that don't serve any semantic purpose but just a presentational - a task that can be automatically done by an IDE to the users likings. I mean we teach users to separate data and presentation - and in our very own produce we drop that claim? - I apologise again, I completely disgressed.
 
David Newton
Author
Rancher
Posts: 12617
IntelliJ IDE Ruby
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I tend to agree--we have a pretty limited view into our app (at least in Java, but I'm a Lisp/Smalltalk person, we have more options I think). Source is still a pretty compact notation, though.

I'd like to see better tools--I've been complaining about that since I started using Java. Or at least have the option of multiple representations depending on what we care about at a given moment. We've a few options, but not as many as I'd like :)
 
Campbell Ritchie
Marshal
Posts: 56536
172
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Doesn't Eclipse have a different repertoire of compiler error messages from the Sun/Oracle compiler? The Eclipse errors are usually easier to understand.
 
Hauke Ingmar Schmidt
Rancher
Posts: 436
2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Campbell Ritchie wrote:Doesn't Eclipse have a different repertoire of compiler error messages from the Sun/Oracle compiler? The Eclipse errors are usually easier to understand.


It uses a different parser for error report generating, Jikes. Which lead to a funny "bug" at one project lately. I, user of Eclipse, checked it out and got syntax errors immediately. Looking into the code I found a utility class that had two methods with the same name and signature after type erasure, with different return types. So the methods indeed had the same name and signature according to JLS and weren't allowed in the compilation unit. Why did the other developers, using Netbeans, not notice this? Because Netbeans uses an old JRE java compiler internally which had a bug that allowed this behaviour. Fixed in Netbeans 6.9. Why did they not use the current Netbeans version? Because the project involves Wicket. The Netbeans-Wicket-plugin has a bug so it didn't work with Netbeans 6.9. And the CI system? Project building was turned off there because the project was not touched for some time.

Well... ok, maybe IDEs add some complexity ^^.
 
Stephan van Hulst
Saloon Keeper
Posts: 7973
143
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I don't know if I can really say what's better. I simply don't have the experience. I'm a student and I've programmed for about six years now, initially in Pascal, and since I started studying with Java.
While I have used IDEs like Eclipse and NetBeans (both of which I really enjoy) for my studies, most of the time when I'm working for myself I use UEStudio, a really nice text editor.
I just really enjoy doing everything 'by hand'. I do most of this for hobby projects, so I can't comment on what's better for a professional environment.

For a beginner though, I think it's first and foremost important to know what a language has to offer you, before you learn what a tool does to make things easier. I think it's a very important for a beginner to have at least worked on one project, with a text editor, using the command line, and doing everything manually like setting the classpath. Only then can you really appreciate and understand what an IDE does for you.
If you start working with an IDE straight away, I think that you miss a lot of pointers that will give you a deeper insight in how the language and the VM works in general.

It's a little bit like how I started programming in Pascal. I think Java is clearly a superior language, but Pascal has really taught me lot of things about memory management that Java does behind the scenes. That really makes me understand and appreciate what Java does for me, and it makes it easier for me to get rid of certain specific bugs.
 
santoshkumar savadatti
Ranch Hand
Posts: 95
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Everybody was a "little bit " right.
Yes, in the beginning, better to use Text editor and command line.
But how many programs before the beginner gets bored?
Moreover, unlike C or C++ , using IDE encourages good practices like having every class in its own file, packaging and so on.
And there are lot of IDEs available for Java. I am using Eclipse. But then, once you use a particular IDE, switching to a different one should be easy.

I was completely Lost when i first downloaded Eclipse.But then, i found a fantastic video tutorial Here
Those tutorials are free, in the spirit of Open Source.
The tutorial starts with very basics and covers TDD in later chapters which is kind of a bonus as it saves you the effort of finding another resource for JUnit, arguably the most widely used Unit testing Tool for Java.
So, good luck
 
Hauke Ingmar Schmidt
Rancher
Posts: 436
2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
So... what console do you want to teach? javac? mvn? ant? bash? csh? {whatever}sh? cmd?

A console is just another user interface to the build process, like any IDE is. It is part of a specific build process. Needed to build a Java program. But the specific way of how to do it may differ greatly from project to project and organisation to organisation. It is an important knowledge to master a project. But to teach it at to a beginner is wrong IMHO. He should learn how to program, how to build clean, reliable, commented code. Not what parameter of a specific tool does something. In a bigger organisation a beginner may even not be able to influence the build process. If learning a specific tool by a high chance it will be the wrong one.

A friend wrote a comment of "Why you DON'T get a programmer in one month", german only, sorry, but the links to the techniques may give a hint what the paragraphs are about: http://adelio.org/warum-man-nicht-in-einem-monat-programmierersoftwareentwickler-wird/ . An awful lot of things you need to know (and I think a even neglected some).

The question is: What is it I want to teach in this moment? - If it is "programming" I would completely drop that manual building. If it is "Java", I would mention and show it.

Yes, I learned using the console, too. But that is because it was the only UI available to the build process at that time. (Eclipse on a Z80... never tried it ^^.) I sure learned a lot that way. But most of it is dead knowledge.
 
David Newton
Author
Rancher
Posts: 12617
IntelliJ IDE Ruby
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hauke Ingmar Schmidt wrote:But most of it is dead knowledge.

I disagree: the knowledge people get from working on the command line serves them well throughout their career. As you said--the specifics don't matter. But the overall mindset *does*.
 
salvin francis
Bartender
Posts: 1653
37
Eclipse IDE Google Web Toolkit Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
try scintilla:
http://www.scintilla.org/

1. standalone
2. very very tiny
3. very handly
 
Allan A Peak
Greenhorn
Posts: 16
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
So far, I've been using Notepad + command line javac. The advantage, IMHO, is that I don't have to learn a possible complicated IDE while I'm learning Java. I'm sure when I'm programming for real, I'll be using an IDE, but I'll probably use different IDEs at home and work.
 
salvin francis
Bartender
Posts: 1653
37
Eclipse IDE Google Web Toolkit Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
as mentioned earlier in the replies above,
notepad is merely a text editor, simple stuff such as parenthesis matching / brackets matching,
and Most important of all : indentations are real pain to work with.

i remember preferring MS-DOS edit.com over notepad since it supported indentation (even though it didnt have undo)
 
Hauke Ingmar Schmidt
Rancher
Posts: 436
2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
David Newton wrote:
Hauke Ingmar Schmidt wrote:But most of it is dead knowledge.

I disagree: the knowledge people get from working on the command line serves them well throughout their career. As you said--the specifics don't matter. But the overall mindset *does*.


Hm, maybe. Maybe, as with my mother tongue, I am determined to think in determined ways that are hard to leave.

I don't want to be misunderstood: Knowing the console tools in general and how everything plugs together is a must. My concern is only about the point of time to learn it / teach it and the way to do it. Maybe "shocking" someone with the console in the beginning leads to a healthy humbleness or scares off people that don't want to program for real.
 
Kr Manish
Ranch Hand
Posts: 138
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Can't stress enough that beginners should ALWAYS refrain from using IDE's like eclipse etc. reason being: they would not understand the basic concepts like path & classpath etc. I made the mistake and started out with IDE's and had a tough time sometimes when faced with classpath issues since IDE's used to handle those problems. But in case you do not have the IDE's then you look like headless chickens.
 
Erik Gruber
Greenhorn
Posts: 6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Bradley Clay wrote:I am currently reading Beginning Programming with Java for Dummies. Yea I am a NEWB!!! lol I was wondering which IDE is best and easiest. The book uses JCreator Pro. I have also heard Eclipse is a good one. There is also a Dummies book for Eclipse which I may read. Any other suggstions on an IDE is greatly appreciated. Also, should I read through the whole book first then go back and do the actual programming stuff or do everything as I go along? Which would be better?


Hey Brad,

I am in a computer programming course and in our Java class we use EditPlus 3 for our simple java programs. I've found it pretty easy to use. I can't really compare it to others as it is the only one I've used, but I haven't seen it mentioned in this thread so I thought I would put it in the conversation.

Also, for your question about how to go about reading the book. I would say start with the simplest things first. Declaring variables, print statements, then maybe move to if statements, boolean values, boolean range statements. I find that in our textbook, the chapters our teacher tells us to read versus the way the book tells you to proceed is different. I find the professors way better. It is always better to start with the things you understand best and move on to the harder stuff after.

Hope this helps!
 
Campbell Ritchie
Marshal
Posts: 56536
172
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Welcome to the Ranch Erik Gruber.
 
Erik Gruber
Greenhorn
Posts: 6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Campbell Ritchie wrote:Welcome to the Ranch Erik Gruber.


lol Thanks!
 
John Storta Jr.
Greenhorn
Posts: 29
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I am surprised I have seen no mention of jEdit in this thread. I have used it for years and it is very good for all sorts of code. Not as rich as a full NetBeans/Eclipse IDE, but much better than Notepad.

Plus it is written in Java.

As for whether to use an IDE straight away or something less featured, I definitely recommend using plain old text editors like jEdit until you get into larger projects that need more management. I tried using NetBeans and Eclipse for stuff and I always found they were hiding too much from me as I was trying to learn. When you starting out you need to see every details so you know exactly what is happening. If the IDE hides it from you, then you might get functional code, but you do not really know what mistakes you made.

Only start using the IDE when you understand exactly what it is doing behind the scenes.

 
Kr Manish
Ranch Hand
Posts: 138
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
John Storta Jr. wrote:I tried using NetBeans and Eclipse for stuff and I always found they were hiding too much from me as I was trying to learn.


Absolutely true
 
ashish sachdeva
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Always start with the notepad and dos
thats what i m using from last 2 months....
its help in syntax learning
 
ashish sachdeva
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
John Storta Jr. wrote:I am surprised I have seen no mention of jEdit in this thread. I have used it for years and it is very good for all sorts of code. Not as rich as a full NetBeans/Eclipse IDE, but much better than Notepad.

Plus it is written in Java.

As for whether to use an IDE straight away or something less featured, I definitely recommend using plain old text editors like jEdit until you get into larger projects that need more management. I tried using NetBeans and Eclipse for stuff and I always found they were hiding too much from me as I was trying to learn. When you starting out you need to see every details so you know exactly what is happening. If the IDE hides it from you, then you might get functional code, but you do not really know what mistakes you made.

Only start using the IDE when you understand exactly what it is doing behind the scenes.


thank you its a good one
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!