Peter Hickman wrote: > I will run your Ruby version and the Java version that I write and post > the results here. Give us a week or so as I have other things to be doing. Hmm, in a week this discussion will be over (ok, it will reappear some time soon, but nevertheless) and everybody has swallowed your points. $ ruby -v ruby 1.8.4 (2005-12-24) [i386-mingw32] $ time ruby latin.rb 5 > latin.txt real 0m4.703s user 0m0.015s sys 0m0.000s (this is a 2.13GHz PentiumM, 1GB RAM, forget the user and sys timings, but 'real' is for real, this is WinXP) My point is: If you choose the right algorithm, your program will get faster by orders of magnitudes - spending time optimizing algorithms is better than spending the same time recoding everything in C. In a not so distance future (when the interpreter is better optimized or perhaps YARV sees the light of day my version will be even faster than yours. It will be easier to maintain and more platform independent. Of course you can port this enhanced version to C and it will be even faster, but if you have a limited amount of time/money to spend on optimization i would say: go for the algorithm. To stop at least some of the flames: I like Extensions, i like them most if they are generally useful (and fast) like gsl, NArray, whatever. The combination of such Extensions and optimized algorithms (written in ruby) would be my preferred solution if i had a performance critical problem that I'm allowed to tackle in ruby. cheers Simon p.s.: and if my solution is only that fast because of a bug (i really hope not), i think my conclusions still hold true.