Nov. 26th, 2003

fivemack: (Default)
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?

March 2024

S M T W T F S
     12
3456789
10111213141516
17181920212223
24 252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 29th, 2025 01:39 am
Powered by Dreamwidth Studios