On 2007-10-09 14:47 +0100, Sam Mason wrote: > I hope the "inferior minds" comment below was intended as a joke --
Not really. Not everyone is up to the task of designing a programming language, and certainly not a beautiful and useful one (certainly not the C++ designers!), whereas it is comparatively easy to write a crappy library up to a specification of what it must provide access to. Designing a beautiful library -- now that takes effort again. > On Tue, Oct 09, 2007 at 12:48:58PM +0000, Tuomo Valkonen wrote: > What makes these libraries/frameworks > "inferior", rather than just different and/or unsuitable for solving the > problems you're (currently) interested in? I'm not saying unsuitable, I'm saying they suck aesthetically. Good programming is art, science, and engineering. In present practise the engineering -- i.e. ugly kludges to get things working now, fast -- aspect is dominant almost to the exclusion of the two others. > Has Haskell gone out of favour with you, or is it just GHC/Hugs' > byzantine libraries. As I already said, the language itself (well, Haskell'98 anyway -- the extensions are rather crummy) is rather nice, but the libraries suffer from YAMMBHE. > If you know of a better way, than a hierachy, of organising large > amounts of (generally interdependant) code then I'd be interested to > hear it. C doesn't need organisation... Now, namespaces would be nice, but I don't think they should form a global rigid hierarchy that will run without central bureaucratic control into conflicts just like a global (non-cryptographic) flat namespace. I think libraries should be imported locally in a given namespace. You know, like Haskell already lets you import libraries from the Huge Hierarchy locally in modules with a different name import qualified Some.Deeply.Nested.Crummy.Shit as S with Some.Deeply.Nested.Crummy.Shit actually provided by '-package foobar' on the command line, when it isn't part of the standard MegaCollection. So why not have various small libraries living in the operating system's namespace (the file system) and import them locally with some name, using the file name directly (instead of the compiler system, like GHC, having a crummy wheel-reinventing database for its own packages) -package S=/pkg/libfoobar-1/lib/libfoobar.so (Then further combine this with the cryptographic namespace of a package capability system [1].) [1]: http://iki.fi/tuomov/b/archives/2007/07/16/T22_41_22/ -- Tuomo