This post originated from an RSS feed registered with Python Buzz
by Carlos de la Guardia.
Original Post: Not all dynamic languages are equally dynamic
Feed Title: I blog therefore I am
Feed URL: http://blog.delaguardia.com.mx/feed.atom
Feed Description: A space to put my thoughts into writing.
There's a discussion going on at the Zope mailing list about what Zope developers know as Product Refreshing. This term refers to the ability of the application server to reload changed code modules and modify existing instances without restarting the server.
Product refreshing does not work properly on Zope version 2.9, and the discussion centered around the theme of whether making this functionality work properly was important or not.
As you would expect with a technical issue of this nature, there were proponents for and against using refresh. As you would also expect, opinions were polarized, from "I would never use it" to "I would rather ditch Zope than lose this".
For me, however, the interesting part was a comment on this thread from Chris McDonough:
The real effort towards making a "better refresh" should likely be spent at the level of the Python interpreter. The dynamic nature of Python is the thing that allows for a "refresh" in the first place, but the implementation of Python object references limits its usefulness.
I don't know enough about Python's internals to even venture an opinion on its handling of object references, but I wonder how other dynamic languages cope with this situation.
I know that Smalltalk can do it, since I frequently read James Robertson's blog (he is product manager for Cincom Smalltalk) and on more than one ocassion he has commented about deploying code changes without restarting the server. I also have played a bit with Seaside, where you can actually change code right there on the web page and see your web app immediately take off from there.
What about other languages? Can Ruby do this? What about Perl? Is it a really useful thing for development and deployment or just a nice to have curiosity? I'll try to find out more about this.