Hi, I am a Software Developer and technical consultant with long year experience of software development first under MS DOS then under Windows.
In (IT specific) school I learned different languages, but more intensive I used Clipper, Turbo Pascal, C++ and then VB. VB is the language I used in my job for more than 10 years now for a lot of projects.
Although I think that VB is still a useful language looking at the future tells me that I have to look for an alternative.
First the logical step seemed to be C# / MS dotNET.
But after looking a very little into Linux and looking around I can see other operating systems getting more popular. Therefore platform independent development seems to get more important.
And further after looking a little at the C# with Visual Studio 2005 as well as Java with Eclipse and NetBeans on the other hand I feel better with Java.
Therefore I am diving into the Java world - slowly because I have other older and newer living projects that I still have to support.
im also vb developer but it just not like yours that you been on VB for almost 10 years. me also i see my future in java and im strugling to study more, cause im new on it...
hope i will join your journey to java.
It will be interesting to know many things from you like how easy or difficult it was to shift paradigms when you started coding in Java Swing
The most difficult is to learn the model-view design of a table for instance. However, it seems that with this widget you can do everything you need.
It was very annoying in VB that the standard table/grid/tree widgets were only primitive and 3rd party widgets also had their flaws.
I am actually in the same boat, I have been coding in VB.NET for a few years but wanted platform independence so now I am converting all these applications to Java Swing.
Of course the syntax is totally different but I am finding the concepts to be very similar. The great thing is that when I complete an application it will theoretically run on any computer anywhere. That is a great feeling :)
Welcome to our community. :)
You have a wast experience in software developments. And since you are familiar with OO concepts learning Java is not a big problem to you. Start from the right place, choose the correct way you want to start work on.
Working with an IDE is not a big issue, but it's better if you can use notepad + command prompt for Swing/AWT developments. Actually I suggest that for all Java newbies. There are lots of advantages as well as disadvantages on that way. When you right all the code by hand, really valued in future. Later you can move to an IDE.
I had the IDE discussion several times. If Java IDE's works so bad in designing and developing GUI applications then I wouldn't use Java. I would feel pulled back in the years around 1992 or 1994 when I developed GUI by hand. But even in those times I had also experience with tools for designing GUI.
Fortunately NetBeans does the job quite good from what I can see currently. With Eclipse my experience designing GUI was worse at this point (but this experience is about a year ago, might have got better in the meantime).
I don't say that need to stick with coding by hand. We must use IDEs. Because in real world developments we have to think about time line of project completions. May be we need more time for R&D. But the thing is, better to use an IDE after get clear idea about basis, I mean how to do designing by hand in best.
I do agree with you that understanding can be improved by doing things by hand. There is no doubt for me that deeper understanding is always better than less understanding. However, especially when you need to learn a new language efficiently there are more and less important things to understand. Currently it is sufficient for me to understand approximately the code that is generated by the IDE (NetBeans by the way generates a lot more readable code than the Visual Editor in Eclipse). I am not in school where I have to know everything by heart and teachers take care that I am not looking up in documentation or help (I remember the late 80's where I had to write code on paper during tests in school - it was awful). Students facing such situations indeed should do more by hand.
In addition to that, regarding Java and Swing I noticed that there are different possible strategies when designing and implementing GUI:
One thing is that there are the different layouts and a second thing is how you handle the events (using anonymous classes, calling separate handlers, ...).
Trying several IDE's I have seen that when coding your GUI you must adapt your coding style to what the IDE generates otherwise the attempt to fight against it only triggers problems. So I would personally not dig into GUI design by hand as long as I am not very familiar with the way the IDE generates the code.
However - as we talk about the GUI - I have seen several products now where server parts are written in Java and Client in .NET. And I do not understand well such a decision. Nice GUI can be created also using Swing. With Java 6 even with System Tray icons. The only explanation I have is that .NET probably offers more tight integration into other Microsoft products. But then you are again caught in a lot of awful dependencies and you must pray for compatibility with future System- and Office-Updates...