Archives by Category
Contact
- Hagen Paul Pfeifer
- http://jauu.net
- hagen@jauu.net (encrypted preferred)
- KeyId: 0x98350C22
- Telephone: +49 174 5455209
Follow this blog
Unjoyous OO Python
- Published in: programming
- | Time: 03:39:37 CEST
- | SHA1: 113a3df852183e677cd5febeea6f6c14ef2765fc
Today I spend some hours to complete a python project. Because the project should expandable and manageable the functionality is splitted into classes, packages and so on – python best practices.
But, as long as I program with python I don’t understand why this language is so hyped! Several years back I wanted to leave Perl as the scripting language of choice (sometimes I still use Perl). As far as I remember I looked at Python and Ruby and finally I decided to use Ruby. Nowadays, When I reexamine this decision I must say that this decision was absolutely right!
There are several Python characteristics that bother me currently:
- no really clean object oriented design. Under the hood Python and Ruby are closer together then it seems but Python integrates a lot of extension that make this OO design not visible – why? Ruby on the other hand goes another way: it provides a clean OO interface and do a lot that this OO interface is usable. Why must the OO design artificial hidden from the programmer?
- classes are expandable: with ruby I can add or remove class methods at runtime or even modify already existing class methods. A really great feature which is really handy in some circumstances – where is this feature in python?
Sure, I am no python hacker but from the programmer experience the ruby interface seems quite more matured and cleaner.
666.factorial
NoMethodError: undefined method `factorial' for 666:Fixnum
class Fixnum
def factorial
(1..self).inject { |a,b| a * b }
end
end
23.factorial
25852016738884976640000