Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News In Case You Missed It: A .NET OpenID Library

In Case You Missed It: A .NET OpenID Library

For those of you looking at using OpenID, there is a .NET compatible library available. The Library was written in Boo, a .NET language inspired by Python. It also leverages a library from the Mono project.
There is a surprising amount of backlash over this library. Not because of the normal Open Source vs. Microsoft debates we see so often, but rather because it was written in Boo instead of C#. One commenter wrote:
Why on earth its not on c#, Visual Basic or Delphi at least? Why take exotic language for public library? How one would add changes to library implementation without knowing something extraudinary like chinese. Do you know that english and c# are standard in communication- one in speech and another in programming in dotnet?
Another says:
I think that open libraries must be on common and standard language. For DOTNET is C#. Other language is exotic way to make troubles for programmers. We did openId server implementation ourselves on C#, its difficult and errorprone. Industry needs library on standard languages!
Other comments were more charitable:
While C# may be the most common language in .NET, the entire point and spirit of .NET is that you can write in any language and your program/library interops with anything else. If this author provides a useful library to you that happens to be written in Boo, thank him for the library and use it as a compiled library if you don't want to work in Boo. Ungrateful people. grumble grumble
Scott Hanselman wrote of his attempts to convert the library from Boo to C# in The Programmer Phases of Grief: or Language Translation is Harder Than It Looks. He opens with his first impressions:
I was of course, like any religious zealot C# programmer, shocked and offended and looked on with disbelief that anyone would use any language that wasn't the One True Way® to produce perfectly viable and runnable IL. Microsoft's whole multi-language, single-runtime was just to prove a point to the Java guys right? I looked at the code with disdain
No curly braces? Duck typing? Is this how these people live and code? Freaks. Toy Languages, man, toy languages.
After describing many of the translation techniques he tried such as manually rewriting or the .NET Reflector, he has a realization:
Wait a second. I've already got a library that works. It's got unit tests. It depends on a tested and released Mono library and a 3 year old non-mainstream language, but it works. It's been used and implemented live before and someone has already wrapped it into an even better and more useful abstraction. Maybe it'll work after all.
The “better and more useful abstraction” he refers to is the ASP.NET 2.0 Web Control that Andrew Arnott created.
InfoQ Asks: Does it matter what language an open source, .NET compatible library is writen in?

Rate this Article


Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • InfoQ Asks: Does it matter what language an open source, .NET compatible li

    by Eirik Mangseth,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Of course not. Why should it? If it is well written (and documented), comes with unit tests, then it is for the "market" to decide whether it is a viable option or not. Maybe those C#-only people should heed the advice of The Pragmatic Programmers ( and learn one new language every year, just to stay on top of things.

    Eirik M

  • RE: InfoQ Asks

    by Tomas Petricek,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Hi, I think it's difficult question -

    If the library is open-source and you may need to modify than exotic language can be problematic for two reasons. First problem is that it will be difficult to find a developer who can do this and second problem is that compliler may be no longer supported (which will make it impossible to modify library). If you know that you won't need to modify it and it is well tested than I don't see any reasons for not using it. And finally, if the library is commercially supported than the use of exotic language is not a problem at all.

    One additional reason for not using library like this is that exotic languages may create classes with "strange" interface, but I think that Boo is allright from this point of view.


  • Missing the point entirely

    by Christian Romney,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Isn't the whole value proposition of the .NET framework the fact that you can consume libraries written in other .NET languages? Talk about missing the big picture. And if Boo is too difficult for someone to learn, they have no business trying to patch open source software. I guess when all you have is a hammer....

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p