I feel bringing concurrency to Ruby (what Rubinius is trying to do) is going to be harder than bringing Ruby to concurrency (what Elixir is trying to do). Adding Ruby-like syntax on top of fundamentals like functional programming, immutability, etc (which are naturally suited for concurrency) sounds like a better approach to me. Would love to hear others' opinion.
> I feel bringing concurrency to Ruby (what Rubinius is trying to do) is going to be harder than bringing Ruby to concurrency (what Elixir is trying to do).
I don't really feel like the second of those is a good description, since it presents a false symmetry. Rubinius is trying to have solid support for good concurrency models in something that is actually Ruby.
Elixir is trying to have something vaguely Ruby-like that builds on existing support for strong concurrency models on the BEAM VM.
Obviously, the latter is an easier task, as it is less constrained (both seek strong support for concurrency, the former seeks being Ruby, the latter seeks only weak resemblance to Ruby), but the former leverages a greater subset of Ruby's existing strengths, including its existing ecosystem.
I agree as well. As an outsider who has toyed with Rubinius I wonder how married Rubinius Inc will be to MRI compatibility. I think the task "concurrency to Ruby" could be made a lot easier if compatibility with MRI wasnt on the table, it would allow them to experiment much more freely, and I for one wouldnt mind having a very ruby-esque lang with great concurrency primitives. Does anyone know if theyve considered that?
> I think the task "concurrency to Ruby" could be made a lot easier if compatibility with MRI wasnt on the table
If compatibility with MRI isn't on the table, its not really "concurrency to Ruby", its "concurrency to something that is not entirely unlike Ruby", which is a different thing, and at that point, why even consider Ruby as a touchstone at all, rather than an inspiration (the way Elixir does) since you aren't going to be able leverage the existing ecosystem?
You are equating MRI with Ruby. Most would probably agree, still I wonder if that should be the case. If someone came along and fixed some ruby weak points (concurrency, performance, subtle bugs) I would be happy to call it ruby just like we call java java regardless of whether we use openjdk or oracle. At some point that might lead to an actual spec...
As far as there is a practical definition of "Ruby", MRI (which actually has, since 1.9, been YARV, a previous compatible-with-MRI alternative implementation) is it.
> If someone came along and fixed some ruby weak points (concurrency, performance, subtle bugs) I would be happy to call it ruby
If it wasn't compatible with existing Ruby and you couldn't use existing Ruby with it, why would you be happy to call it Ruby?
> just like we call java java regardless of whether we use openjdk or oracle.
OpenJDK's relation to Oracle's JDK is more that between Chromium and Chrome than that between Ruby and an alternative and incompatible-but-similar language from a third party.
> At some point that might lead to an actual spec...
"If it wasn't compatible with existing Ruby and you couldn't use existing Ruby with it, why would you be happy to call it Ruby?"
Im happy calling clojure a Lisp? Why not call this new 95% similiar language by what it is - a Ruby? If it were 20-25% similar (elixir) or even 60% I could call it ruby like X lang and be done. Thats not what the point Ive been trying to make though.
When is an object a bowl and not a cup? Is it when it loses its handle? What about if it has a handle but is wide and open and deep? I personally dont think its as binary as your making it out to be (100% compatibility yes/no). If this were the case there would a canonical Lisp and no one else could refer to a lisp as such.
"Like ISO/IEC 30170:2012?" No, that hasnt been revisited since 2010 was for ruby 1.8.7, and doesnt include the whole standard library, which means if you want to accept that youd have to throw out your argument because by your very definition it couldnt be a spec for a Ruby since it doesnt include all exact behavior like mri.
Thanks! That's good to know. I'm familiar with these articles but they didn't mention that. In fact part 5 says something entirely else about X vs. 3.0.
I don't think worse is better applies here. There's also JRuby and rubinius is in a weird limbo state where it's not quite Ruby like JRuby and it's not quite another language like Elixir. Similar thing happened to Dart I think. It was stuck in limbo and never got adoption.
So between JRuby and Rubinius I choose JRuby because I've used it in the past and it's great. The fact that JRuby folks try super hard to maintain compatibility is also really nice. I want to know who is actually using Rubinius and in what capacity and why.
Personally, I don't find the library gap between ruby/rails and elixir/phoenix for simple web applications to be particularly onerous already, and it will only get better.
Will it? My knee-jerk reaction to this was that Elixir already has more adoption than Rubinius, but then I stopped paying attention to Rubinius years ago. Do people use it for real stuff?
I'm interested to see how Brian will approach a business model built on open source. The most common ways to do it (selling a "pro" version of software that is closed source, running a hosted version, or selling support) all fall short for me in various ways. I'd love to see an approach that maintains the user's privacy and control.
Open source is great, and it has its place. But it's not the future. Healthy competition drives innovation behind closed doors, and people should be allowed to profit from their own work without giving it away for free.
> people should be allowed to profit from their own work
By "people", do you mean "developers", or "capital"?
As a software developer I am well-compensated compared to people in many other professions, but unless I play the startup lottery I'm as isolated from the investor class as the rest of the proles.
Publishing work as open source allows me to get a better ROI than I get working on proprietary code.
Of course it is. People don't realize that software no matter how good if it is proprietary has a limited shelf-life. It might make you rich in the short term but ultimately it will go into the dustbin of history. That's because software on its own is worthless. It is the people, processes, and institutional knowledge around it that is valuable and once a set of practices and processes is common enough to automate with software the free and open-source version will always win.
That's true, but not enough--you have to explain how that enables a revenue model for a modern company. How many companies make money selling open source software (not support, not feature development, not proprietary forks based on copyright assignment) without using the Red Hat model?
The FSF point about charging for distribution seems to be mostly an artifact of the time before software distribution was commoditized/made free.
There are any number of ways to get paid for your labour as a hacker.
1. Charge for running the service.
2. Take a cut of transactions over the service.
3. Charge for feature additions.
4. Charge for installation/configuration/support/maintainance.
5. Patreon-style support (including Patreon).
6. Sell physical media & merchandise (don't laugh, ask a band).
etc.
Now, about how proprietary software companies can ever hope to compete with Google even if they don't lose all their revenue to piracy...
Most of those aren't getting paid for your labor as a hacker, which is to say, a programmer. They're getting paid for support, for ops, for server time -- number 3 is the only one that directly pertains to writing code. So you can monetize ancilliary activities, but the act of giving source code away for free devalues the act of actually writing source code and makes it difficult to monetize the writing of source code itself, not the ancilliaries.
None of this is responsive. I should've been more explicit that what I described didn't include hosted services, but it doesn't.
There are tons of ways to make money in open source. I just don't think they're selling software that could be torrented. It's really a pretty trivial point, and one I maybe shouldn't have bothered to make--I just got in a pedantry skirmish.
Facebook is a scary example. Facebook is 1% open source contributions funded by 99% proprietary walled garden. Scaled down to something like rubinius, the scale fraction would be something like working a proprietary company/job all year and writing some open source on vacation days.