Ddoc $(COMMUNITY $(D) vs Other Languages, $(BLOCKQUOTE To D, or not to D. -- Willeam NerdSpeare ) $(P This table is a quick and rough list of various features of $(D) that can be used to compare with other languages. While many capabilities are available with standard libraries, this table is for features built in to the core language itself. $(LINK2 builtin.html, Rationale). )
Feature | $(D) | ) $(TR $(TD Garbage Collection) $(YES1 garbage.html) ) $(TRFunctions | ) $(TR $(TD Function delegates) $(YES1 type.html#delegates) ) $(TR $(TD Function overloading) $(YES1 function.html#overload) ) $(TR $(TD Out function parameters) $(YES1 function.html#parameters) ) $(TR $(TD Nested functions) $(YES1 function.html#nested) ) $(TR $(TD Function literals) $(YES1 expression.html#FunctionLiteral) ) $(TR $(V1 $(TD Dynamic closures)) $(V2 $(TD Closures)) $(YES1 function.html#closures) ) $(TR $(TD Typesafe variadic arguments) $(YES1 function.html#variadic) ) $(TR $(TD Lazy function argument evaluation) $(YES1 lazy-evaluation.html) ) $(TR $(TD Compile time function evaluation) $(YES1 function.html#interpretation) ) $(TRArrays | ) $(TR $(TD Lightweight arrays) $(YES1 arrays.html) ) $(TR $(TD Resizeable arrays) $(YES1 arrays.html#resize) ) $(TR $(TD Built-in strings) $(YES1 arrays.html#strings) ) $(TR $(TD Array slicing) $(YES1 arrays.html#slicing) ) $(TR $(TD Array bounds checking) $(YES1 arrays.html#bounds) ) $(TR $(TD Array literals) $(YES1 expression.html#ArrayLiteral) ) $(TR $(TD Associative arrays) $(YES1 arrays.html#associative) ) $(TR $(TD Strong typedefs) $(YES1 declaration.html#typedef) ) $(TR $(TD String switches) $(YES1 statement.html#SwitchStatement) ) $(TR $(TD Aliases) $(YES1 declaration.html#alias) ) $(TROOP | ) $(TR $(TD Object Oriented) $(YES) ) $(TR $(TD Multiple Inheritance) $(NO) ) $(TR $(TD Interfaces) $(YES1 interface.html) ) $(TR $(TD Operator overloading) $(YES1 operatoroverloading.html) ) $(TR $(TD Modules) $(YES1 module.html) ) $(TR $(TD Dynamic class loading) $(NO) ) $(TR $(TD Nested classes) $(YES1 class.html#nested) ) $(TR $(TD Inner (adaptor) classes) $(YES1 class.html#nested) ) $(TR $(TD Covariant return types) $(YES1 function.html) ) $(TR $(TD Properties) $(YES1 property.html#classproperties) ) $(TRPerformance | ) $(TR $(TD Inline assembler) $(YES1 iasm.html) ) $(TR $(TD Direct access to hardware) $(YES) ) $(TR $(TD Lightweight objects) $(YES1 struct.html) ) $(TR $(TD Explicit memory allocation control) $(YES1 memory.html) ) $(TR $(TD Independent of VM) $(YES) ) $(TR $(TD Direct native code gen) $(YES) ) $(TRGeneric Programming | ) $(TR $(TD Class Templates) $(YES1 template.html) ) $(TR $(TD Function Templates) $(YES1 template.html) ) $(TR $(TD Implicit Function Template Instantiation) $(YES1 template.html) ) $(TR $(TD Partial and Explicit Specialization) $(YES1 template.html) ) $(TR $(TD Value Template Parameters) $(YES1 template.html) ) $(TR $(TD Template Template Parameters) $(YES1 template.html) ) $(TR $(TD Variadic Template Parameters) $(YES1 template.html) ) $(V2 $(TR $(TD Template Constraints) $(YES1 concepts.html) ) ) $(TR $(TD Mixins) $(YES1 template-mixin.html) ) $(TR $(TD static if) $(YES1 version.html#staticif) ) $(TR $(TD is expressions) $(YES1 expression.html#IsExpression) ) $(TR $(TD typeof) $(YES1 declaration.html#Typeof) ) $(TR $(TD foreach) $(YES1 statement.html#ForeachStatement) ) $(TR $(TD Implicit Type Inference) $(YES1 declaration.html#AutoDeclaration) ) $(TRReliability | ) $(TR $(TD Contract Programming) $(YES1 dbc.html) ) $(TR $(TD Unit testing) $(YES1 unittest.html#unittest) ) $(TR $(TD Static construction order) $(YES1 module.html#staticorder) ) $(TR $(TD Guaranteed initialization) $(YES1 statement.html#DeclarationStatement) ) $(TR $(TD RAII (automatic destructors)) $(YES1 memory.html#raii) ) $(TR $(TD Exception handling) $(YES1 statement.html#TryStatement) ) $(TR $(TD Scope guards) $(YES1 statement.html#ScopeGuardStatement) ) $(TR $(TD try-catch-finally blocks) $(YES1 statement.html#TryStatement) ) $(TR $(TD Thread synchronization primitives) $(YES1 statement.html#SynchronizedStatement) ) $(TRCompatibility | ) $(TR $(TD C-style syntax) $(YES) ) $(TR $(TD Enumerated types) $(YES1 enum.html) ) $(TR $(TD Support all C types) $(YES1 type.html) ) $(TR $(TD 80 bit floating point) $(YES1 type.html) ) $(TR $(TD Complex and Imaginary) $(YES1 type.html) ) $(TR $(TD Direct access to C) $(YES1 attribute.html#linkage) ) $(TR $(TD Use existing debuggers) $(YES) ) $(TR $(TD Struct member alignment control) $(YES1 attribute.html#align) ) $(TR $(TD Generates standard object files) $(YES) ) $(TR $(TD Macro text preprocessor) $(NO1 pretod.html) ) $(TROther | ) $(TR $(TD Conditional compilation) $(YES1 version.html) ) $(TR $(TD Unicode source text) $(YES1 lex.html) ) $(TR $(TD Documentation comments) $(YES1 ddoc.html) )
---|