I'm having a really hard time deciding between sticking with what little Python I know and using Django or switching over to Ruby/Rails for developing my side project. I'm hoping anyone could jump in and voice their opinion on either side.
Clearly the Ruby community is experiencing some kind of event where the numbers are shrinking and some of the more prolific bloggers/contributors are talking trash and moving on and i'm not sure what to make of this. There is alot of tutorials and information already out there but it's getting dated and i'm not sure how much of it that was written in several-versions-old Rails will still apply and there's not ton of new stuff coming out. There seems to be a gem or tutorial for anything I could need to do but it's growing more stale by the day as their creators seem to be off to greener pastures.
Python has it's moments for me but after doing some tutorials I'm really finding Ruby/Rails to be just fun and exciting to use. I like how thorough the framework is and the development experience in general, with console commands for everything and automated tests re-running on save, and it seems they are adding greatly to the rails core, as opposed to Django's big 2.0 feature was basically copying Flask's URL system. I also like the community having a vocal figure like DHH kind of "leading the pack" with alot of methodology I agree with.
Is ruby really as bad as people say and is on it's way out? Is leaving Python for it, if my only interest is web-application development, a dumb idea? it seems like i'm standing at this cross-roads looking out and seeing on one side, Rails is awesome but people hate Ruby, and the other side is people love Python but Django is a big limp dick and I don't have time to program the kitchen sink with Flask. choosing between either is very confusing...
The #1 rule that trumps all, no matter how small or big your project: Use whatever facilitates your work.
Sometimes you need to get things done quickly, sometimes you need to hire a lot of people cheaply/easily, sometimes you need a project to scale. In each of these cases, you may want to use a different tool. For something that's your side project, you probably just want to be able to get work done effectively and enjoy what you're doing. Pick that tool that you most enjoy working with, in that case.
For me, I default to Ruby (and I haven't touched Rails for work in 2 years!). I find it to be a joy to work with. I expect that later, as a I grow as a developer, this will become Elixir and/or Erlang. Sometimes I have to work in Python, because that makes sense for the project. I find it a bit of a slog, but it gets the job done and lets me move on to other things.
If you are a developer learning the ropes, I couldn't recommend a better language than Ruby. Your skills will translate. You will find work. The places that hire junior developers that only care that you know their stack aren't worth your time.
Most of the people that have publicly roasted Rails were wrong, for one reason or another, by the way (especially that Twitter blog post...). Too often, people are trying to fit a square peg into a round hole. The best advice I can give you after that first rule is that you should ignore what people say and just get your work done. That's the thing that differentiates people who stay working in this field and those who don't.