Dave Benjamin wrote: > There's been a lot of discussion lately regarding Ruby and the notion of > a "humane" interface to objects like arrays and maps, as opposed to > "minimalist" ones. I believe the article that started the debates was > this one by Martin Fowler: > > http://www.developertesting.com/archives/month200512/20051218-HumaneInterfaceOfMinimalInterface.html > > > > And this one was posted in response by Bruce Eckel: > > http://www.artima.com/forums/flat.jsp?forum=106&thread=141312
It was actually Elliotte Rusty Harold's response to Martin Fowler that kicked of the discussion. The first one is here, there are several followups: http://www.cafeaulait.org/oldnews/news2005December6.html > One last comment I'd like to make is regarding the notion that > minimalist and humane are mutually exclusive. This is a false dichotomy. > According to Webster: > > Main Entry: minimalism > Pronunciation: 'mi-n&-m&-"li-z&m > Function: noun > 1 : MINIMAL ART > 2 : a style or technique (as in music, literature, or design) that is > characterized by extreme spareness and simplicity > > Main Entry: humane > Pronunciation: hy-'mAn, y- > Function: adjective > Etymology: Middle English humain > 1 : marked by compassion, sympathy, or consideration for humans or animals > 2 : characterized by or tending to broad humanistic culture : HUMANISTIC > <humane studies> > > Accepting both of these definitions as (potentially) ideal, we have > humane minimalism: a style or technique that is characterized by extreme > spareness and simplicity, marked by compassion and sympathy, in > consideration of humans. In a world of increasing software complexity, > this doesn't sound half bad to me. ISTM that Python does better than Java or Ruby in finding a sweet spot between awkward minimalism (Java) and everything-including-the-kitchen-sink generalism (Ruby, at least in the List example that is being used so much). Access to the last element of a list is a great example. Java forces you to use the awkward list.get(list.size() - 1). Ruby gives you the specialized list.last. Python generalizes to a way to access any index from the end, with list[-1] as a concise special case of a general facility. I think this is one of the great strengths of Python - that those who create the language have been able to discover very powerful, general concepts and apply them broadly and consistently to solve a variety of problems. Kent -- http://mail.python.org/mailman/listinfo/python-list