June 09, 2003 Eiffel comments | ||||
---|---|---|---|---|
| ||||
>>>>> "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 Re: Eiffel comments | ||||
---|---|---|---|---|
| ||||
Posted in reply to BErend de Boer | 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 |
Copyright © 1999-2021 by the D Language Foundation