News for hackers. Stuff that matters.
Re:Introducing Rubinius X by beat on Tuesday October 15, 2013 @11:38AM (#6553873)
Businesses (meaning Big Business, I suppose) don't reject Ruby because it's "a dying language". They reject it because they're inherently conservative. Java and .Net rule the roost because they're seen as safe, respectable choices.

The appearance of risk is more important to most businesses than actual risk. Ruby isn't dominant, therefore it is perceived as risky. Java's complexity might actually threaten the survival of a small project, but it's not "risky" because it's dominant.

Re:Introducing Rubinius X by Argorak on Tuesday October 15, 2013 @11:48AM (#6553966)
The story that Big Business is not using Ruby is just that - a story. On the first RailsConf i've been to (RailsConf Europe 2007), most attendees were actually working for Big Biz.

I have spent most of my ruby career in large companies, even for Padrino work. No one builds a multi-million dollar project in Ruby. But one or the other frontend for that. Some of the services. The deployment tooling, be it Chef or Puppet. Ruby is a surprisingly flexible language and can be successfully used on or off the JVM, which large companies just _like_.

This blog post reeks of negativity and speaks of a willingness to throw the baby out with the bathwater.

Re:Introducing Rubinius X by laureny on Tuesday October 15, 2013 @12:09PM (#6554131)
> On the first RailsConf i've been to (RailsConf Europe 2007), most attendees were actually working for Big Biz.

Selection bias.

Go to a COBOL conference and you'll likely find that most attendees work in Big Biz as well. What does that tell you?

Re:Introducing Rubinius X by ctide on Tuesday October 15, 2013 @12:37PM (#6554365)
That COBOL is predominantly used in Big Biz? I think you proved his point.

It'd be selection bias if he made the assumption that most big businesses were using Ruby. That's not the point he was making -- what he said was that lots of people using Ruby work at big businesses.

Re:Introducing Rubinius X by laureny on Tuesday October 15, 2013 @01:39PM (#6554892)
> That COBOL is predominantly used in Big Biz? I think you proved his point.

No, you don't understand what selection bias means.

Re:Introducing Rubinius X by loup-vaillant on Tuesday October 15, 2013 @07:04PM (#6556941)
You're not very good at explaining it either. Plus, selection bias may not be the only sampling effect here.

Selection bias is when a developer from Big Biz is more likely to go to conferences than a developer from smaller business. Do you have any specific reason to believe that? Not knowing much about conferences, I don't. So until you tell me of those specific reasons, I have no reason to believe in selection bias.

Now, there's another sampling effect: maybe Big Biz simply hire (much) more developers than smaller businesses. If 5% of Big Biz devs work on Ruby, and 10% of startup devs work on Ruby, but 90% percent of developers work for Big Biz, then your Ruby conference will still be 80% full of Big Biz devs without selection bias, even though Big Biz is twice as hostile to Ruby.

Re:Introducing Rubinius X by laureny on Tuesday October 15, 2013 @09:33PM (#6557494)
> Do you have any specific reason to believe that?

They have more money so they can send more developers to these conferences than startups. Also, they have more employees, so the odds of a number of them being Rails developers is higher.

But that's not even what was being discussed in the context of my "selection bias" remark: the OP was saying that Ruby is used in BigBiz and used Ruby conference attendance to support this claim, which is different from what you are arguing.

Re:Introducing Rubinius X by Argorak on Tuesday October 15, 2013 @01:50PM (#6554981)
As much as you didn't understand the point that I was trying to disprove, which was the bare assumption that big business is uninterested in Ruby.
Re:Introducing Rubinius X by bdcravens on Tuesday October 15, 2013 @12:24PM (#6554246)
Indeed. Who's more likely to afford several hundreds of dollars for a ticket, plus travel, plus days of hotel, plus lose several days of productivity? A bootstrapped startup, an independent developer, or a corporation with departments that have seven-figure budgets?
Re:Introducing Rubinius X by Argorak on Tuesday October 15, 2013 @12:34PM (#6554332)
That is certainly one factor. But companies are also selective and rarely send someone on conferences for a language that doesn't interest them _at all_.

On top of that, the initial statement was "almost no big business uses Ruby".

Re:Introducing Rubinius X by darylfritz on Tuesday October 15, 2013 @12:21PM (#6554224)
I work in a large corporation. We use Microsoft .NET (recently converted from Java). At home, I develop with Ruby for smaller pet projects and personal things.

I would attend a Ruby/Rails conference, and I work for a "big business". That doesn't mean that my "big business" uses Ruby.

Re:Introducing Rubinius X by Argorak on Tuesday October 15, 2013 @12:49PM (#6554473)
Are you 100% sure that no department has ever used or commissioned software that runs Ruby? My experience is that most companies have and still do.

Be aware that this includes deployment automation for some software. Two of the behemoths in that space are written in Ruby.

Re:Introducing Rubinius X by macspoofing on Tuesday October 15, 2013 @12:06PM (#6554111)
>The appearance of risk is more important to most businesses than actual risk. Ruby isn't dominant, therefore it is perceived as risky ...

That's not quite right. Anecdotally, I've seen or read about big corps using hot JS front-end frameworks like Angular and Backbone, server frameworks and databases like Node.js, MongoDB and Redis, and programming languages like Python, Erlang and Scala in production. Even if you look at the big tech corps (such as Yahoo, Google, Twitter, Facebook, Amazon), internally there isn't a whole lot of Ruby either. The big poster-child for Ruby, Twitter, is now most known for migrating away from Ruby than for actually using it.

I'm not a Ruby guy, but it doesn't seem like cliche corporate conservatism is what's holding Ruby back. It looks like it's Ruby, and specifically the Ruby platform. Maybe pretty Ruby language semantics aren't enough to make up for Ruby platform downsides. Maybe there just isn't a good reason to use Ruby.

>Java's complexity might actually threaten the survival of a small project

The choice of Java would not threaten the survival of any small project. Though Java is (still) not a very pretty language, the tooling around it has gotten enormously better from where we were in, say, 2003. Current frameworks like JEE, Spring and Play are actually pretty great to work with.

Re:Introducing Rubinius X by schappim on Tuesday October 15, 2013 @12:52PM (#6554495)
I'd actually say the poster child for Ruby is Github. GitHub is a collection of small Sinatra Web Apps.
Re:Introducing Rubinius X by jliechti1 on Tuesday October 15, 2013 @12:11PM (#6554146)
Indeed, I wanted to mention this as well.

Furthermore, I think Python (actually Jython) is starting to become for prevalent in the enterprise space. I've seen a few different enterprise software suites from companies like IBM and HP that support writing extensions in Jython. I know that the JVM implementation of Ruby is JRuby, but is anyone using that in production? Jython seems relatively more stable/mature, but I really don't know much about JRuby.

Re:Introducing Rubinius X by beat on Tuesday October 15, 2013 @12:27PM (#6554271)
The only time I've ever used Jython is for administrating Websphere. And nothing says bloated overpriced overcomplicated time-wasting enterprise nightmare like Websphere.

Seriously, businesses will spend the equivalent of ten programmers' salaries on Websphere licenses, but they'd never consider hiring ten programmers. It's the poster child of corporate timidity in risk aversion drag.

But I digress.

Re:Introducing Rubinius X by riffraff on Tuesday October 15, 2013 @12:56PM (#6554533)
jython used to be popular many years ago when it was the most decent language to add scripting to a java app.

I don't _think_ it's very popular as a scripting language for new java stuff, and it still only supports python 2.5 which is 8 years old.

Re:Introducing Rubinius X by rst on Tuesday October 15, 2013 @02:36PM (#6555355)
Constant Contact uses Rails on jruby pretty extensively, because of improved performance and JVM integration. There was also a talk at Boston's Wicked Good Ruby conference of a case study of a large Struts 2 app getting extended in Rails on JRuby. (I asked about Grails as an alternative; not only was Groovy more painful than Ruby to work in, but Grails itself, in the speaker's experience, was more difficult to integrate into an existing application stack. Which is something the Grails folks might want to look into, if it's correct...)
Re:Introducing Rubinius X by rurounijones on Tuesday October 15, 2013 @12:24PM (#6554245)
From memory on the torquebox (application server for jruby based on jboss) or the jruby mailing list there was one guy who worked for a large gaming studio (I think it was one of sony's gaming divisions) who use jruby and torquebox for the network backend[1] of their AAA games.

[1] Gamer / game analytics, logins etc. Basically APIs that their games call over the network for the more "social / analytics" stuff.

Personally I have used jruby in the past for implementations of services where we needed to use java libraries.

Re:Introducing Rubinius X by Xylakant on Tuesday October 15, 2013 @12:28PM (#6554282)
I know of a couple of installations that use jruby in production. It's often coupled with some sort of java service in the backend, so sure, it's used in production.

It's also stable, even though it tends to lag a little behind cruby in some features. The 2.0.0 feature set is not yet implemented fully.

Re:Introducing Rubinius X by beat on Tuesday October 15, 2013 @12:49PM (#6554470)
I'm using JRuby in the code I'm developing for my startup, in order to access Java libs I need. The biggest issue has been that it doesn't support Ruby 2.0 yet, which is merely aesthetic at this point for me. JRuby hasn't given me any grief since I got it going.
Re:Introducing Rubinius X by ebonfortress on Thursday October 17, 2013 @06:40AM (#6564508)
It seems that Ruby never won over Python in big tech companies. Probably it has something to do with Python being widespread in science (as far as I understand, tech companies are dominated by graduates from the best colleges) - if you're a graduate, you already know a scripting language, why learn another one?
Re:Introducing Rubinius X by smoyer on Tuesday October 15, 2013 @11:57AM (#6554046)
I was ready to leave Java for enterprise projects, but the name change (J2EE to JavaEE) was accompanied by a dramatic simplification and modularization of the framework. These changes have made me much happier AND more productive as a Java developer, so it's my contention that Java is far more entrenched in the enterprise than it was even 4 years ago.
Re:Introducing Rubinius X by beat on Tuesday October 15, 2013 @12:09PM (#6554134)
Alas, it's still kind of a mess. The #1 improvement made to Java imho has been dependency injection in Spring and Hibernate. But this dependency injection pretty much kills all the compile-time sanity checking that compiled languages are supposed to provide. It's great when it works, but when it doesn't, it just barfs out useless stack traces that don't actually show you where the problem occurred.
Re:Introducing Rubinius X by smoyer on Tuesday October 15, 2013 @12:57PM (#6554540)
I'm not sure I believe Spring and JavaEE are as compatible as some would lead you to believe. CDI and JPA are the official implementations of dependency injection and ORM persistence, but they overlap with other functions in Spring and Hibernate. Components in JavaEE are POJOs or MBeans and they're injected based on qualifiers and rules in a configuration file. Guice and Spring both allow you to wire components together, but you can easily get conflict between their injection and the CDI injection.

The compile time sanity checking is still doing type checking, and to a degree you're correct ... there will be run-time exceptions if CDI can't find any instances of an object (likely an interface) to inject or if there is more than one that matches. I don't think you'd want it to randomly pick one.

If you code to the CDI and JPA specifications, you can plug in Hibernate and Weld as your implementations of the frameworks. If you plug in Hibernate and Weld, then use their non-standard extensions you can indeed find irregularities.

Re:Introducing Rubinius X by fauigerzigerk on Tuesday October 15, 2013 @12:40PM (#6554388)
Can you show me an example of something a compiler could check if it wasn't for dependency injection?

I think the question of whether or not to hard code some setting or make it configurable is unrelated to dependency injection. Dependency injection is one way to design dynamic configuration once you have decided not to hard code.

Other options would be to load stuff from a database, a directory server or from a config file. No matter how you do it the compiler won't be able to help.

Re:Introducing Rubinius X by Cyranix on Tuesday October 15, 2013 @12:20PM (#6554215)
I can't speak to Spring and Hibernate, but using Guice for dependency injection has been quite pleasant. True, it does push some errors to run-time that I would have preferred to see at compile-time, but the error messages make the resulting fix immediately obvious.

(Can anyone speak to this aspect of working with Dagger?)

Re:Introducing Rubinius X by skMed on Tuesday October 15, 2013 @11:13PM (#6557805)
I don't believe this is true at all. Dependency injection is just a way to invert control, decouple your code, and make it more testable. Proper tests of your configuration when your container is bootstrapped is all that is necessary to maintain sanity here.

You are still getting all the benefits of static typing, especially if you are coding to a contract.

Re:Introducing Rubinius X by smacktoward on Tuesday October 15, 2013 @11:46AM (#6553941)
Java and .NET are also backed by ginormous corporations (Oracle and Microsoft), which big business also generally views as a major risk-mitigating factor.

(It isn't really -- in fact it's the opposite, "corporate" platforms tend to die out faster than open-source ones, at least in my experience -- but they think it is, which in this discussion is all that matters.)

Re:Introducing Rubinius X by pnathan on Wednesday October 16, 2013 @01:21PM (#6560866)
> Java and .NET are also backed by ginormous corporations (Oracle and Microsoft), which big business also generally views as a major risk-mitigating factor.

This is a big deal. Particularly for risk mitigation and CYA when something goes wrong. No one got fired for buying IBM, as was once said.

Re:Introducing Rubinius X by klaustopher on Tuesday October 15, 2013 @11:58AM (#6554055)
Also, let's not forget about IBM, HP, RedHat and all the other shops that back Java
Re:Introducing Rubinius X by Xylakant on Tuesday October 15, 2013 @12:15PM (#6554174)
to be just here: RedHat also backs jruby.
Re:Introducing Rubinius X by Argorak on Tuesday October 15, 2013 @12:57PM (#6554541)
Heck, RedHat even has a big JRuby Application Server on top of JBoss.

http://torquebox.org/

Re:Introducing Rubinius X by xs_kid on Tuesday October 15, 2013 @05:31PM (#6556486)
Oracle has some JRuby apps on production
Re:Introducing Rubinius X by laureny on Tuesday October 15, 2013 @12:07PM (#6554118)
> They reject it because they're inherently conservative

Not just that. They reject Ruby because

1. It's very slow and continues to be very slow despite all the performance work being done on it (nod to JRuby).

2. It's just hard to hire Ruby developers, who are getting more scarce every year.

These are the symptoms of a dying language.

Re:Introducing Rubinius X by jmagoon on Tuesday October 15, 2013 @09:12PM (#6557413)
If you provided sources, I would maybe think this was something beyond a personal axe you have to grind.

Seeing as how you've fit the classic "respond to every post" argumentative style.

Re:Introducing Rubinius X by subsection1h on Tuesday October 15, 2013 @07:24PM (#6557021)
> It's just hard to hire Ruby developers, who are getting more scarce every year.

Citation?

Why would Ruby developers be getting more scare? Are they retiring earlier than Java developers?

Re:Introducing Rubinius X by laureny on Wednesday October 16, 2013 @12:10AM (#6557969)
> Citation?

http://www.indeed.com/jobtrends/ruby%2C+java.html

> Why would Ruby developers be getting more scare? Are they retiring earlier than Java developers?

Ruby developers have always been a tiny fraction of the number of Java developers, and that fraction has been steadily decreasing, while the Java developer pool keeps increasing (Android helped quite a bit growing that population).

Re:Introducing Rubinius X by ksec on Wednesday October 16, 2013 @06:24AM (#6558877)
I think it is actually the Ruby Pool is increasing much faster then there are Ruby Devs.
Re:Introducing Rubinius X by lobster_johnson on Tuesday October 15, 2013 @07:59PM (#6557191)
> 1. It's very slow

Benchmarks these days show Ruby 1.9/2.0 as being a wee bit faster than Python, and it's improving. That's still much slower than Java, of course, but then that's a bad comparison; Ruby and Python are better comparisons.

Re:Introducing Rubinius X by pkolaczk on Wednesday October 16, 2013 @04:24AM (#6558583)
It is also still much slower than Groovy and Scala, being at the same time similarly or even less expressive and having worse tooling. Therefore I can't see any reason to move from e.g. Java to Ruby. When Java is not expressive enough I'd consider using Groovy/Scala/Clojure.
Re:Introducing Rubinius X by jbooth on Tuesday October 15, 2013 @11:54AM (#6554018)
It's worth noting that Ruby's metaprogramming model goes a bit beyond the mere appearance of risk, in many people's opinions. Maybe we're wrong, but it's not like we're avoiding it because it's got a small install base (it doesn't) or nobody's heard of it (we all have, for most of a decade now).