djberg96 ([info]djberg96) wrote,
@ 2007-05-23 00:29:00
Previous Entry  Add to memories!  Tell a Friend  Next Entry
Current mood: annoyed

The Paradox of (Programming Language) Choice
One of the slides Avi Bryant showed during his RailsConf talk bragged that Smalltalk had multiple commercial vendors.

Is that something to brag about? Frankly, I think it's one of the reasons (of several) that Smalltalk will never regain significant traction, assuming it ever really had any. Consider this thread where you've got Smalltalkers going after each other about incompatibility issues between different versions of Smalltalk.

Think about that for a moment. Now put yourself in the shoes of a PM who's trying to decide *which* version of Smalltalk to use. There are what, 12 versions of Smalltalk out there, each with various features? Forgetting for the moment that all but one are not free. And nothing but a bunch of Smalltalk programmers, each with their favorite flavor, to help you decide.

How does this scenario help a language in the long run?

It doesn't. The paradox of choice ends up working against it. It becomes marginalized. The PM opts for another language that only has one (primary) implementation. And probably a free one to boot.

Ruby is in a precarious position at the moment in this regard. Right now we've got MRI Ruby, JRuby and IronRuby. Life is good because the latter two can solve deficiencies in the language that will make them better than MRI Ruby. Also, IronRuby will be targeted at a specific platform, so the choices now are easy.

But that may not last.

What happens when Ruby 2.0, JRuby, IronRuby, etc, all reach production worthiness?

Now put yourself in the shoes of a PM...




(Read 4 comments) - (Post a new comment)


[info]djberg96
2007-05-23 04:39 pm UTC (link)
In the case of C/C++ you may have had different compilers and tools, but the vendors never went off-spec once the ANSI standard was established, did they? I mean, you never saw Borland put out "C, with namespaces!" or anything like that (that I'm aware of).

BTW, I may have gotten the jist of the thread backwards. I thought they were clamoring for features in Seaside that aren't part of ANSI Smalltalk (established in 1998 - I had to look it up). But, I think my overall concerns still stand.

The general vibe I get is that the Smalltalk vendors are willing to "stray from the spec", as it were, and implement not only non-standard features, but re-implement some of the core internals in different ways, e.g. some versions of Smalltalk support native threads, some don't.

But, yeah, maybe I'm worrying over nothing. It has made me reconsider the whole "We need a spec" issue, instead of just relying on tests for the spec. On the other hand, that puts a crimp in my whole "Wuby" plan. ;)

(Reply to this) (Parent)(Thread)


[info]quailwood
2007-05-23 05:43 pm UTC (link)
Thankfully, I've been away from C++ long enough to forget some of the sordid details. No one went wildly off-spec, but one specific example that I remember was the question of whether declaring a variable inside a for loop introduced it into the outer scope; i.e.


    for (int i = 0; i < 5; i++) { ... }

Once this loop exits, is "i" still in scope? Some compilers said yes, others said no. And I don't even remember what the standard says anymore.

Like I said, with regards to the general problem of inconsistent Ruby implementations, it's certainly something to be aware of. I'm definitely not opposed to having a spec. I'm just saying that I don't think that's going to be a roadblock to Ruby's future viability.

(Reply to this) (Parent)


(Read 4 comments) - (Post a new comment)

Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…