4 ms·
Python and Lua were the first languages I used that had tuples as a native/core/whatever type. Absolutely love them. Changes how you program sorta thing. Mind b
by latch 16y ago
Python and Lua were the first languages I used that had tuples as a native/core/whatever type. Absolutely love them. Changes how you program sorta thing. Mind blown that every language doesn't have them.
Despite this, I can't get into Python (having tried 3 or 4 times the last couple years). The Ruby ecosystem is simply more polished...gem, rvm, capistrano, rails, sinatra bundler, .... I really tried to fall in love with Python/Django, and it just isn't as good as Rails by a wide margin.
When languages are as close as Ruby and Python (or C# and Java), frameworks/ecosystem/community matters a ton more.
- RK 16y agoWhen languages are as close as Ruby and Python (or C# and Java), frameworks/ecosystem/community matters a ton more. This is exactly why I use Python over Ruby: scipy, numpy, matplotlib, etc. The right language + ecosystem will obviously be very domain dependent.
- PandaMilk 16y agoYou might think it's more polished because you know the ecosystem better but pip does the same thing as gem & bundler, virtualenv the same as rvm and fabric the same as capistrano. I have the same problem you have, I can't for the life of me see the point of learning Ruby and because of that I never give it a fair chance.
- latch 16y agoI totally think you can be right about my perspective. I can tell you my last expedition in Python land was bad. I ran into two problems: upgrading the version of Python that came on my Air and installing MongoEngine. For MongoEngine I used the instructions on their website "easy_install -U mongoengine". And after a bit of googling (I say a bit because a lot of people were having the same problem I was) I ended up installing PIP (via easy_install no less!) and then got into pathing problems. Having to use one package manager to install a better package manager isn't polish. Again, I can agree that this might all just be familiarity and comfort (or lack of in this case). I'm not so open to Django vs Rails though. I don't need to do a lot of struts to see how horrible it is (compared to anything). I don't need to do a lot of Django to see that it's behind Rails as a productive web frameworks. I'm not completely closed to the possibility that i'm just an idiot, but at this point it would likely take working with a guru for a couple weeks to change my mind.
- PandaMilk 16y agoI share a similar sentiment, last encounter with Ruby was fixing an ex-contractor's app which didn't use bundler and relied on a different version of ruby. The fact that I had to spend two days trying different versions of backward incompatible dependencies together didn't really endear me to Ruby or Rails. In contrast, there's a much higher emphasis on backwards compatibility in Python and a lot less on monkey-patching. As for Django vs Rails, don't have enough experience with Rails to comment. The little I time I've spent in Rails I didn't like, there was too much magic in there to properly see what was going on and the automatic imports don't help with that either. Btw, I went with MongoKit after running into some index troubles using MongoEngine, worked like a charm.
- StavrosK 16y agoTo be fair, the problems you were having are OS X problems, not python. I used OS X and had the same problems (before that, I used windows, and it was much better). In the end, I installed Ubuntu and development has been a dream ever since. Hint: pip -E yourenvdir install yourpackage That will create a virtualenv and install the package there. You can just delete the env when you're done. You really shouldn't install things system-wide, generally...
- lloeki 16y agoPersonnally I've got no problems on OS X using in parallel: - stock python 2.6.1 and /Library/Python/2.6/site-packages - brew install python (which brings in python 2.7) - brew install python3 ... and a bunch of virtualenvs
- lloeki 16y agoI suppose some things fit in one mental's model more easily whereas others don't, and there's no reason to contrive yourself in doing so, especially given how close Python and Ruby are in the general landscape of all programming languages. For reference, each element of the Ruby ecosystem has a similar Python counterpart. - gem -> easy_install or pip - rvm -> virtualenv - capistrano -> fabric - rails -> django - sinatra -> itty, bottle, web.py, or twisted http module - bundler -> setuptools (install_require directive) also, - rake -> scons, paver - rspec -> unittest / unittest2 /nose - watchr -> autonose - rdoc markdown -> docstrings+restructured text Of course they're not 1:1 mappings, but python itself is not a 1:1 mapping to ruby, and any project is not a 1:1 mapping to any other project aiming to solve the same task either. Admittedly it seems that Rails pushed Ruby more towards web development resulting in some more polish, whereas Python became more of a generalist, but that's a slight advantage either way, and they are definitely not worlds apart.
- latch 16y agoAs I said in another comment..my easy_install/pip experience wasn't polished, but yes, that might just be me. The rails -> django thing is where I'm not so humble. It didn't take me more than 5 minutes of doing Windows Mobile (6) programming to know that it sucked. Django doesn't suck (no way), but it isn't where Rails is. And I really think that, if you're doing web dev, the web framework is as important as all the other smaller pieces (package management, deployment, ...) put together.
- jessedhillon 16y agoSome people like magic, and some people like underscores. That's why they make chocolate and vanilla ice cream flavors. I don't think the goal of the Django team is to ever get to where Rails is, there are plenty of other frameworks trying to do that.
- cubicle67 16y agoI find it comes down more to personal taste, but being tech type people we keep trying to justify intangible things like taste in terms of features etc. Some people love Python and can't see what all the fuss is about with Ruby, others do the opposite. They're both excellent languages but you'll almost always find yourself leaning toward one over the other. This isn't because one's better, but just that it works closer to the way you think