Talk:Common Language Infrastructure

From Wikipedia, the free encyclopedia

This article is part of the .NET WikiProject, an attempt to improve and organize the .NET content on Wikipedia. If you would like to participate, you can edit the article attached to this page, or visit the project page, where you can join the project and/or contribute to the discussion.
Start This article has been rated as start-Class on the quality scale.
High This article has been rated as high-importance on the importance scale.

Contents

[edit] cli

Common language infrastructure (CLI)is a term which gives no results when run on the Microsoft web site]. But Common language runtime is not much better (4 hits). And Common language runtime gives a lot of hits, but they seem to be Java related.

A general google search on Common Language Infrastructure and Common Language Runtime gives a considerable amount of results. But sorting out needs its time.

I would like to see an article which translates the Microsoft speak into commonly known computing terms. The stub above is a first attempt at this. Perhaps it should be moved to another heading. -- Kwaku

CLI as seen with the eyes of a Java proponent: http://www.javalobby.org/clr.html (link put here to consult for further work on the article)


I removed some stuff because it was copied without even some decent formatting from http://hosting.msugs.ch/dotnetrox/vb/Ch01.html -- Jan Hidders 20:47 Sep 7, 2002 (UTC)

[edit] Inter-language integration in the open source world

One of the strengths of CLR seems to be that it allows lots of different languages to be integrated and call each others' code. The code to produce and use DLL assemblies in many languages is quite simple. Is there any similar "inter-language integration" layer in Linux, or in the open source world? I have used SWIG and Boost, however, I'm more asking whether it is possible to not merely export C++ code into various languages, but rather, to share code between pairs of arbitrary languages. For example, is it possible to take a CPAN Perl module and call it from Python, or export a Tcl module and a Ruby module and call each of these from clisp? If the necessary technology to do this does not exist, then I'd like to know that as well. Thanks. Connelly 00:08, 21 July 2006 (UTC)

The easier part of the problem is the parameter-passing mechanism: different languages use different techniques to pass values or references to called methods. Some push only references, while others push values or references depending on the parameter type and options. So its a difficult problem even if the parameter types are limited to integers and reals. Stepping up the complexity a bit, consider dates: each language has its own internal representation of a date value that would be incompatible with that of another language. Decimal values, ditto. And when you get to passing references to structure memory like objects, forget it. Perl would have no way to interpret an instance of a Python object: the internal representation of that object is totally foreign to Perl.
COM and COBRA were earlier attempts to support inter-language calls by forcing representations into a commonly understood format. They've had limited success due to complexity and inherent limitations. COM is still used pretty commonly on MS platforms CORBA is the non-Windows implementation of similar technology, but I have the impression that is a failed technology. (I'm sure someone will disagree, and that's fine.)
Hope this helps.
Thanks, that does help. I noticed that if I google specific pairs of languages, such as Tcl+Python integration, I can often find mechanisms for working with the given two languages at once, such as [1]. Perhaps in the open source world, inter-language integration is typically done over the Web: via app-specific protocols, SOAP, CORBA, XML-RPC, .... That is a fine answer; I just wondered if I was naive and didn't "know" how inter-language integration was done in the OSS world. There are also some discontinued research projects like ILU and Flick which seem to be focused on this same goal.
Found what I was looking for. The open source world has copied Microsoft's OLE and COM with technologies such as KPart and Bonobo. - Connelly 23:18, 2 August 2006 (UTC)

[edit] Category

I noticed that the article has no category. Maybe separate Category:Microsoft .NET should be created? --Derbeth 19:42, 3 Apr 2005 (UTC)

I've put it in the already-existing Category:.NET programming languages. ··gracefool | 05:13, 5 Apr 2005 (UTC)

My understanding is that the CLR (Common Language Runtime) is not technically a virtual machine. It does not run IL code, it loads and compiles it. The architecture is designed to provide a platform-neutral layer similar to that provided by Java's Virtual Machine, but the mechanism is different.

[edit] Implementations

I've repositioned the implementations section to logically follow Standardization and Licensing. A question regarding MS .NET FW there: why is it called 'commercial' if it's available for free download? --tyomitch 08:45, 2 September 2005 (UTC)

I labelled it as such because it is a heart of their commercial .NET offering, and to emphasize the fact that it's a closed-source implementation Microsoft uses for profit. Hope that makes some sort of sense. :) -- Foofy 18:12, 4 October 2005 (UTC)

[edit] Implementations / CLI and CLR

I'll address this on the project page, but the CLI is a spec, and the CLR is an implementation of CLI plus libraries, etc., so it makes more sense to put the implementations in the CLR article. -- Foofy 18:12, 4 October 2005 (UTC)

Hi Foofy! Long time! Does Foofy got something to do with Footbal fan?! ;) I suggest that the section to be kept as it is and develop it in the CLR article. We can add later on a reference to that from here. Cheese -- Svest 18:57, 4 October 2005 (UTC)  Wiki me up™
This article says that the CLR "contains aspects outside the scope of the specification" however the CLR article says that the CLR is an implementation of the CLI. Those statements seem contradictory to me. 76.87.181.194 04:24, 16 November 2007 (UTC)

[edit] patents

Can we get some more information about the patents held on the Common Language Infrastructure? They're pretty significant for projects like DotGNU and Mono. Is there a chance these projects will one day be attacked my Microsoft and forced to stop? Herorev 00:26, 23 September 2007 (UTC)

[edit] sentence

While Microsoft and their partners hold patents for CLI, ECMA and ISO require that all patents essential to implementation be made available under "reasonable and non-discriminatory (RAND) terms."

does that sentence make sense? —Preceding unsigned comment added by 201.152.52.113 (talk) 08:51, 11 December 2007 (UTC)