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

-----Original Message-----
From: news [mailto:[email protected]] 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.

Phil wrote:

-----Original Message-----
From: news [mailto:[email protected]] 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


James B.

“Take eloquence and wring its neck.”

  • Paul Verlaine

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 H…

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.

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

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.

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

On Mon, 2007-22-10 at 20:00 +0900, Clifford H. 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.

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.

-----Original Message-----
From: Clifford H. [mailto:[email protected]]
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.

Clifford H. wrote:

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.

On 10/22/07, Phil [email protected] wrote:

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?

Robert

Robert D. wrote:

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

James B. 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

On 10/22/07, Charles Oliver N. [email protected] 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?


Rick DeNatale

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

Michael T. Richter wrote:

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.


James B.

“You harmonize; then you customize.”

  • Wilson Pickett

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

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

require the cat singleton module

Thufir wrote:

On Tue, 23 Oct 2007 01:31:23 +0900, Charles Oliver N. 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).

Shouldn’t the emphasis have been on “think” instead of “cat”?

Caught!

  • Charlie

On Tue, 23 Oct 2007 01:31:23 +0900, Charles Oliver N. 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).

Shouldn’t the emphasis have been on “think” instead of “cat”?

-Thufir

Phlip [mailto:[email protected]]:

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 generic method to both
Type and MethodInfo:

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

public static IEnumerable<T> SelectCustomAttributes<T>(this 

MethodInfo method) where T : Attribute {
return method.GetCustomAttributes(typeof(T), false).Cast();
}
}

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().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

John L. (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