On May 31, 2008, at 11:30 AM, Daniel Ehrenberg wrote:

> So, hopefully, we can get Factor 1.0 done this year. This was my goal
> in an unofficial (but no one objected to it yet) roadmap, to have
> Factor done by December 31.

That's my goal too.

> (1) Documentation (2)
> Unit tests (3) Metadata. Maybe (4) Clean code should be added to that
> list, but it's less essential.

I think clean code is essential too.

I think extra/ needs a lot of cleanup, but I have a slightly different  
plan to go about it.

The first step is to make a new vocabulary root 'basis'. This would  
contain libraries that are essential for a modern programming  
language, but don't belong in the core. Examples, in no particular  
order:

- Calendar
- XML, JSON, binary serialization
- Concurrency abstractions
- Logging
- Unicode
- Relational database access
- Various data structures such as balanced trees, maybe union-find, etc
- Sockets, monitors, launcher, and other advanced I/O
- HTTP client and server
- FTP client and server
- SMTP client
- Regular expressions
- PEGs
- Units
- UI
- Development tools
- Checksum and crypto algorithms
- Useful language abstractions: locals, fry, ...

Code in basis would be allowed to depend on core but not on extra, and  
would only be added there once your criteria are satisfied -- unit  
tests, docs, metadata, clean code.

Another requirement for basis would be that all the latest  
abstractions must be used and no deprecated features are permitted  
(delegation, old slot accessors). Also,  
{combinators,assocs,namespaces,arrays}.lib would not be allowed be  
used in basis. Instead, code going into basis would be refactored to  
use more core abstractions, with the essential parts of *.lib going  
into core.

I would also argue that binary packages ship with all the C libraries  
required by basis, but this is not essential.

Once basis is complete and documented, we can then do an audit of  
extra/.

This partitions the work into two phases: first we audit the essential  
parts of extra/, then the rest. I think having something like SMTP or  
database access be documented and tested is more important than, say,  
mandelbrot fractal or rot13.

Slava

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Factor-talk mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/factor-talk

Reply via email to