I took the opportunity to talk to a couple of programmers at work. Both said that VB was far easier to learn than Java. One commented that it was easier to debug too, but I guess a lot of that depends on what your used to, and I have no doubt others would disagree.
No offence, but that sounds like sloppy coding. The last "serious" app I did in VB was a mission critical system in a telco; that handled many millions of transactions daily and was expected to fail, er, never. VB might not be the fastest tool in the box, but in todays world of "write it today and throw it away tomorrow" it's certainly a very useful one for getting the job done quickly.
However, if I was starting from scratch I would go with Java for all the reasons already mentioned.
I think it's the Excel part that tends to crash more than anything. I expect that VB done well would be as robust as anything else, no offence meant! Anyway, I'm sure I shouldn't be talking about it in public!
all sound advice. i would agree with mactheknife that in the long run decoupling the business and front ends saves oddles of time further down the line
i'm no java expert but i'd avoid it like the plague. the few apps i've seen using it are slow and unresponsive.
if you are building a serious app then I would say C++ is the way to go. agreed steep learning curve but once you know your way around the compiler you can do some really great stuff which is difficult in VB etc and basically you can't beat it for performance if coded properly.
for quicker work however I would definitely look at C#. Its like programming with lego. using the vc.net environment is initally like being swamped with menus but once you've worked your way around its as close to point and click programming as you are going to get. couldn't really comment on the performance of c# tho as i've never written any serious apps in it.
if I was prepared to invest fairly heavily in learning the programming language and environment before getting anywhere then I'd go C#, VB is the choice for developing the program itself until you have a pretty decent program doing what you want. I'd argue that the hard bit is developing the program to do what you want it to do, learn an easy language and develop you program, when it's doing what you want you can (if you want) learn a harder 'nicer' language and convert - it is far easier, having learned one language, to pick up another and convert your baby. It is all too easy to have an idea, go for the steep learning curve language, and end up an expert in Python or some such with not so much as a simple MA coded!
Translating from VB to C# would be a bit of a pain of course, but when the VB version was running you might discover it does what you want, and fast enough, that conversion isn't needed. My program runs in VB and can scan (depending on RAM) the entire US market in something like 2 mins on a decent PC... why on earth complicate life?
Faster programming isn't in it - sorry, but a decent amount of RAM and a middling CPU are all you need to run a pretty serious amount of data crunching in VB... you can speed up a 2Ghz CPU by 25% for a few tenners, why kill yourself with less friendly languages instead?
I've programmed a good few languages, as have many here from the sound of it - VB is easy and fast enough. Go for the quiet life, devote the brain cycles to developing the app rather than mastering the tool you write it with...
As a programmer - its not the flavour of the environment (e.g. VB vs Java vs C++) - They all have advantages and disadvantages ..
but at the end of the day you can use any language and make it fast and robust (but it does mean that you have to add a lot of sweat and tears - as well as know the language)
Paul suggests you want to do some analytical work - it really depends on how intensive the calculations are ?
I use Mathematica to prototype systems. Once you get the hang of the language, making changes and doing testing is incredibly fast. I have a java interface to pull data from historical text files and/or live feeds.
Once I'm happy with the system, I then re-implement in pure java.
The great thing about Mathematica is the enourmous flexibility and instant feedback.
C# is an excellent choice for trading program development.
It is as easy to use as VB but has most of the power of C++.
If you code well in C# it is just as fast as C++.
However, the syntax is cleaner than C++ and there are several
new features that make it suitable for real time trading applications including:
Support for multi-threading
Abbility to define classes with events
Managed environment for safety (no memory leaks or invalid pointer crashes)
Massive library of thread safe classes to help build apps quickly.
Only problems found:
Watch out for speed performance issues due to boxing/un-boxing
Garbage collection with lots of delegates can be hard to manage/unreliable