4 ms·
Python and Django developer here. So you have met one more! Interestingly, though, I find Ruby more beautiful. Possibly one of the reasons for that is it inher
by ludwigvan 15y ago
Python and Django developer here. So you have met one more!
Interestingly, though, I find Ruby more beautiful. Possibly one of the reasons for that is it inherits a lot from the UNIX culture awk, perl roots; and also much more from Lisp and Smalltalk.
Also, my observation is that Ruby seems again very popular for OS X / Linux devs, but for Python, developers using Windows is significant. (I am not claiming that Ruby is more popular than Python for Unix users, though, just that the percentage of Windows Python users is more than Windows Ruby users.)
Rails community is definitely greater for web development as you said. One of the major differences is 37Signals, and they do a great job in pushing the project forward. The Rails project also includes several important assets which Django leaves to the developer. For example, there is no builtin migrations for Django (though most people use South), no builtin API support (tastypie/piston is commonly used).
The upside of Django is probably that things are more clear since there is less convention. This is also in accord with the languages, Python is more explicit, Ruby more magical.
One other difference that comes to my mind is that some prominent developers, like the Pragmatic Programmers Dave Thomas, or Thoughtworks' Martin Fowler prefer Ruby, while there doesn't seem to be such prominent vocal authorities speaking for Python.
- pace 15y agogreat comment clarifying the discussion
- gbog 15y agoPeter Norvig is a prominent guy speaking for Python. Sorry but your comment seem weird to me. If you prefer Ruby why don't you go Ruby? Great makers should love their tools.
- ludwigvan 15y agoThanks for your comment. I strive to be a great maker, so I love programming languages! You are right in some sense, though. I think about the parent's and your questions from time to time. The thing is, I actually do love Python too. It's just that, as an outsider, I find the the Ruby community much more vibrant, and I sometimes envy the stuff over there. I have a deep affection to most programming languages in general though, I do not think that I should choose one of them over the others. For example, contrary to general opinion, I find some parts of Perl beautiful too, and even this year have read a few Perl books. As to why I happened to choose Python over Ruby, there are historical reasons. The first reason is that, as a previous academic, I first learned Python for SciPy, considering it as a replacement as MATLAB. Being that Python was backed by Google was a plus at the time. It was when the App Engine was announced with Python support that I started making a few websites with Python, only to discover shortly that Django was the most popular way to go for making websites in Python (I would also highly recommend Flask as an alternative too, now). Now, at this point I was proficient enough in Django, and started looking at Rails. I was immediately struck by some of its aspects, but still web programming was not my full-time job; and I feared that since Rails was moving so fast at the time, and that it relied on convention more than the explicitness of Django, I thought that after a week of not working on my project, I would forget some of that implicit stuff. This, I believe is also the major reason why most people don't like Perl -- a chicken and egg problem. My impression is that those who do not like Perl are not people who code full-time on Perl (surprise!) and so view Perl programs incomprehensible after they maintain the code after a break. It is similar to natural language in that if you do not use it, you tend to forget some of the stuff that makes things very easy; while I would describe Python as more like solving a maths/geometry problem - easier to recall, easier to maintain. So, I love Python, but it's just that I also love most of these languages, and some parts of them more; Smalltalk, amazing in its world concept, Lisp (and now Clojure) beautiful with their flexibility. But where do I find a Clojure job, if I don't create that job opening myself with a personal project? I believe it is a general feeling on HN, most people have an affection for Lisp, but for some reason, do not (or can not) use it in their daily jobs. Regarding your comment about Peter Norvig though, actually, he is a prominent guy speaking for Lisp; it is just that Python is more comprehensible by students (as it is closer to pseudo-code), that he has chosen to use it.