I am not a good coder. In my mind a coder is determined by how much he loves C (or, in clinical cases, assembler). I hate C and avoid it whenever I can, because I am always off-by-one, and often even in more then one place, which make debugging even more .. fun. :(
Currently I am coding an application that is centred around use of
artificial neural networks (more precisely a
multilayer perceptron). The NN part must be done in C for speed and memory usage (imagine
adding and multiplying hundreds of millions of floating values just for
one operation .. and having to do that for 10 000 times for training ..
while holding the whole data set in RAM, because you access every single
value of it every second). With that in mind I engineered my system in
such a way that the C part can be reduced to a couple simple operations
that I can adapt from examples of the NN library. And still I barely wrote
those pieces. Working with MySQL in C is pure pain, for example.
The rest of the system is in Python and I must say that Python is a
godsend by itself, without even comparing it to C. I am now so used to
Python when I was debugging my C program, I automatically wrote a chunk of
Python into it and was very surprised when it did not work.
With that in mind, to ease the pain for further generations of
neural network researchers, I will (someday) find some time and write
Python wrappers for the nice and cool
Lightweight Neural Network
C library that I am currently using here.
BTW: I found that SourceForge is packed full with great software
projects, but it is very hard to find those projects in Google. Morale -
seeking for good free software? wajig (or apt-get) it! then sourceforge
it! then freshmeat it! and only then google it.