On Saturday 18 September 2010 08:50:41 Graham Nicholls wrote: > Thanks. I figured that it was a duplicate definition, but not if I leave > out st.stream, then OpenException is undefined. Is there a documentation > for the exceptions which are in the relevant packages - I'll struggle > without it!
You'll have to look at the documentation for a particular module to see if it defines any exceptions. If it doesn't list any, then odds are that if it throws anything, it'll be Exception, but the docs may not be complete. > And thanks, all for the help - much appreciated. > > BTW, am I making a mistake using 2.0 rather than v1.x? > It seems that perhaps 2.0 is not entirely complete - the libraries are > pretty fundamental, after all. > Thanks again. The language definition has stabilized (though there's still plenty of bug fixing going on). Andrei Alexandrescu has recently release a book - "The D Programming Language" - which goes over the language (highly recommended). However, Phobos, the standard library is still very much a work in progress. Much of it will stay as it is, but there's still a lot of work going on and changes being made, though they try to not break code between releasing but rather deprecate code and then remove it a release or two later. The definition of D2 only reached stability a few months ago, so the work on Phobos has picked up since then. D1 is really a different language, though D2 originates from D1. D1 is stable, including the library. But Phobos in D1 is pretty pathetic really, which is why many people use the third party library Tango (which is not compatible with Phobos since Tango replaces some core stuff like the garbage collector). Tango is very different from Phobos. Also, in using D1, you lose a lot of nice features that D2 has. Whether you use D1 or D2 depends entirely on what you're doing. A copy like Boeing who needs completely rock-solid code, because lives depend on it, should probably use D1. An individual writing code for themselves can use D2 just fine as long as they're willing to put up with the occasional bugs in the compiler and standard libraries as well as the fact that portions of the standard libraries do change from release to release. Companies doing code that lives don't depend on could use D2 as well, but how good an idea that would be would depend on what they're doing. D2 is definitely stable enough for use, but Phobos is still very much evolving and there are bugs in the compiler which pop up from time to time which can be highly annoying. So, it all depends on what you intend to get out of D2 and how much hassle you're willing to put up with. Personally, I think that the occasional issue is well worth the power and flexibility of D2, but you may not find that to be true for you. The compiler continues to get bugs fixed, and Phobos is having lots of work done on it, so we are approaching the point where it will be obvious that D2 is the one to pick rather than D1, but it still depends at this point. I wrote a longer response to a similar question on stack overflow ( http://stackoverflow.com/questions/3205509/what-are-the-current-challenges-of- the-d-programming-language/3206985#3206985 ) a couple of months back. - Jonathan M Davis