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