From: fva <fv...@ts...> - 2003-02-25 09:03:50
|
Maxence Guesdon wrote: >>Make some incredibly minimum directory layout suggestions and minimal >>project documentation (something like text file called "description.txt" in >>the root of each module). Then get a ton of code up there. Deal with the >>consequences later. The number of community projects with intricate and >>beautiful submission specifications and no useful code or users far >>outweighs the number of useful projects bogged down by bad indentation and >>planning. >> >> > >I don't think uploading a ton of code and deal with consequences *later* is the easy way : someone will have to sort the functions, and try to give some consistency for the functions of a module. This can be very difficult when it means finding the good functions among hundreds. > >What about this other way : let's find some topics for modules (strings, lists, ...), then for each topic ask everyone what functions are missing and useful, then upload them or code them. Otherwise, I'm afraid the mess in the libraries will result in mess in programs using them. > >Building stable libraries will make them more usable : I don't think anyone would use a library whose interface is always changing. > How about scribbling specs for libraries in module signatures then producing structures that implement the signatures? In this way: - the question of the consistency for the functions of a module is somewhat ameliorated because structures would claim to implement this or that signature only (I know: the problem would somehow be moved to designing the module's signature. Still, we'd be doing one problem at a time: what goes in, first, then how to build it...) - the community could proffer several implementations for different signatures... This could mean competition between implementations (hopefully) for the benefit of everybody... (Also, some stabilisation of the (winning) modules in the library). - signatures *to some extent* can be extended (as structure implementations can)... The library could well be extended bit by bit, but always having a "usable" form. I once extended the OCaml string library using some primitives that I lacked from CAML and it was pretty usable (I've been using it ever since although I see better string libraries nowadays only because it's my own and I remember coding it (and the names of the addons)). - it could be demanded that people contributing to a *particular structure* follow the indentation mode of *that* structure... Besides If someone produced code and submitted it without the proper indentation, just indenting *one* structure in a coherent way is pretty easy for anybody to do. (We could see other people's practice and improve our "indenting" habits that way too!) In a word, let's profit by the capability of the language for developing code piecewise and with "local" flavours but in a public "milieu" where everybody knows what they should do even if their guts remain (hopefully, neatly) hidden. So what I propose is: - let's make a big library, the Extended Library, EL - made of a thousand smaller (smallish) modules and let people contribute to it. - implementing public (voted, agreed upon) signatures - that a) extend signatures and modules of the standard library SL b) provide different implementations to those of the SL (and test them, that's my dream) c) provides *other* signatures and modules that hugely add functionality to the SL d) make open "call-for-implementation"'s in the form of signatures interesting to the community. e)... When we have a high population of signatures and implementations, we'll start thinking about good retrieval mechanisms with them (something that rubs off when you're doing experimentation: first you need a BIG corpus of real data, then you try to extract structure from it). There's a number of them hovering already... Regards, Fran Valverde |