D Programming Language
Fast code, fast.
D is a programming language with an emphasis on powerful metaprogramming facilities on top of a robust, efficient core. Idiomatic D programs are commonly as fast as hand-optimized C code, while being reportedly shorter and easier to write, read, and change. A gradual approach to memory safety allows safe programs to be largely automatically checked, whilst relying on small and fast manually-verified primitives.
Metaprogramming in the D language relies on three core features. First, compile-time evaluation allows user code to evaluate most D code (except calls into opaque functions or certain casts) during compilation. This allows for unparalleled compile-time processing abilities, without the need to learn a different metalanguage. Second, static introspection allows D artifacts (such as modules, types, functions) to be inspected during compilation. This allows for component designs that adapt to one another at assemblage time, eliminating the rigidity of fixed interfaces - a paradigm becoming increasingly known as "Design by Introspection". Third, the D language allows strings computed during compilation to be fed back to the compiler. This allows arbitrarily complex code to be built from compact specifications such as regular expressions, EBNF/PEG grammars, SQL, automata, and many other DSLs. Each of these three pillars is enabled by the others, and the absence of any one of them would hamstring the power of the others.
D's rich feature set offers many opportunities to a variety of projects, without them being ostensibly related to advanced metaprogramming facilities. High-performance code can be terse and highly optimized without the tedium of repeated coding patterns or hand-written specializations. Highly dynamic code can combine static and dynamic language features in an expressive whole. The best, most innovative ways to use the D language are yet to be discovered.
You can learn more about D's feature set and design at dlang.org
D Programming Language 2019 Projects
Dataframes for DThis project aims at bringing native dataframes to D Programming Language. The main task would be to implement a dataframe which supports...
Header generation for C/C++Automated C/C++ header generation from D files
Independency of D from the C Standard LibraryAn effort to decouple D from the C standard library.
Reference-Counted Data Structures for DCurrently, D’s built-in data structures (arrays and associative arrays) and Phobos collections (e.g. std.container.rbtree) rely on garbage...
Replace Runtime Hooks with TemplatesD’s betterC mode is an important tool to be able to use D on bare-metal and embedded platforms. By disabling, for example the class support, the...