I have three large programs on my computer, two of which cost Nottingham University fair sums of money, and all of which claim to be C++ compilers.
What I want is to do some fairly straightforward linear algebra (possibly later to be replaced by some vaguely-sophisticated sparse linear algebra), and display the results on the screen. If Python knew how to talk to DirectX, I would write it all in Python and I'd be finished by now.
But Python can't talk to DirectX, so I have to do it all in C++. And, whilst Python has good linear algebra libraries, C++ doesn't seem to; there's something called TNT from NIST which is incredibly primitive, and something called GMM++ from the University of Toulouse which looks as if it does everything I might want.
But it's written to compile under gcc-3.2. Whilst I have gcc-3.2, it doesn't know how to talk to DirectX either; and gcc-3.2, icc-7.1 and Visual Studio.NET (the three C++ compilers I have) clearly view the C++ standard in different ways, so a program that compiles under gcc needn't compile under any of the other compilers.
So I have spent the evening re-inventing the wheel (re-writing my perfectly good python code in C++), only to find that the wheel is incompatible with the track. It may just be that I'm a poor workman, to blame my tools at this length; I do have the reference books to build my own linear-algebra routines, but that would be a case of re-inventing the rock, let alone the wheel.
The lovely thing about Python was that its routines tended to work without vast expenditures of cursing; maybe it's unrealistic to expect other software to be that pleasant, but I can't convince myself, given that I've seen more than one reasonably happy professional programmer, that this level of unpleasantness is routinely endured by professional programmers. What am I doing wrong?
What I want is to do some fairly straightforward linear algebra (possibly later to be replaced by some vaguely-sophisticated sparse linear algebra), and display the results on the screen. If Python knew how to talk to DirectX, I would write it all in Python and I'd be finished by now.
But Python can't talk to DirectX, so I have to do it all in C++. And, whilst Python has good linear algebra libraries, C++ doesn't seem to; there's something called TNT from NIST which is incredibly primitive, and something called GMM++ from the University of Toulouse which looks as if it does everything I might want.
But it's written to compile under gcc-3.2. Whilst I have gcc-3.2, it doesn't know how to talk to DirectX either; and gcc-3.2, icc-7.1 and Visual Studio.NET (the three C++ compilers I have) clearly view the C++ standard in different ways, so a program that compiles under gcc needn't compile under any of the other compilers.
So I have spent the evening re-inventing the wheel (re-writing my perfectly good python code in C++), only to find that the wheel is incompatible with the track. It may just be that I'm a poor workman, to blame my tools at this length; I do have the reference books to build my own linear-algebra routines, but that would be a case of re-inventing the rock, let alone the wheel.
The lovely thing about Python was that its routines tended to work without vast expenditures of cursing; maybe it's unrealistic to expect other software to be that pleasant, but I can't convince myself, given that I've seen more than one reasonably happy professional programmer, that this level of unpleasantness is routinely endured by professional programmers. What am I doing wrong?