InfoQ

News

In Case You Missed It: A .NET OpenID Library

Posted by Jonathan Allen on Feb 23, 2007 03:19 PM

Community
.NET
Topics
Dynamic Languages ,
Interop
Tags
OpenID ,
Boo ,
Mono ,
C#
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?
 

3 comments

Reply

InfoQ Asks: Does it matter what language an open source, .NET compatible li by Eirik Mangseth Posted Feb 24, 2007 3:15 AM
RE: InfoQ Asks by Tomas Petricek Posted Feb 25, 2007 11:24 AM
Missing the point entirely by Christian Romney Posted Jul 26, 2007 4:00 PM
  1. 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 (www.pragmaticprogrammer.com) and learn one new language every year, just to stay on top of things.

    Eirik M

  2. Back to top

    RE: InfoQ Asks

    Feb 25, 2007 11:24 AM by Tomas Petricek

    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.

    Tomas

  3. Back to top

    Missing the point entirely

    Jul 26, 2007 4:00 PM by Christian Romney

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

Exclusive Content

Dan Farino About MySpace’s Architecture

Dan Farino talks about the system architecture and the challenges faced when building a very large online community. Dan explains how a .NET product scales on hundreds of servers.

The Maxine VM

Bernd Mathiske discusses Maxine VM, Java compatibility, swapping major VM components, research areas, Object handling, code examples, optimizing compiler, snippets, bytecode generation, JNI and JIT.

Joe Armstrong About Erlang

Joe Armstrong speaks on various aspects of the Erlang language, presenting its roots, how it compares with other languages and why it has become popular these days.

The Limits of Code Optimization: a new Singleton Pattern Implementation

The java double-check singleton pattern is not thread safe and can’t be fixed. In this article, Dr. Alexey Yakubovich provides an implementation of the Singleton pattern that he claims is thread-safe.

Pressure and Performance – The CTO's Dilemma

Diana and Jim talk about patterns observed in CTOs' activity. CTOs emerge as real people caring for other people in their organization, and are put under a lot of pressure and constraints.

Biztalk Services in the Cloud

Cloud computing feels like a tomorrow technology. Simon Thurman shows how developers can use Biztalk to create an Internet Service Bus which can be deployed locally or in the cloud.

Java FX Technology Preview

InfoQ takes a look at the JavaFX preview build and talks to Sun Staff Engineer Joshua Marinacci about the upcoming version 1 release expected this autumn.

Jeff Sutherland: Reaching Hyper-Productivity with Outsourced Development Teams

Jeff Sutherland, co-creator of Scrum, and Guido Schoonheim, CTO of Xebia, present an actual case of reaching hyper-productivity with a large distributed team using XP and Scrum.