Because for 95% of my projects, personal and professional, thats the tool to solve it. I don't have to reinvent anything, or worry about gaping security holes common to web applications - i just need to work on the problem domain.
I can focus on good modeling and good front-end UI/UX. And there is flexibility in delivering desktop/mobile applications quickly, using what i've already built in rails.
As a one man band, I can't think of a better instrument to play.
Oh how I love Rails, the framework and language (Ruby) of developer happiness. But now working in AI, it's a Python game. This is maybe embarrassing to admit but I prefer having the Python pipeline, TensorFlow, numpy, etc. living on its own box, exposing inference as an api, so I can keep developing in Rails and its supporting ecosystem (background processing, push notifications, etc.) as the main app handling everything else.
I mean, I get it - for a personal project, I did exactly what you just described, wrote the web app in rails and wrote some scikit-learn stuff with python. I did this mainly because I like rails, I like python for ML stuff, and I didn't want to have to learn Django to get a prototype working.
But assuming you were willing to take a small hit/make a small investment in a new technology, do you think it might be a little better to have it all in python, and use Django? Or is the separation similar enough that it doesn't really make much of a difference (i.e., you'd be calling the ML stuff through an api anyway, an your web app would be pretty separate from your ML service, so the only real benefit to Django vs Rails is one language for everything, which I'm inclined to think isn't that big a deal).
I've moved more heavily into Python lately because of data analysis, ML, numpy, all that, and I am enjoying it a lot. I find python very nice to write in, even though I like Ruby and Rails a lot. Python looks good on the page, and has that clarity I like in ruby and rails, and of course the scientific programming world isn't really a ruby one, python is far, far more prevalent. So I've been thinking of taking the plunge and learning Django, but I'm not completely convinced it's really necessary, since you can do what you just described here...
Oh also, (sorry, this is a very scattered post), would you mind sharing some of the technical information about what tech you used to create the api for your python side?
Ok, so I'm going to bite. I'm using Django for my company's website[1], and while I think it's hands-down the best framework for Python, I must admit to having felt some envy when I investigated what all the fuss on Rails was all about.
I think Rails' controller concepts are cleaner, and its way of handling forms is simpler and more direct (granted, with more sugar or magic, which some have a problem with -- not me).
Why would that be embarrassing? You've effectively created your own private AI microservice (to use the buzzword du jour) and consumed it in your favorite webapp stack. Sounds pretty smart to me.
There are so many jobs out there in rails / ruby. I really want to learn it, but the tutorials I've seen teach you how to generate a blog engine. I want some real world examples and tutorials, where's the best place to start?
:) For me, I really got a lot of value out of railscasts.com. I watched all of them like people watch their favorite TV shows. Helped me see the world through rails developer eyes.
I used to pay for a subscription to Railscasts, and it was money well spent. It's too bad that Ryan stopped making new videos.
Railscasts was awesome. In particular, I really loved the ASCIIcast feature on each video. I can't say enough about how helpful that site was in terms of helping me learn Rails.
> There are so many jobs out there in rails / ruby.
Just today, another commenter [1] said that...
The job market for Rails devs seems to be pretty dry.
Many Rails devs I know, including myself, do not get even
10% of Rails job offers anymore, as it used to be until a
couple of years ago.
ok, maybe "so many" is a little bit of an exaggeration. WeWorkRemotely.com lists 72 programming jobs at the moment, and 16 of those mention ruby and/or rails.
Tried getting a job to move to Rails development once. I have 5+ years of PHP and MVC frameworks experience. They said I can't get the job for two reasons:
1. If they tried hiring me as a mid-level Rails dev, I'd be too inexperienced in Rails
2. If they tried hiring me as a staring Rails dev, I'd be too underpaid
So apparently, my past web dev skills are non-transferrable to some companies that hire web developers. Yikes.
elixir is awesome, and it's the language i use on my personal projects. But it's still pretty immature and if you're writing a web application, rails will get you further, quicker.
With rails when i'm writing some new code quite often i'll open pry and experiment. %w!bob tom harry!.<tab><tab> gives me all the things I can do on this array. So maybe I'd do %w!bob tom harry!.sort
If i'm in iex (the elixir equivalent REPL) I have no such help! first, I can't use %w! to define an array, and secondly You can't call things like that. The equivalent is
> "first, I can't use %w! to define an array, and secondly You can't call things like that."
The second part is a pretty fundamental language difference but you can use sigils to handle the first part. E.g., to generate word lists use ~w like so:
~w(bob tom harry)
If you don't want to use parens, you could use pointy brackets, braces, pipes or a few other delimiters instead.
1) I generally prefer Ruby's syntax over Python's (I would miss blocks for sure)
2) Rail's ecosystem seems larger than Django's, but that could just me being more familiar with it
3) There seem to be a lot more Rails jobs than Django ones
Django would make more sense for a business that uses python for other things, though.
Not OP but django is huge and the dependency chain is crazy for me its just way more than i need and doesn't solve a problem that i can already solve with more light weight frameworks.
I have know django developers who were great in django but never got their heads around python beyond the framework.
Maybe things have changed since the last time i poked at it.
This seems off. Not the correlation to languages (although I'm pretty sure that I've contributed my fair share of negative commit messages to Rails projects), but the fact that only about 20% of commit messages are deemed neutral. I would expect at least 50% there, since most times the commit message just neutrally describes what has changed.
This is exactly how i feel about flask and prior to flask turbogears. Stick with what you know until it doesn't solve the problems in satisfactory way.
true, but I could have just stuck with PHP then I feel. But rails represented more than just slinging code - it represented professionalism. Doing things well. Maintainability, and above all else developer happiness.
With PHP, building an online store was possible for me. With Rails, it became obvious.
Always be willing to upgrade - but don't hastily discard something useful for something new either.
Because for 95% of my projects, personal and professional, thats the tool to solve it. I don't have to reinvent anything, or worry about gaping security holes common to web applications - i just need to work on the problem domain.
I can focus on good modeling and good front-end UI/UX. And there is flexibility in delivering desktop/mobile applications quickly, using what i've already built in rails.
As a one man band, I can't think of a better instrument to play.