What library functionality would you most like to see in D?

KennyTM~ kennytm at gmail.com
Sun Jul 31 14:54:38 PDT 2011


On Jul 31, 11 13:27, Jonathan M Davis wrote:
> I think that it would be useful to query the community for what piece of
> library functionality they don't currently have in D and would most like to
> see. For instance, there is no official logging framework in D or any 3rd party
> libraries which do it AFAIK. So, that could be one type of functionality that
> you may like to see. Now, there is a prospective implementation for std.log
> which shouldn't be all that far away from being reviewed, so listing that here
> wouldn't be all that useful, since it's on its way. But what other major
> functionality do you miss in D that other languages' that you use have
> available in their libraries?
>
> My hope here would be that we could get some good ideas going here such that
> we have can have a better idea what type of functionality it would be
> particularly useful to be working on for Phobos or 3rd party D libraries for
> the community, and maybe it'll even get some people to actually go and work on
> these ideas so that we can improve the libraries that we have to work with in
> D. We can always use more help, and we definitely need a richer library
> ecosystem for D. But even just discussing ideas could be of benefit.
>
> So, what major functionality which we don't currently have would you like to
> see in either Phobos or in a 3rd party library so that you could use it in
> your D programs?
>
> - Jonathan M Davis

1. An officially endorsed XML *and* HTML library that supports Xpath. 
Preferably with an interface as easy to use as Python's lxml. I don't 
know how long the current std.xml will stay, if it's upon rewrite please 
do consider supporting Xpath (or CSS3 selector).

(lxml is based on libxml2 and libxslt which are MIT license and may not 
be compatible with Boost; lxml's source code itself is in BSD)

2. More containers, including:
     - std.container.HashTable (or allow void[T] in the language).
     - std.container.List (doubly linked list)
     - std.container.Deque
     - std.container.IntervalSet
     - std.container.Trie (or PatriciaTrie)
     - Adaptors to RedBlackTree and HashTable, making it a Set, 
Dictionary (map) and CountedSet (bag/multiset).
     - Ordered associative array

3. A std.variant.Algebraic that does not rely on typeid (like C++'s 
Boost.Variant).

4. Wrapper to GSL (= GNU Scientic Library, GPL of course).

5. Unicode normalization (the NFKD stuff) and other Unicode support, 
preferably as a wrapper to ICU (non-restrictive license: 
http://source.icu-project.org/repos/icu/icu/trunk/license.html).

6. Rational numbers (std.fraction?).

7. Serialization library (yes I know there's Orange).

8. Support for CSV and plist

9. More pure/@safe/const :)


More information about the Digitalmars-d mailing list