Thursday, January 6, 2011

On Python and Ruby

I often like to make snide remarks at Python and Ruby, because ... well, because they're not Lisp.

To offset this a bit I'd like to say what I find good and impressive about them:

Python seems to be a great language for describing algorithms. For example, Kragen's hacks abound with samples of Python code that is simply wonderful to read, and seems like exactly the way to go.

Ruby is to be congratulated for demonstrating once and for all that dynamically-typed, semi-functional, object-oriented programming is a fun and useful paradigm for systems scripting.


Mark E said...

I'd be interested in knowing your thoughts on pypy. When the project first started it seemed far too ambitious to me, but now it seems to be the future of python, and python seems to be the future of the backend.

Manuel Simoni said...

@Mark E: I don't know much about pypy, but generally find unrestricted circular definitions confusing and problematics.

Some slightly related thoughts on bootstrapping languages are here.

Kragen Javier Sitaker said...

I'm flattered, thanks! I have some frustrations with Python as a language for describing algorithms, though.

One problem is that it keeps changing. Python 1.5.2 seemed like a reasonable language for describing algorithms, but the language has a lot of new features since then. Hopefully the current language feature moratorium will improve things along that axis.

A second problem is that some of the built-in constructs have decidedly nonobvious meanings. "for x in range(3, 5)" iterates over the values 3 and 4, and list-comprehensions actually expose their iteration variables. It thus does not quite succeed at being executable pseudocode.