Hi all Im switching to java from VB and I was discussing IDE's on the vb forums: http://visualbasicforum.com/showthread.php?t=198425 The reason I'm switching is that I shivver everytime some1 asks me what I program in or when some early teen says VB - it's just its image. Also it will come in very handy learning other proper languages and when I hopefully go to UNI netxt year to study computer science as a mature student. my main message is this: [maybe some1 here is able to help me [better?] ]
I bought Ivor Horton's Beginning Java JDK 1.4 [1100 pages] 2+ years ago and only got through the initial 400 and forgot most of that [probably due to incompetence but blaming it on that would be incompetent as its a simple thing to do... ] so I consider myself a beginner. In those days whenever copying / editing an example program from the book I would be using JCreator or sometimes notepad. JCreator [lite] is a great alternative to notepad but not much else. The lite version at least doesn't have autocomplete or step through and breakpoints [some of the strenghts of VB].
I prefer making interface-less programs as you can concentrate on the core without the usual user input hassle of validating every action, but hey thats programming I suppose...
Yesterday I downloaded and installed JBuilder from Borland and initial impressions were a bit cumbersome. I had trouble enough getting it to recognise 3 classes as part of one project [finally just dragged them in the project explorer window]. I'm not sure why it comes with its own compiler [It's the Java one, right?] but hey ho. Getting adjusted is gonna take some time I suppose [coding in it atleast] but I did manage to change the compiler to my JDK 1.5 beta as it didn't like my import java.IOException; import java.FileNotFoundException; statements. Not that changing the compiler helped a lot. I have the java documentation in the docs folder - will JBuilder integrate with it to offer support in a MSDN fashion? [another agreeable feature of VB]
Would anyone suggest Visual J++ if you're only developing java apps for the windows platform? Is the 'visual' bit as daunting as the 'visual' in M$ VC++ ?
IF the interface designer proofs useful then I will certainly use it otherwise JCreator will have to assist there.
The reason I'm suddenly switching to Java again is this: http://planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=57209&lngWId=1 . It is a college program I did in VB and posted it as lots of people are having trouble with the problem interpretation only to find out you are not supposed to share your work. Good intentions getting us in trouble eh? It's almost as if they try to impede any postive actions. Anyway. This way lots of people can use it as a reference yet I'm not sharing my work as I won't be handing it in. It's merely a case of translating it into Java. Well, when I say merely... I have a pretty limited period of time to get this thing done: file handling, general coding [*should* be ok - the generating code - see link], interface :0 and turning it into an applet..
This raises some questions tho: what's Java's version of app.path? How do I pass an array between methods/functions or rather reference them in memory the way I have done in the VB version. Can applets perform read and write actions on the machine it is stored? Can I refuse connections if a client is already connected? [As I don't want two people generating a new match *see link ^ *] Any hints on using the interface designer in Jbuilder? Instead of using Java's equiveland of the tree view control I was this time hoping on using its equiveland on the list-view control - any tips on that as I don't think Mr Ivor discusses it in detail - merely its availability.
Making it executable [Jar(?)] will pose as one of the final challenges as will compiling it with a compiler tool that makes it harder to decompile as Java seems notorious concerning source availability even when compiled. Not that I'm against open source - on the contrary - but this time fellow students should only be able to access the 'binary' - well Java's solution.
To your question about editors and IDE's - there are several good open source options:
I just completed a course at Sun where we were allowed to use JEdit (http://www.jedit.org/). It is written in java and runs very nicely everywhere (hmmm). I have tried it on Solaris and on Windows and I like it. It has a ton of plugins and a very nice console feature which allows you to do all of your compiling and running from the command line - something which seems helpful for everyone at least at the start (and maybe forever). For heavy lifting I like the features in eclipse (http://eclipse.org), but it puts some distance between you and the environment. For example, one thing everybody ends up learning is how to do is set the CLASSPATH properly for compiling and running. It's a platform dependent step that just has to be done a little different for every environment. This step can be a little obscured in eclipse because it is just a 'setting'. Hiding the environment can be nice in that you get going very quick, and with little effort you can get any kind of Java program running - but when it comes to really understanding how everything works, maybe its better to start off light and go from there.
To your comments about VB and Java and J++:
I manage a group which developed an application and deployed it for Windows using VB, so there are people doing that for a job after school, but it was just harder than it really needed to be. Rather than worrying about the weaknesses or image of one language, it seems better to focus on the strengths of what is available - and regular Java ultimately has many strengths which make it a powerful problem solving tool - and it teaches excellent computer science in the process. The platform specific modifications to the language seem to me to actually take away something from the Java concept and I haven't pursued them for our work - others may have different opinions. I can already run the same GUI program on Linux, Windows and Solaris so it seems flexible enough - I'm not sure a vendor specific addition can really improve things.
I think it's been at least 3 years since Microsoft has put any development effort into Visual J++. They went on to C# and .NET.
If you're going to use Java, use the real thing for all its benefits. If you're going to use the MFC, use one of their major products so you can take advantage of all the features and support offered for "real" products.
After coming from the completely closed and integrated environment of VB ANY Java system is going to take getting used to.
JBuilder isn't difficult to learn to use, it's just a bit different from VB.
The fact that you consider it difficult is the very reason I (and a lot of others) always say with emphasis that people should NEVER use an IDE when learning a language. IDEs distract from learning the language, instead focussing your efforts on learning the tool and its wizards, code generators, and other bells and whistles. Autocomplete is the bane of learning any programming language. How are you ever going to learn the language when all you need to do is type the first few letters of a command sequence and the editor writes your code for you? Another editor will have different keystrokes and you're immediately stuck...
Use a simple text editor and a command prompt instead until you can do whatever those wizards do for you by hand at least as good.
What version of JBuilder were you trying? The latest AFAIK has full support for JDK 5.0 built in. It could well be that the problems arose because you were trying to use a beta JDK, there have been changes in the final product.
JBuilder comes with a compiler and runtime so you can install it on systems in one go without having to also install a separate compiler and runtime. It's a convenience for you, the customer. If you want to use another compiler JBuilder is open so it will allow you to do so. JBuilder comes with full API docs for the Java version it ships with and you can indeed tell it where any documentation for libraries is located and it will then use it. In fact, that's a feature of most self-respecting Java IDEs these days.
Visual J++ as already stated went out of development years ago. The latest version was included in Visual Studio 6.0 which if memory serves was around 1999. It supports only a single compiler which is Microsoft's 1.1.6 compiler. Microsoft's Java versions all went out of support earlier this year, Microsoft themselves now recommend you no longer use them and instead use the Sun versions.
The JBuilder GUI designer is one of the best on the market, having been heavily influenced by Delphi which is the environment which pioneered the very concept (and was in fact the inspiration for Visual Basic).