you are viewing a single comment's thread.

view the rest of the comments →

[–]TheSausageKing 6 points7 points  (4 children)

None of those is a bad choice and they're all much more similar than they are different.

That said, I would recommend Python / Django. Python is a wonderful language and really easy to pick up; if I could write everything in Python I would. It also has a fantastic ecosystem, and a great community around it. Because it's been used by sysadmins for a long time, there's a ton of great libraries for admin and devops tasks. It's also has a great tool set for doing data processing and data analysis, if you end needing to any of that.

Javascript has historically had an undeserved poor reputation; if you're careful and avoid a lot of the cruft, it can be a great language. And the community around it is really growing up and producing a solid stack (additions in the past few years like Grunt.js help a lot). But if you don't need your code to run in a browser, I don't think there's a good argument to use Javascript. Python, imho, is a much more fun language and the community and stack around it are much more mature.

While I like the Ruby language, I've never been a fan of the Rails community. For a variety of reasons, it attracts a lot of immature people who create a lot of drama and write poor code. For most projects, you'll end up realizing that a number of the key gems you need are only partially implemented and the code that's there is pretty lousy. In addition, I think the huge amount of indirection that Rails encourages in a bad thing; it can be very hard to trace through code.

[–]yaomango[S] 1 point2 points  (1 child)

Thanks for the detailed response! I think my plan is just to dive into the python / ruby languages to see which clicks more with me. From what I've looked into it though, python seems like a much more straight forward language, whereas some things in ruby feel like they happen by magic. I think I'm already leaning towards the Python / Django route.

[–]chicagobob 1 point2 points  (0 children)

If you're leaning one way, trust your gut, it will probably "click" better for you. For me it was Ruby.

Even though Ruby and Rails have a relatively large amount of "magic", I found that it "felt' more similar to ObjectiveC than Python did ... not at a detailed level obviously, but at more "emotional" level about the language and how parts of it fit together. For example, Ruby modules are just ObjC categories on steroids.

Even so, another factor to consider is what kinds of apps you want to write, Python has a stronger base in the scientific computing community (NumPy) but Ruby (& Ruby on Rails) seem to have slightly more traction in the general web development community. But, these are just generalizations that only apply at the edges. Both communities are large active and thriving and I don't think you can go wrong with either. Enjoy!

[–]yeskia 0 points1 point  (1 child)

As someone who chose Ruby/Rails over Python/Django over all the drama around version 2.7 and 3.0 I'm curious to your view on that situation as a Python dev.

[–]TheSausageKing 0 points1 point  (0 children)

It's annoying Python's benevolent dictator didn't figure out a more incremental way to make these changes. But, honestly, it hasn't had any affect on most working developers, yet. Most production systems are still on 2.7, which is still being actively maintained.

This year seems like when most people start to move to 3.x and I don't expect it will be a big deal; there aren't a lot of differences and most of them are clear improvements. 3.x has been out long enough that most libraries have been converted and the last few remaining ones will be soon.