I've been writing computer programs for more than 25 years now, often to solve some specific problem (like changing the phone codes in my address book) or simply for pleasure. For many years I remained faithful to Borland's Turbo Pascal, and tried hard to carry this faith over to its successor Delphi (but parted company after version 3). After a long gap in which I programmed very rarely I discovered first Python and soon after Ruby, which comes pretty close to being my ideal programming language.
I demand several things from my chosen programming language:
2) It must be extremely expressive, to produce short, quick-to-write programs. That means it must support lists and similar dynamic programming features. Ruby excels, particularly by its powerful concept of "blocks". Ruby's hugely expressive semantics can tempt you to write horribly over-compressed, "line-noise" code, but as a code aesthete I find this temptation easy to resist.
3) It must be fully object-oriented to give the full advantage of code-reuse by inheritance. Ruby is more wholly object-oriented than any language since Smalltalk.
I've written several utilities and toys in Ruby (and with the remarkable graphical user-interface library Shoes.), whose source I'm making available for download on the sub-pages here. Some are mathematical tools to do with matrix arithmetic and factorisation; some are just fun, like my biomorphic Creatures; some are more serious research projects like my system of Primitive Parallel (PriPar) computers based on communicating Turing Machines.