Visual Basic.NET or JAVA?
You can leave an optional "tip" with Mahalo's virtual currency, Mahalo Dollars. If you are asking a difficult question that might require some research, or if you'd like a wide variety of feedback, a higher tip often leads to more answers to your question.
M$3 Answers
If you are new to programming, VB.NET will probably be easier to learn, but if you already have some programming knowledge, then you will be able to pick up both languages fairly quickly.
With VB, you don't have to worry about what frameworks or what libraries you need to use. You basically load up Visual Studio and start programming. With Java, depending on what you want to do, you will have to decide which 3rd party products to use (mostly these are open source) for example, what tools to persist objects to a database or what web framework to use. You will also have to chose what IDE to use. There are several to pick from (Eclipse, NetBeans, IntelliJ) each of which have their merits.
A final thing to consider is where your application is intended to run. If your application needs to be platform independent, then Java is probably your best bet. If you are only targeting Microsoft Windows, then VB.NET may be a better choice.
At the end of the day, don't let anyone tell you that one language is better than another. Remember that you can do good object oriented development in both languages, just as you can do bad object oriented development in both.
My personal preference would be Java, but that's because I write cross platform apps. That's my choice, but may not be yours.
20 years professional software development with experience of both Java and VB.NET.
You can leave an optional "tip" with Mahalo's virtual currency, Mahalo Dollars. If you are asking a difficult question that might require some research, or if you'd like a wide variety of feedback, a higher tip often leads to more answers to your question.
M$Others, and I count myself among this second category, believe that being a programmer is something you're born to, and if you've got the passion for it, then you will seek it out whether somebody's paying you a salary or not. If that is the case then you will want to wrap yourself in the tools that allow you to best express yourself, regardless of their marketability. Maybe for you that's Java - I did just under 10 years in Java myself, and when it's not trying to be an "enterprise platform" it is a very nice language. But there are many, many languages to choose from besides these two. Perhaps you want to take a crack at writing iPhone applications. In that case you'll need Objective C. But if you prefer Android (the Google phone), I believe that one can be coded in Java.
If you made me pick between your two choices alone, I would take Java in a heartbeat. The "visual" style of programming to me always lacked something, like all you were doing was stitching pieces of other people's code together. I much prefer to write code. As I said, I enjoy it. I don't consider the code writing to be a chore that stands between me and the solution, I consider my job to be solving the problem by writing code.
If you're up for something new, check out Ruby on Rails, or Python, or Haskell or maybe Clojure.
[ Now, see, if your reaction to that last line was "Just tell me which language will help me get a job", then you know the answer to my opening question. :) ]
You can leave an optional "tip" with Mahalo's virtual currency, Mahalo Dollars. If you are asking a difficult question that might require some research, or if you'd like a wide variety of feedback, a higher tip often leads to more answers to your question.
M$Just to answer your question, I was more productive in VB.NET, but there is a huge stigma associated with it, so overall I was happier when I was coding in Java. That is, to pick between the two. Non-technical people will assume you are a 'beginner' programmer and technical people (that aren't VB.NET programmers) will assume you do not understand object oriented programming if you tell them you write VB.NET code. Of course, this is absolutely not true but its what people generally think.
Neither one would be on the top of the list. C# would be up there, higher than Java because I think the libraries and tools are a bit more productive and the code generally runs faster. (Someone will probably dispute all of that but that's ok.) Python or IronPython is up there, because the language is much more streamlined. F# is up there, because its just frigging cool. ActionScript 3 is up there, because its incredibly useful since it runs in 95+% of the browsers out there.
As far as cross-platform goes, Mono is the open source version of C#, which also runs IronPython. Mono runs on Linux and other non-Windows platforms.
I actually mostly code in PHP and JavaScript right now (not really by preference to be honest). By the way, both of those are object oriented languages, although classes in JavaScript are a little weird.
Don't be confused by the name Visual Basic. Its not a visual programming language. It does have form builders and other designers but you get that with Java too.
Also, its not really so basic as the name would indicate. Every single library and every single (normally used) piece of functionality available in C# is available to you in Visual Basic. The exceptions are things like unsafe code blocks which you probably won't miss. VB.NET doesn't usually require things like type casting which makes it easier to use than C# or Java. Although you do need to understand object oriented programming and an awful lot of other things to be a good VB.NET programmer.
One more thing. The newer 3.5 (or 4.0 soon) .NET libraries and tools can be pretty different from the old ones. Make sure you don't waste your time on .NET 1.1 or 2.0. Also, at least take a look at Java 7 before you settle on Java 6 and don't get into Java 5.
And one more one more thing. Object-oriented isn't the be-all and end-all of programming paradigms. Many languages, like F#, are multiparadigm. Some other programming paradigms are functional, aspect-oriented, flow-based, process oriented, etc. See source.
You can leave an optional "tip" with Mahalo's virtual currency, Mahalo Dollars. If you are asking a difficult question that might require some research, or if you'd like a wide variety of feedback, a higher tip often leads to more answers to your question.
M$