@Kronos
As an experienced coder, you know how to use your tools to the utmost and the shortcomings of other tools. It is useful to write object-oriented code most of the time. On the PC I recommend Python as a starting language because it is more object-oriented than Basic (except for BlitzMax, of course).
I've used Java quite a bit at the university and it's object-oriented to the point of being flawed as a result. Sure you can make a bunch of static methods and variables to "get around" the object oriented syntax when you don't need it, but that's quite the kludge. C++ can go either way due to the backward compatibility toward C but it's really not a beginner language at all.
For a beginner, however, I'm not sure what to recommend. We're going to try to add OO-like syntax constructs to Mattathias although a more flexible option is to make extensions for each class-type and that may be what we end up doing. See
Wikpedia's article on Extensible Programming for more information on what I'm talking about. Certainly object-oriented programming is the current "in thing" and it is fairly elegant but that doesn't mean that it's the only way to do the same thing. Extensible programming may help avoid some of the overhead that OOP entails while allowing more control over the way things compile.
As an example, I've seen a fractal generator written in
XL that was able to translate X^2 into X*X without operator overloading. The reduction rule of the parser was designed right into the function call itself.