June 09, 2003
>>>>> "Ilya" == Ilya Minkov <webmaster@midiclub.de.vu> writes:

Ilya> Hello.  Fans of the D Programming Language by Walter Bright Ilya> have been working on a chart to compare D with all kinds of Ilya> other programming languages.

Ilya> We would like to invite people who know respective languages Ilya> to contribute here.

Ilya> http://www.prowiki.org/wiki4d/wiki.cgi?LanguagesVersusD


As that page is absolutely uneditable, here my comments:


Nested functions        No
Function literals       don't know what that is
Dynamic closures        are there static closures? Eiffel supports closures
Non-class functions     No

Arrays
Lightweight arrays      What's a lightweight array?
Resizeable arrays       Yes
Arrays of bits          Yes (obsolete)
Built-in strings        Eh, there are no special cases in Eiffel
Array slicing           Yes
Array bounds checking   Yes
Associative arrays      Not in the language *definition* (of course), lots of
libraries provide them, all Eiffel compilers
ship with one.
Strong typedefs         what's a typedef? Eiffel is statically typed.
String switches         what's that?
Aliases                 what's that?

OOP
Object Oriented         Yes
Multiple Inheritance    Yes
Interfaces              Yes
Operator overloading    No
Modules                 it has clusters. There is no such thing as a
module name space. Works a bit different.
Dynamic class loading   Depends on your version, Eiffel.Net does this.
Inner classes           No
Covariant return types  Yes

Performance
Inline assembler	         No (you have inline C, and most of Eiffel
programmers consider C a portable assembly language)
Direct access to hardware  You can call any API/C func you want
Lightweight objects        what's that?
Explicit memory allocation control	Yes (in library)
Independent of VM                   Yes
Direct native code gen     Depends on compiler
Templates                  No (but it has generics and that's probably
a question you want to ask)

Reliability
Design by Contract	       Yes
Unit testing               Eh? You can write your own test, there are
test frameworks. And for Eiffel it would be
class testing.
Static construction order	 What's that?
Guaranteed initialization  Yes
RAII                       What's that?
Exception handling         Yes, but works quite different.
try-catch-finally blocks	 No, it has try-catch-(retry) blocks
Thread synchronization primitives	 Yes, not implemented by compilers

Compatibility
Algol-style syntax	        Yes
Enumerated types            No
Support all C types         No (probably)
Long double floating point  Hmm, depends on compiler probably
Complex and Imaginary       In library
Direct access to C          Yes
Use existing debuggers      No
Struct member alignment control	  No
Generates standard object files	  Yes
Independent of macro preprocessor	Eh, what's that?

Other
Conditional compilation     No

Regards,

Berend.
  ** you're welcome to the #eiffel irc channel on irc.freenode.net
June 09, 2003
I've gone ahead and inserted your comments into the chart. Categories on which you were either not specific or had questions on were left blank. Please check for accuracy!

Andrew

"BErend de Boer" <BErend_member@pathlink.com> wrote in message news:bc2sot$185m$1@digitaldaemon.com...
> >>>>> "Ilya" == Ilya Minkov <webmaster@midiclub.de.vu> writes:
>
> Ilya> Hello.  Fans of the D Programming Language by Walter Bright Ilya> have been working on a chart to compare D with all kinds of Ilya> other programming languages.
>
> Ilya> We would like to invite people who know respective languages Ilya> to contribute here.
>
> Ilya> http://www.prowiki.org/wiki4d/wiki.cgi?LanguagesVersusD
>
>
> As that page is absolutely uneditable, here my comments:
>
>
> Nested functions        No
> Function literals       don't know what that is
> Dynamic closures        are there static closures? Eiffel supports
closures
> Non-class functions     No
>
> Arrays
> Lightweight arrays      What's a lightweight array?
> Resizeable arrays       Yes
> Arrays of bits          Yes (obsolete)
> Built-in strings        Eh, there are no special cases in Eiffel
> Array slicing           Yes
> Array bounds checking   Yes
> Associative arrays      Not in the language *definition* (of course), lots
of
> libraries provide them, all Eiffel compilers
> ship with one.
> Strong typedefs         what's a typedef? Eiffel is statically typed.
> String switches         what's that?
> Aliases                 what's that?
>
> OOP
> Object Oriented         Yes
> Multiple Inheritance    Yes
> Interfaces              Yes
> Operator overloading    No
> Modules                 it has clusters. There is no such thing as a
> module name space. Works a bit different.
> Dynamic class loading   Depends on your version, Eiffel.Net does this.
> Inner classes           No
> Covariant return types  Yes
>
> Performance
> Inline assembler          No (you have inline C, and most of Eiffel
> programmers consider C a portable assembly language)
> Direct access to hardware  You can call any API/C func you want
> Lightweight objects        what's that?
> Explicit memory allocation control Yes (in library)
> Independent of VM                   Yes
> Direct native code gen     Depends on compiler
> Templates                  No (but it has generics and that's probably
> a question you want to ask)
>
> Reliability
> Design by Contract        Yes
> Unit testing               Eh? You can write your own test, there are
> test frameworks. And for Eiffel it would be
> class testing.
> Static construction order What's that?
> Guaranteed initialization  Yes
> RAII                       What's that?
> Exception handling         Yes, but works quite different.
> try-catch-finally blocks No, it has try-catch-(retry) blocks
> Thread synchronization primitives Yes, not implemented by compilers
>
> Compatibility
> Algol-style syntax         Yes
> Enumerated types            No
> Support all C types         No (probably)
> Long double floating point  Hmm, depends on compiler probably
> Complex and Imaginary       In library
> Direct access to C          Yes
> Use existing debuggers      No
> Struct member alignment control   No
> Generates standard object files   Yes
> Independent of macro preprocessor Eh, what's that?
>
> Other
> Conditional compilation     No
>
> Regards,
>
> Berend.
>   ** you're welcome to the #eiffel irc channel on irc.freenode.net