Syntactic Confectionery Delight | |
PerlMonks |
Re: Perl 6 and Ruby on Railsby Akhasha (Scribe) |
on Apr 06, 2005 at 07:59 UTC ( [id://445204]=note: print w/replies, xml ) | Need Help?? |
As far as Ruby vs. Python features go: 1) code blocks. Ruby lets you pass code blocks around. Sounds pretty dull, eh? But in fact it's what makes it possible to create Domain Specific Languages in Ruby quite easily without needing to create a special parser. In many ways Rails can be thought of as a domain specific language built on Ruby.
2) classes are always open in Ruby(including the Class class). By 'open' I mean you can always add new methods to a class (or even a particular object). Another feature that makes it easy to create DSLs AFAIK this is also the case for Python and Perl. In Python you can think of every object (and classes are objects) as a hash, with attributes you can diddle at your leisure (and peril?). Perl's blessed references and package symbol tables might be a little less flexible, in that I think adding a method to an object would involve putting it in the package symbol table, thus adding it to every object of that class. (please correct me if I'm wrong on this) 3) continuations. (Not that Rails makes use of them, but some other Ruby-based web programming frameworks do) Python (2.4) has generators that 'yield' values to the caller and when called again continue from the line after the last yield. 4) Ruby has true lambdas. AFAIK Python's lambdas are pretty limited (limited to one expression?) Limited to a list of expressions, no statements allowed. IMHO this is a notable shortcoming of Python, its also easier to create anonymous subs in Perl. Python requires you to take a reference of a named function, or write a named function that returns a code reference. But that's not a show-stopper. Thanks for your post, I'm often reading this or that about different languages and enjoy comparing them. Perl is my job, Python is a hobby and Ruby a mystery. To answer your question about embedding Python in HTML, its not so bad. Breaking up long lines of HTML+Embedded code is a good idea. Check out Poor Man's Zope for instance. Update: I reread the node and see what is meant by passing blocks of code around. Sorta :)
In Section
Meditations
|
|