How Would You Like Your Phobos?
January 20th, 2006 | by Aldacron |Walter is a man with very tough skin. I would have flipped out a long time ago. One of the most difficult things for me in opening a project to the world is the stinging criticism that comes with it. I’m not talking about a commercial project released to the general populace. I expect some people to just not get it and blame it on me when they don’t (though I do try to minimize the odds of that as much as possible). But like I said in the last post, programmers are a picky lot. They are also highly critical and difficult to satisfy. When I was a medic in the Army, we had the saying, “Medics are the worst patients.”
One of the nitpicks D newcomers (and some oldtimers for that matter) have center on Phobos, the D standard library. I agree with the general newsgroup consensus that it isn’t complete and needs some work done on it before a 1.0 release goes out the door. Debating what’s right, what’s wrong, and what’s broken about Phobos is just opening a can of worms, so I won’t do that here. There are plenty of those on the newsgroup if you want to join in on one.
The D newsgroups are largely civil. Actually, it’s the most civil online discussion community I’ve had the pleasure of participating in to date (though I lurk for the most part). But there are a lot of highly opinionated members in the community. Just as everyone has their own reasons for being drawn to D, they have their own ideas on where the language should go. The standard library is a big part of that. I recall one discussion regarding std.loader (which was contributed by Matthew Wilson). Some people wanted a free function, C-style API. Others wanted an object-based API. The end result was a module that supports both.
That spirit of compromise doesn’t always work though. Complaints about one part or another of Phobos crop up with some regularity. Some people word their complaints strongly. Adjectives like ‘ridiculous’ and ’senseless’ are sometimes used to describe certain features. The reason is likely that the poster hit on some stumbling block in a current project and sent the post in a fit of frustration. I’ve done that in other places more than once.
My point is, getting Phobos ‘just right’ is an impossible task as there are such diverse views on what ‘just right’ is. Getting it ‘right enough’ is a good goal. The community definitely speaks up when they think it isn’t ‘right at all’, so I think we ultimately will see a Phobos that is ‘right enough’.
Anyone can submit a patch for Walter to include in Phobos. Several existing modules were contributions from community members. That’s one of the great benefits of using D right now is the ability to contribute. Don’t be shy in letting Walter know what you think is broken in the library and what you think should be fixed. More importantly, don’t be afraid to contribute additions and fixes. There’s no guarantee any contributions will make it in, but the possibility exists.
It’s not often we have the opportunity to help shape a programming language into the one we’ve been dreaming of. D is on the ground floor, so now is the time to hop on board. Help make the standard library the one you want to use. And if you get frustrated because there’s no sleep function in the thread class and post about how ridiculous that is on the newsgroup, don’t worry about Walter. His skin is made of granite.
By pragma on Jan 21, 2006
Another approach to the current state of D’s runtime is the Ares library project. Its still in its infancy, but I like to think it holds some big promises for the future of all things D.
http://www.dsource.org/projects/ares
The concept here is something similar to the ::boost library project (screened-submission based), with an eye cast toward performance and robustness. As a project, submissions are expected to be projects unto themselves, which is a sight different than the current tact for phobos.
Imagine, if you will, a “superlibrary” that contains Mango, DDL, DWT and maybe DBBI thrown in for good measure; that’s where Ares is headed.
($0.02)
By Aldacron on Jan 21, 2006
Yes, tomorrow’s post is going to be about some of the projects spawned to replace/extend Phobos - Ares, Deimos, Mango, DDL and Bindings.