Таблица сранения языкво от создателей D поправленная мной
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.05.06 15:53
Оценка: 62 (15) -1 :))) :))) :))) :)))
Feature D C C++ C# Java Nemerle
Garbage Collection Yes- No No Yes Yes Yes
Functions D C C++ C# Java Nemerle
Function delegates Yes No No Yes No Yes+
Function overloading Yes No Yes Yes Yes Yes
Out function parameters Yes Yes Yes Yes No Yes
Nested functions Yes No No No No Yes+
Function literals Yes No No No No Yes ???
Dynamic closures Yes No No Yes No Yes+
Typesafe variadic arguments Yes No No Yes Yes Yes
Arrays D C C++ C# Java Nemerle
Lightweight arrays Yes Yes Yes Yes No No
Resizeable arrays Yes No No No No No
Built-in strings Yes No No Yes Yes Yes
Array slicing Yes No No No No No*
Array bounds checking Yes No No Yes Yes Yes
Associative arrays Yes No No No No No
Strong typedefs Yes No No No No No
String switches Yes No No Yes No Yes+
Aliases Yes Yes Yes No No Yes
OOP D C C++ C# Java Nemerle
Object Oriented Yes No Yes Yes Yes Yes
Multiple Inheritance No No Yes No No No
Interfaces Yes No Yes Yes Yes Yes
Operator overloading Yes No Yes Yes No Yes+
Modules Yes No Yes Yes Yes Yes
Dynamic class loading No No No Yes Yes Yes
Nested classes Yes Yes Yes Yes Yes Yes
Inner (adaptor) classes Yes No No No Yes No*
Covariant return types Yes No Yes No Yes No
Properties Yes No No Yes No Yes
Performance D C C++ C# Java Nemerle
Inline assembler Yes Yes Yes No No No
Direct access to hardware Yes Yes Yes No No No
Lightweight objects Yes Yes Yes Yes No Yes
Explicit memory allocation control Yes Yes Yes No No No
Independent of VM Yes Yes Yes No No No
Direct native code gen Yes Yes Yes No No No
Generic Programming D C C++ C# Java Nemerle
Class Templates Yes No Yes Yes Yes Yes
Function Templates Yes No Yes Yes Yes Yes
Implicit Function Template Instantiation No No Yes No No No
Partial and Explicit Specialization Yes No Yes No No No
Value Template Parameters Yes No Yes No No No
Template Template Parameters Yes No Yes No No No
Mixins Yes No No No No No* (plan)
static if Yes No No No No
is expressions Yes No No No No
typeof Yes No No Yes Yes (instanceof) Yes
foreach Yes No No Yes Yes Yes+
Implicit Type Inference Yes No No No No Yes+
Reliability D C C++ C# Java Nemerle
Contract Programming Yes No No No No Yes*
Unit testing Yes No No No No No*
Static construction order Yes No No Yes Yes Yes
Guaranteed initialization Yes No No Yes Yes Yes
RAII (automatic destructors) Yes No Yes Yes No Yes
Exception handling Yes No Yes Yes Yes Yes
Scope guards Yes No No No No Yes+
try-catch-finally blocks Yes No No Yes Yes Yes
Thread synchronization primitives Yes No No Yes Yes Yes*
Compatibility D C C++ C# Java Nemerle
C-style syntax Yes Yes Yes Yes Yes ~Yes
Enumerated types Yes Yes Yes Yes Yes Yes
Support all C types Yes Yes No No No No
80 bit floating point Yes Yes Yes No No No
Complex and Imaginary Yes Yes No No No No
Direct access to C Yes Yes Yes No No No
Use existing debuggers Yes Yes Yes Yes ??? No Yes ???
Struct member alignment control Yes No No Yes No Yes
Generates standard object files Yes Yes Yes No No No
Macro text preprocessor No Yes Yes No No
Other D C C++ C# Java Nemerle
Conditional compilation Yes Yes Yes Yes No Yes
Unicode source text Yes Yes Yes Yes Yes Yes
Documentation comments Yes No No Yes Yes No (plan)
+ — означает, что во много раз круче чем в приведенных языках.
* — означает, что реализовано на макросах или реализуется на макросах.
— — возможность поддерживается слабо.
??? — бредовый вопрос.
— смешной вопрос, вызванный убогостью D в рассматриваемом вопросе.

Теперь стоит привести еще одну таблицу.
Feature D C C++ C# Java Nemerle
Functionam programming suport D C C++ C# Java Nemerle
pattern matching No No No No No Yes
lambda support Yes No No Yes No Yes+
Partial application No No No No No Yes
All statment is expression No No No No No Yes
Support Linken Lists in language No No No No No Yes+
Other D C C++ C# Java Nemerle
Extended local type inference No No No No No Yes+
Extention methods No No No No (plan) No Yes+
yield coninuatons No No No Yes No Yes
Constrans on type parametrs No No (plan) No Yes Yes Yes
Indexers (propery[...]) ??? No No Yes No Yes+
Default parameter value ??? Yes No No No Yes
Attrubutes (extending metedata) No No No Yes Yes Yes
Named parametrs No No No No No Yes
Type safe variant data type No No No No No Yes
Nulable type No No No Yes No Yes
Pattern imlementation No No No No No Yes
Console interpreter No No No No No Yes
Type safe variant data type No No No No No Yes
Tuple data type (anonymous type) No No No No (plad-) No Yes
Multiple dispatching No No No No No Yes
Spliced strings ( $" xxx $(x + 1) yyy" notation) No No No No No Yes
Lazy evaluation No No No No No Yes
Metaprograming D C C++ C# Java Nemerle
Metaprograming support Bad (static calcs) Bad (textual macro) Bad (textual macro, template side affect) No No Yes+ (AST based macros)
Tuting complete mete-language No No No No No Yes
Mete-language is same language No No No No No Yes
Compiled meta-code No No No No No Yes
Fast meta-code No No No No No Yes
Analyse AST No No No No No Yes
Report clear and intelligible error and diagnostic message No No No No No Yes
Modify syntax No No No No No Yes
Simplify code generation No No No No No Yes (quasi-quotation, splising)
Internal DSL support No No Bad No No Yes+
Interaction with copiler No No No No No Yes+
Useful macros in stdlib No No No No No Yes
Modify AST No No No No No Yes
IDE D C C++ C# Java Nemerle
IDE suport No Bad Bad Yes+ Yes+ No (plan)
Refactoring No Bad Bad Yes+ Yes+ No (plan)
Надеюсь ошибся не много. Если что поправим.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.