I guess I’m just baffled by the number of people on here that I see pointing to Rust as the next project they tackle after Rails when I don’t see them overlapping at all.
Edit: The solution here[1] is a good example of what I'm talking about I think. A lot of what's there is pretty obvious to someone familiar with JS/Ruby/Python/Perl, and they might even use a very similar looking solution. The Rust specific stuff is really the only foreign stuff, so if you assume you would learn that when learning the language, it's a pretty straightforward solution that looks similar enough to be inviting.
1: https://stackoverflow.com/questions/31986628/collect-items-f...
(although looking at it again most of the content links are a bit old, but the library stuff seems current)
The Rust tooling and community are just that good. I'd rather have to work on some extra verbosity and maybe even maintain my own helper library in Rust than deal with with Elixir/Phoenix at this point. The number one reason is that Elixir deployments are nothing short of a nightmare. I've found the community not particularly helpful or knowledgeable about how things work (and given how many moving pieces are in an Elixir deployment, and how brittle Elixir deployments are, this is a terrible thing). And you're definitely not going to write CLI tools in Elixir (it straight doesn't work with escript in the first place).
Compiling down into a single "static" binary like Rust (and Go) do by default is a huge win for things like this. The quick startup time of a Rust or Go app compared to Ruby or anything JVM based is great for rapid iteration and testing. The tooling around Rust is, in general, fantastic. Being that much of a pleasure to use really makes up for how inappropriate it is to use Rust for most high level web app things.
Phoenix had a lot of promise, but these days I'd much rather go back to Rails or Django (with an eye towards how to migrate to a compiled language) if I needed to churn something out quickly.
In this case it's about someone involved in both languages already moving from being primarily (or identifying as) a Rails committer to a Rust ecosystem committer (for which he's already written a few very popular modules over the past couple years). This isn't the usual "I tried some new language and I like it" blog post, so I'm not sure your assessment holds true, for this case at least.
Mmstick had a good post about this two months ago: https://www.reddit.com/r/rust/comments/af43dy/rust_windows_g...
Rails to Phoenix/Elixr makes some sense. As for me, I'm moving backwards in the hype cycle. I started out with Ruby as my first programming language 15 years ago, but I'm spending more and more time in C# these day.s
That said, I agree that anything you build in Ruby can be done in Elixir and you should be able to leverage a lot of benefit. The reverse isn't true.
Doesn't it feel so much nicer to just focus on the domain problems of new tasks without relearning how to talk to the computer?
When Rails 0.9 dropped in 2004, I instantly rewrote my old PHP app in it and never looked back. It just felt so expressive and naturally declarative.
Rust has a similar amount of promise, though not quite as good of a demo. The idea that you can write high-performance code without typical high-performance code bugs is amazing! There's a whole new type of type system that ensures it!
Sometimes you want your language to also be a religion ;)
> The idea that you can write high-performance code without
> typical high-performance code bugs is amazing! There's a whole
> new type of type system that ensures it!
I just can't see how Rust is a good choice for web dev. There's a lot of mental overhead to writing Rust. Something like C#/Kotlin/Go will avoid all the same bugs and give you 95% of the performance while being much easier to code.For instance, Yehuda Katz and Steve Klabnik were both extremely helpful and widely admired figures in the Ruby/Rails community. Then they both joined the Rust core team.
That alone is enough to attract the interest of a lot of rails people I think, by giving Rust relatively huge exposure among Ruby people.
Then you have the fact that (probably due to the above) Rust became a common choice for outsourcing performance-critical parts of Rails apps.
Once you start doing that, it’s kind of natural to start thinking hmmm what if I wasn’t even doing Rails..
Interestingly, Crystal might be an easier jump as it's syntax is very similar to Ruby, but with the performance gains that come with compiling to a single executable.
Crystal is still pre-1.0 though so it doesn't quite have the production-ready stability or robust community of Go or Rust.
I'm not that familiar with Rails or Rust, but Steve Klabnik (http://www.rustforrubyists.com/) and Yehuda Katz come to mind in this case (https://blog.rust-lang.org/2014/12/12/Core-Team.html).
So all of those things overlap quite a bit (also am I not allowed to expand the scope of things I work on beyond web frameworks? I'm not really sure why they have to overlap at all)
This is the crux of the problem which seems left unadressed in the comments.
If it feels nice to enjoy those consulting rates, give something back.
I really appreciate all the contributions done by Sean in Ruby On Rails and wish him all the best.
I hope he can make a living doing open source.
I wish I had millions and could be a patron saint of sorts for people like the author. Open source funding is so broken as the companies that build upon the vast open source and often free software don’t do much in the way of donating or otherwise supporting the companies or individuals behind the projects.
> Orthogonality in a programming language means that a relatively small set of primitive constructs can be combined in a relatively small number of ways to build the control and data structures of the language[2]. It is associated with simplicity; the more orthogonal the design, the fewer exceptions. This makes it easier to learn, read and write programs in a programming language. The meaning of an orthogonal feature is independent of context; the key parameters are symmetry and consistency (for example, a pointer is an orthogonal concept).
Go modules are a fairly new feature which addresses past criticisms of Go dependency management so I don't think that's a valid criticism any more.
> Right now my goal is to get a handful of medium sized grants from larger companies to support my work on crates.io. If you work for a company that might be interested in helping sponsor me, please reach out.
If that's a financially viable proposition, that speaks well of large companies supporting individuals on open source projects, no?
I think the majority of companies that give back do so through developer time and effort. If there's a non-profit to push money through to fund work, they at least get to write it off easily, so whether a language has one like the one I referenced above might greatly affect whether there are dedicated people working on the language specifically or not.
Does anyone know if the "Rust organization" he references is meant to refer to Rust as a whole, or is a specific non-profit with a goal of funding Rust advancement? I'm not finding anything specific. Mozilla probably isn't equivalent, as I imagine only a fraction of anything donated to them could be expected to go directly towards Rust.
I saw the rise of Ruby on Rails; the driver was the ability to deliver wellstructured web applications fast. The language was a secondary thing.
It reminds me of what Dijkstra said about people raised on BASIC in the 70s:
> It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.
So basically procedural > OO > functional.
I will say the hardest transitions (where "hard" is still less hard than, say, understanding everything about how a SQL join works) were from .NET to Ruby (and even THAT transition was mostly hard because I was going from "Microsoft ecosystem" to "open-source ecosystem" without having Java on my resume), and from Ruby to Elixir (syntactically similar, semantically night-and-day). But clearly it's possible... and I'm a Dijkstra fan!