IronRuby...will it be like J++?

Could it be that Microsoft won't fully implement the language
specifications, a la the J++ versus Java scenario?

What are some potential issues down the road? It seems that the license
is BSD-like, which sounds good, surprisingly open for Microsoft.

It would be neat to develop a script in Linux which runs fine in
IronRuby, but that sounds too good to be true :frowning:

-Thufir

From: news [mailto:news@ger.gmane.org] On Behalf Of Thufir
Sent: Montag, 22. Oktober 2007 06:12
To: ruby-talk ML
Subject: IronRuby...will it be like J++?

Could it be that Microsoft won't fully implement the language
specifications, a la the J++ versus Java scenario?

I doubt, that Matz will sue Microsoft, like Sun did with MS (that's why J++/J# is stuck on Java 1.2, IIRC).

What are some potential issues down the road? It seems that the
license
is BSD-like, which sounds good, surprisingly open for Microsoft.

Probably the same, as with using Java as a language (or writing additional interpreters/VMs for Ruby): fragmentation of resources. Bu that remains to be seen.

Given, that the MSPL is the old BSD license (which included an attribution clause, also), IronRuby could be forked, if MS started to misbehave.

It would be neat to develop a script in Linux which runs fine in
IronRuby, but that sounds too good to be true :frowning:

As it is with Windows or Java, or the different UNIX-flavors.

···

-----Original Message-----

--
Phillip Gawlowski

Thufir wrote:

Could it be that Microsoft won't fully implement the language specifications, a la the J++ versus Java scenario?

They have no need to do that.

What are some potential issues down the road?

The issue is that many Ruby programs will be built that rely on
(i.e. benefit from) using facilities only available on MS platforms.
That's good if you need those programs, but the rest of us won't be
able to run them. The sheer size of the MS installed base means that
over time, there'll be no certainty for anyone new to Ruby about how
to find a program they can use. Almost all cross-platform Ruby program
will spawn MS-specific forks, and the community will divide into those
whose programs work on Microsoft and those who don't.

Classic divide and conquer, combined with a swamping strategy,
regardless of licensing issues. Divide the community and make the
smaller group irrelevant.

Clifford Heath.

Phil wrote:

From: news [mailto:news@ger.gmane.org] On Behalf Of Thufir
Sent: Montag, 22. Oktober 2007 06:12
To: ruby-talk ML
Subject: IronRuby...will it be like J++?

Could it be that Microsoft won't fully implement the language
specifications, a la the J++ versus Java scenario?

There is no Ruby spec, other than than the C version itself.

But you (and everyone else) can help change that:

http://spec.ruby-doc.org

···

-----Original Message-----

--
James Britt

"Take eloquence and wring its neck."
  - Paul Verlaine

Yeah. Because that worked really well for them with Java.

···

On Mon, 2007-22-10 at 19:05 +0900, Clifford Heath wrote:

Thufir wrote:
> Could it be that Microsoft won't fully implement the language
> specifications, a la the J++ versus Java scenario?

They have no need to do that.

> What are some potential issues down the road?

The issue is that many Ruby programs will be built that rely on
(i.e. benefit from) using facilities only available on MS platforms.
That's good if you need those programs, but the rest of us won't be
able to run them. The sheer size of the MS installed base means that
over time, there'll be no certainty for anyone new to Ruby about how
to find a program they can use. Almost all cross-platform Ruby program
will spawn MS-specific forks, and the community will divide into those
whose programs work on Microsoft and those who don't.

Classic divide and conquer, combined with a swamping strategy,
regardless of licensing issues. Divide the community and make the
smaller group irrelevant.

--
Michael T. Richter <ttmrichter@gmail.com> (GoogleTalk:
ttmrichter@gmail.com)
Never, ever, ever let systems-level engineers do human interaction
design unless they have displayed a proven secondary talent in that
area. Their opinion of what represents good human-computer interaction
tends to be a bit off-track. (Bruce Tognazzini)

First used by Sun in the Ruby space, since they took JRuby under their wing.

···

-----Original Message-----
From: Clifford Heath [mailto:no@spam.please.net]
Sent: Montag, 22. Oktober 2007 12:05
To: ruby-talk ML
Subject: Re: IronRuby...will it be like J++?

Classic divide and conquer, combined with a swamping strategy,
regardless of licensing issues. Divide the community and make the
smaller group irrelevant.

--
Phillip Gawlowski

Clifford Heath wrote:

Thufir wrote:

Could it be that Microsoft won't fully implement the language specifications, a la the J++ versus Java scenario?

They have no need to do that.

What are some potential issues down the road?

The issue is that many Ruby programs will be built that rely on
(i.e. benefit from) using facilities only available on MS platforms.
That's good if you need those programs, but the rest of us won't be
able to run them. The sheer size of the MS installed base means that
over time, there'll be no certainty for anyone new to Ruby about how
to find a program they can use. Almost all cross-platform Ruby program
will spawn MS-specific forks, and the community will divide into those
whose programs work on Microsoft and those who don't.

Note how this specifically hasn't happened with IronPython. At least, not to my knowledge. And that's less open than IronRuby.

···

--
Alex

Michael T. Richter wrote:

Yeah. Because that worked really well for them with Java.

It did on the desktop, where their installed base and revenue
stream is.

Now I am a Java hater, but even though I have to take defense for
these guys, they are great, nice people and I am not at all afraid of
them. Ok the chose Java instead of Smalltalk but for the rest they are
ok ;).
Yup I still believe that Java is not a better choice, technically, but
I might *easily be wrong*, right Charles?

Robert

···

On 10/22/07, Phil <cmdjackryan@googlemail.com> wrote:

> -----Original Message-----
> From: Clifford Heath [mailto:no@spam.please.net]
> Sent: Montag, 22. Oktober 2007 12:05
> To: ruby-talk ML
> Subject: Re: IronRuby...will it be like J++?
>
> Classic divide and conquer, combined with a swamping strategy,
> regardless of licensing issues. Divide the community and make the
> smaller group irrelevant.

First used by Sun in the Ruby space, since they took JRuby under their wing.

--
what do I think about Ruby?
http://ruby-smalltalk.blogspot.com/

What worked better for them there is that Java still basically sucks for
full-fledged applications even after all this time. Every time I fire
up a Java app I go out, make myself a fresh cup of tea, check on my
(snail)mail and just basically slack off for a while. When I get back
the app *MAY* have started. Unless that App is Eclipse in which case it
will likely have crashed. Failing that I've got a few more minutes of
waiting before it starts.

···

On Mon, 2007-22-10 at 20:00 +0900, Clifford Heath wrote:

Michael T. Richter wrote:
> Yeah. Because that worked really well for them with Java.

It did on the desktop, where their installed base and revenue
stream is.

--
Michael T. Richter <ttmrichter@gmail.com> (GoogleTalk:
ttmrichter@gmail.com)
All really first class designers are both artists, engineers, and men of
a powerful and intolerant temper, quick to resist the least modification
of the plans, energetic in fighting the least infringement upon what
they regard as their own sphere of action. (Nevil Shute)

Robert Dober wrote:

···

On 10/22/07, Phil <cmdjackryan@googlemail.com> wrote:

-----Original Message-----
From: Clifford Heath [mailto:no@spam.please.net]
Sent: Montag, 22. Oktober 2007 12:05
To: ruby-talk ML
Subject: Re: IronRuby...will it be like J++?

Classic divide and conquer, combined with a swamping strategy,
regardless of licensing issues. Divide the community and make the
smaller group irrelevant.

First used by Sun in the Ruby space, since they took JRuby under their wing.

Now I am a Java hater, but even though I have to take defense for
these guys, they are great, nice people and I am not at all afraid of
them. Ok the chose Java instead of Smalltalk but for the rest they are
ok ;).
Yup I still believe that Java is not a better choice, technically, but
I might *easily be wrong*, right Charles?

Time will tell :slight_smile:

- Charlie

Michael T. Richter wrote:

What worked better for them there is that Java still basically sucks for

full-fledged applications even after all this time. Every time I fire
up a Java app I go out, make myself a fresh cup of tea, check on my
(snail)mail and just basically slack off for a while. When I get back
the app *MAY* have started. Unless that App is Eclipse in which case it
will likely have crashed. Failing that I've got a few more minutes of
waiting before it starts.

Next, after MS took the bait Sun trotted out for them, and got sued, they "invented" C#. Despite clueless bookstore workers shelve this mixed in with C and C++, C# is really Java with some of the keywords searched-and-replaced. And the license terms rewritten.

···

--
  Phlip

Michael T. Richter wrote:

Michael T. Richter wrote:

Yeah. Because that worked really well for them with Java.

It did on the desktop, where their installed base and revenue
stream is.

What worked better for them there is that Java still basically sucks for
full-fledged applications even after all this time. Every time I fire
up a Java app I go out, make myself a fresh cup of tea, check on my
(snail)mail and just basically slack off for a while. When I get back
the app *MAY* have started. Unless that App is Eclipse in which case it
will likely have crashed. Failing that I've got a few more minutes of
waiting before it starts.

A few points:

I've met the core people working on IronRuby and JRuby. They are good people with integrity. While there are few guarantees in life, and especially so in software development, I believe the projects are in good hands and are not part of any nefarious scheme to fragment the user base.

I've worked with JRuby desktop apps. Speed is not an issue. I, too, used to dread the JVM start-up time, but it has become a non-issue. Better JVMs and faster machines has taken care of that. YMMV and all that.

Finally, bickering on ruby-talk accomplishes very little. Writing to Sun and Microsoft would be more useful.

···

On Mon, 2007-22-10 at 20:00 +0900, Clifford Heath wrote:

--
James Britt

"You harmonize; then you customize."
  - Wilson Pickett

James Britt wrote:

Finally, bickering on ruby-talk accomplishes very little. Writing to Sun and Microsoft would be more useful.

And for Sun, you can write me directly. I have no evil plans or pet cat (ok, I do have a cat, but I don't think the *cat* is evil anyway).

- Charlie

Phlip [mailto:phlip2005@gmail.com]:

C# is really Java with some of the keywords
searched-and-replaced. And the license terms rewritten.

Since I don't think that most folks on this list are tracking what's happening in C#, and that many folks appreciate beautiful code, here's something that I hacked up in the latest version of C# (3.0) that we're shipping by the end of the year (betas of this are currently available).

These are extension methods, which is a static form of monkey patching. Here we're adding the SelectCustomAttributes<T> generic method to both Type and MethodInfo:

static class ExtensionMethods {
    public static IEnumerable<T> SelectCustomAttributes<T>(this Type type) where T : Attribute {
        return type.GetCustomAttributes(typeof(T), false).Cast<T>();
    }

    public static IEnumerable<T> SelectCustomAttributes<T>(this MethodInfo method) where T : Attribute {
        return method.GetCustomAttributes(typeof(T), false).Cast<T>();
    }
}

Here's a LINQ query that uses the Reflection APIs (not modified at all to support LINQ) to retrieve all of the methods on type t that are marked with the RubyMethodAttributecustom attribute. Note the call to the extension method SelectCustomAttributes on the MethodInfo object returned from t.GetMethods().

Type t = GetTypeFromSomewhere();
var methods = (from m in t.GetMethods()
               where m.IsDefined(typeof(RubyMethodAttribute), false)
               select m.SelectCustomAttributes<RubyMethodAttribute>().First());

Note the use of the var keyword to infer the type of custom attributes (pretty obvious here, but sure beats typing it) from the query.

This code is part of a little utility that I wrote in IronRuby to determine how many methods that we have implemented in our libraries. Once I get SVN unwedged after my adventures yesterday you can grab that code to take a closer look.

Scott Hanselman also posted a version of my utility on his blog: http://www.hanselman.com/blog/TheWeeklySourceCode8.aspx

BTW, I'm fairly certain that you can't do this in Java today, but I could be mistaken.

-John

Next, after MS took the bait Sun trotted out for them, and got sued, they
"invented" C#. Despite clueless bookstore workers shelve this mixed in with
C and C++, C# is really Java with some of the keywords
searched-and-replaced. And the license terms rewritten.

Frankly, I think "C# is Java with replaced keywords" is the new
"Delphi is VB with replaced keywords". Maybe C# and Java are
technically similar (moreso than Delphi and VB), but that doesn't mean
their design rationales are. Maybe this wasn't obvious in the first
versions, but I think C# 3.0 looks really smart, in fact a lot like
what many C++09 proposals wish for too.

Julian

Ahh, but there's the rub! You never KNOW about cats, do you? <G>

···

On 10/22/07, Charles Oliver Nutter <charles.nutter@sun.com> wrote:

And for Sun, you can write me directly. I have no evil plans or pet cat
(ok, I do have a cat, but I don't think the *cat* is evil anyway).

--
Rick DeNatale

My blog on Ruby
http://talklikeaduck.denhaven2.com/

Shouldn't the emphasis have been on "think" instead of "cat"?

-Thufir

···

On Tue, 23 Oct 2007 01:31:23 +0900, Charles Oliver Nutter wrote:

And for Sun, you can write me directly. I have no evil plans or pet cat
(ok, I do have a cat, but I don't think the *cat* is evil anyway).

John Lam (DLR) wrote:

BTW, I'm fairly certain that you can't do this in Java today, but I could be mistaken.

Both are possible, along with other weird and wild things, through many third-party libraries for Java and non-standard JVM extensions. The difference is that they're not baked into standard Java, so they're generally not thought of as features of Java. C# and .NET in general include a lot of things as standard that are generally relegated to third-party libraries (often several incarnations) on the Java platform.

Of course, everything's possible everywhere; it's just a matter of how easy it is to get at.

- Charlie

require the cat singleton module

···

On Oct 22, 2007, at 1:54 PM, Rick DeNatale wrote:

On 10/22/07, Charles Oliver Nutter <charles.nutter@sun.com> wrote:

And for Sun, you can write me directly. I have no evil plans or pet cat
(ok, I do have a cat, but I don't think the *cat* is evil anyway).

Ahh, but there's the rub! You never KNOW about cats, do you? <G>

--
Rick DeNatale

My blog on Ruby
http://talklikeaduck.denhaven2.com/