Mon Sep 17 14:49:32 CEST 2007
the funny thing is that now i'm used to pure functions, working with
mutation looks terribly dirty. i run into this with the web server's
data structure. building it seems strange: explicitly dealing with
inconsistent intermediate states is something you don't really
miss. and persistence is so convenient..
the most conventient structure for me is a hierarchical structure of
hash tables (file system), which is further cross-referenced according
to need. so:
- hierarchical tree -> everything is reachable
- cross referenced graph -> some things can be accessed fast
this brings me to the following: why not stick with functional
programming? the reason is of course that functional data structures
are not trivial once you go beyond simple lists.
but. is it really so hard to have an efficient hash? and, given the
problem, isn't a mere association list enough?
let's go back to a simplistic view. the things i need to aim for are
concurrency and persistence. both are a lot easier when functional
data structures are used. so the sloganesk view:
- functional data structures for concurrency and persistence
(data includes code here.. what is data other than dumb code?)
- all mutation is hidden in caching mechanisms or declarative