7

The C program Prog when ported to Java would be called JProg, a port to C++ would be Prog++ and a port to Python would be called PyProg. These names are all quite obvious. But the C# port would be called IronProg, which strikes me as strange.

Why is it that programs ported to Visual Basic or C# are often called Iron*?

Examples: IronPython, IronScheme, IronRuby, etc.

Adam Lear
  • 32,039
jforberg
  • 172
  • Perhaps, marketing? – FishBasketGordo Dec 13 '11 at 18:36
  • Most of the programs or tools tend to be called something-sharp or nSomething. Now the language conversions were IronRuby and IronPython . . . – Wyatt Barnett Dec 13 '11 at 18:36
  • 5
    Because .NET is strong – Raynos Dec 13 '11 at 18:36
  • 1
    It's not ported to C#, it's ported to .NET - doesn't answer the question, but an important distinction and there are quite a few programs called *.NET (e.g. Paint.NET, and Visual Studio had a .NET in it for one version). –  Dec 13 '11 at 18:36
  • 3
    See this thread with John Skeets excellent answer: http://stackoverflow.com/questions/1194309/why-are-many-ports-of-languages-to-net-prefixed-with-iron – Falcon Dec 13 '11 at 18:39
  • None of the projects you mentioned are ports. IronRuby, for example, is an independent new development effort, unlike, for example, JRuby, which started out as a port of MRI to the Java platform or MacRuby, which started out as a port of YARV to the Objective-C/Cocoa platform (although both of those have since been completely rewritten several times). The same goes for IronPython, which, despite being written by the same person who also wrote Jython is not a port of either Jython or CPython. Quite the opposite: it gets a lot of its performance by being completely unlike CPython or Jython. – Jörg W Mittag Dec 13 '11 at 19:03
  • IronLisp, IronScheme, IronJS and IronPHP are also not ports. IronJS, for example, is a straightforward implementation directly from the ECMA-262 5th Ed. ECMAScript specification and IronScheme is a similarly straightforward implementation of the R6RS Scheme specification. – Jörg W Mittag Dec 13 '11 at 19:04
  • Something about getting rusty, may be? – SK-logic Dec 13 '11 at 21:13

1 Answers1

11

Are they? I've mostly seen stuff with 'N' at the beginning, e.g., "NHibernate", "nUnit", "NAnt", "Noda Time", etc.

There's an "IronLanguages" project that does IronPython, IronRuby, etc., but it seems mostly to be concentrating on porting programming languages to the CLR.

Here's a blog post explaining the name. It quotes the creator of the IronPython project:

I'll give you the story, but I'll give you the short version 'cause it's not very good.

At the time, I had a consulting company called "Want of a Nail Software". "Want of a Nail" is based on a children's poem. It's about the importance of small things. I've always kind of believed in the importance of small things. Part of the story of IronPython's actual performance is it wasn't one big thing - Everybody wants to know "What was the one big thing?" There were some big things, but most of it was all the small things - paying attention to performance in every place.

So, that was the consulting company and "Iron" seemed to match.

There were some obvious names: Python.Net, Python#, nPython - All of those were taken. All of the URLs for those were registered.

I didn't want to reuse any of those names, so "Iron" was just kind of a name that appealed to me at a visceral level - I like the feeling of "IronPython".

There's a little bit of "Iron Chef" in it, although I'm always reluctant to admit that.

Glorfindel
  • 3,137
Adam Jaskiewicz
  • 1,128
  • 7
  • 8