Which language?
Discussion
I'd no way class myself as a coder, but have a fair bit of experience of VBA, did a reasonable amount of FORTRAN some years back, and have dabbled with VB5. Thinking I really should learn to code properly but not too sure where to start, especially as I've never touched OO code. Is it worth starting with a VB.Net on the grounds I've got some familiarity with VB, or start from scratch in something like C++ (likely to be hard to learn), or Python (easy to learn but fairly slow to run)? I work in modelling and simulation so I'd be looking at fairly maths intensive stuff that's probably going to pick up data from SQL or Access databases and might want to have some graphical outputs. In the long term speed is likely to be an issue (the model I'm currently using takes around 40 hours to run), but I guess it might make sense to learn an easy language first to get the hang of program construction, then think about faster languages. Any suggestions?
Python's a wonderful language for some tasks - you can write surprisingly powerful code in just a handful of lines.
Where it falls down is in some of the areas you take for granted with VB - for example window management, building a GUI, and creating, displaying, and dealing with images.
Where it falls down is in some of the areas you take for granted with VB - for example window management, building a GUI, and creating, displaying, and dealing with images.
plasticpig said:
I would suggest C# as a midway point between VB and C++. You will have a shorter learning curve from C# to C++.
C# is Microsoft-only, so suggest avoid because vendorlock-in is a serious problem.
Java would be a better idea - it runs on everything,
is relatively simple, powerful and modern.
If you can write good code in Java, then you've
pretty much cracked the basics of modern computer programming.
Other languages like Python and Perl are slower,
more script based languages. They have their place, but
if you've got something that takes 40 hours to run, I very
much doubt a slow scripting language will solve it.
After Java, suggest learn C++, which is a much more complex language
which has a lot of historical baggage, mainly from its 1970s father, C.
Python is used a lot in the scientific community. NumPy and SciPy are plenty quick. But if you get performance problems, profile the code, find the bits that need to be speeded up, and use the standard tools to re-write the problem areas in C, C++ or ForTran. It's a nice pattern. You get all the elegance and brevity of Python for the main structure of your system, and isolated, testable bits of high performance code in C/C++ with a well defined behaviour and interface to Python. Python plays very nicely with c and C++ ... I've not used the ForTran integration stuff.
Edited by ATG on Saturday 20th March 11:05
if you're considering .net it may be worth starting with VB then changing to a different language when/if you need to. That way you reuse some of the skills you have while getting to grips with how .net works.
That's pretty much what I did. I still tend to write in VB but I can read C# examples on the web pretty fluently.
That's pretty much what I did. I still tend to write in VB but I can read C# examples on the web pretty fluently.
Gassing Station | Computers, Gadgets & Stuff | Top of Page | What's New | My Stuff


