February 05, 2003
In article <b1np1e$uq3$1@digitaldaemon.com>, Ken Carpenter says...
>
>"Daniel Yokomiso" <daniel_yokomiso@yahoo.com.br> wrote in message news:b1ke3d$1jd3$1@digitaldaemon.com...
>> But most of these come from the C-like languages, so it's not
>> like they are really providing a full range of languages. Eiffel# was
>> crippled to be able to compile cleanly to CIL.
>
>When they first brought Eiffel to .NET, it was, indeed, crippled.  The current version, however, supports all features of Eiffel, including mulitple inheritance.
>
>Here's a link describing how multiple inheritance works with Eiffel# under .NET.
>
>  http://www.devx.com/codemag/Article/8500
>
>
>Ken Carpenter
>

The major problem is that CIL doesn't provide multiple-inheritance or genericity, so if I'm writing a class in Python# (just an example), and I want to multiple inherit from two Eiffel for .net classes, I'll be in trouble. But If I want to Use VB to inherit from C#, no problem. This is what I mean by crippled.


February 12, 2003
"Ilya Minkov" <midiclub@8ung.at> wrote in message news:b1ot3f$1me2$1@digitaldaemon.com...
> Hi.
>
> It's really no sense complaining that the IL doesn't provide some ready primitive that would be good for your language, since normally you would be compiling into assembly and run into similar problems, if the IL allows a low level representation. But if it doesn't, you're sacked in.

If you only intend to program in the single language in question, then I would agree with you.

The .NET people, however, seem to have a desire to program in several languages at the same time.  If some of your languages treat the IL as a sort of instruction set and others treat map their language features to it one-to-one, then you will get a so-called "impedance mismatch" between the languages.

Using MI in Eiffel#, for instance, requires a C# user to know additional class names and to understand how the Eiffel# compiler "tricks" the system into providing MI when it wasn't originally intended to.

Whenever you try to add some new feature in a way not originally intended you are asking for trouble.  Sometimes the trouble is worth it.


Ken Carpenter


February 12, 2003
"Daniel Yokomiso" <Daniel_member@pathlink.com> wrote in message news:b1po0m$271h$1@digitaldaemon.com...
>
> The major problem is that CIL doesn't provide multiple-inheritance or genericity, so if I'm writing a class in Python# (just an example), and I
want
> to multiple inherit from two Eiffel for .net classes, I'll be in trouble.
But If
> I want to Use VB to inherit from C#, no problem. This is what I mean by crippled.

I would hardly fault Eiffel# for the limitations of CIL, Python#, VB and C#. It is certainly not Eiffel# that is crippled in that respect; it's all the other .NET languages!


Ken Carpenter


February 12, 2003
Wouldn't multiple inheritance as a generic feature of a language infrastructure force all the languages to support it? Besides, i haven't taken a deeper look at Eiffel yet (i should), their MI is said to be somehow "different" from C++.


Ken Carpenter wrote:
> "Ilya Minkov" <midiclub@8ung.at> wrote in message
> news:b1ot3f$1me2$1@digitaldaemon.com...
> 
>>Hi.
>>
>>It's really no sense complaining that the IL doesn't provide some ready
>>primitive that would be good for your language, since normally you would
>>be compiling into assembly and run into similar problems, if the IL
>>allows a low level representation. But if it doesn't, you're sacked in.
> 
> 
> If you only intend to program in the single language in question, then I
> would agree with you.
> 
> The .NET people, however, seem to have a desire to program in several
> languages at the same time.  If some of your languages treat the IL as a
> sort of instruction set and others treat map their language features to it
> one-to-one, then you will get a so-called "impedance mismatch" between the
> languages.
> 
> Using MI in Eiffel#, for instance, requires a C# user to know additional
> class names and to understand how the Eiffel# compiler "tricks" the system
> into providing MI when it wasn't originally intended to.
> 
> Whenever you try to add some new feature in a way not originally intended
> you are asking for trouble.  Sometimes the trouble is worth it.
> 
> 
> Ken Carpenter

February 12, 2003
In article <b2d150$2i6b$1@digitaldaemon.com>, Ken Carpenter says...
>
>
>"Daniel Yokomiso" <Daniel_member@pathlink.com> wrote in message news:b1po0m$271h$1@digitaldaemon.com...
>>
>> The major problem is that CIL doesn't provide multiple-inheritance or genericity, so if I'm writing a class in Python# (just an example), and I
>want
>> to multiple inherit from two Eiffel for .net classes, I'll be in trouble.
>But If
>> I want to Use VB to inherit from C#, no problem. This is what I mean by crippled.
>
>I would hardly fault Eiffel# for the limitations of CIL, Python#, VB and C#. It is certainly not Eiffel# that is crippled in that respect; it's all the other .NET languages!
>
>
>Ken Carpenter

I'm not blaming Eiffel# or trying to criticize it. If you read the thread again, you'll see that my point is: Eiffel had to be crippled to compile cleanly into CIL. IIRC I didn't said that Eiffel# was crippled (it being crap and the other languages are good stuff) but it had to be crippled (other languages are less comprehensive and Eiffel# had to give away some features).


February 14, 2003
In article <b2e59p$4cd$1@digitaldaemon.com>, Ilya Minkov says...
>
>Wouldn't multiple inheritance as a generic feature of a language infrastructure force all the languages to support it? Besides, i haven't taken a deeper look at Eiffel yet (i should), their MI is said to be somehow "different" from C++.
>

It's like saying that a infrastructure supporting arbitrary jumps and memory access would force all languages using this architecture to support it. A language with SI running on a MI environment could just require their users to be explicit in type inheritance vs. code inheritance, but use a single mechanism at runtime. Each model can simulate the other, but when you need to go through tricks to implement a feature it probably'll be language specific.

>
>Ken Carpenter wrote:
>> "Ilya Minkov" <midiclub@8ung.at> wrote in message news:b1ot3f$1me2$1@digitaldaemon.com...
>> 
>>>Hi.
>>>
>>>It's really no sense complaining that the IL doesn't provide some ready primitive that would be good for your language, since normally you would be compiling into assembly and run into similar problems, if the IL allows a low level representation. But if it doesn't, you're sacked in.
>> 
>> 
>> If you only intend to program in the single language in question, then I would agree with you.
>> 
>> The .NET people, however, seem to have a desire to program in several languages at the same time.  If some of your languages treat the IL as a sort of instruction set and others treat map their language features to it one-to-one, then you will get a so-called "impedance mismatch" between the languages.
>> 
>> Using MI in Eiffel#, for instance, requires a C# user to know additional class names and to understand how the Eiffel# compiler "tricks" the system into providing MI when it wasn't originally intended to.
>> 
>> Whenever you try to add some new feature in a way not originally intended you are asking for trouble.  Sometimes the trouble is worth it.
>> 
>> 
>> Ken Carpenter
>


February 14, 2003
"Daniel Yokomiso" <Daniel_member@pathlink.com> wrote in message news:b2ekno$dup$1@digitaldaemon.com...
> I'm not blaming Eiffel# or trying to criticize it. If you read the thread
again,
> you'll see that my point is: Eiffel had to be crippled to compile cleanly
into
> CIL. IIRC I didn't said that Eiffel# was crippled (it being crap and the
other
> languages are good stuff) but it had to be crippled (other languages are
less
> comprehensive and Eiffel# had to give away some features).

Your point was quite clear.  I simply pointed out that it was incorrect.

When Eiffel# was first released, there were some features missing since they were harder to fit into the CIL model.  The current version of Eiffel#, however, is a full implementation of Eiffel including MI and genericity.

You are certainly correct that CIL does not directly support MI, genericity or DbC (most unfortunate ommissions IMO) , but again, that in no way reflects on Eiffel#, so including it in your example of a Python# class is a red herring.  If you want to write a Python# class that inherits from multiple .NET classes you're in trouble regardless of which other .NET language the base classes were developed in.

Anyway, since this has nothing to do with distributed compilation or D, I will not say anymore on the subject. ;-)



Ken Carpenter


1 2
Next ›   Last »