These days, my programming consists basically of building up graphs of
data representations, then specifying selections and transformations:
* I look over the available information, determining its availability,
current format, and (dynamic) nature. I might be looking at writing
a daemon to collect the data, making an HTTP request and scraping a
screen, or (merely) wandering around through an XML dump.
* I select a suitable data structure and representation method in
which to store it. If the data is for my own use, I tend to use
YAML (easy to read/edit, very flexible, etc.) OTOH, if "buzzword
compliance" is an issue, I might use XML.
* I then determine the desired nature and format of the output. I'm
currently creating web pages, supplemented by Graphviz-generated
plots (with image maps). In other circumstances, I might be using
generated PDFs, Tk- or Cocoa-based "windows", etc.
* Based on the above, I create some number of intermediate formats
that seem to be on a reasonable path from what I have in hand to
what I need to produce.
* When I have figured out a set of selections and transformations
that can fill in the links on the path, I am nearly done. I code
up filters and/or employ existing tools to perform the operations.
This allows me to leverage the benefits of data description languages
(e.g., YAML), special-purpose applications (e.g., Graphviz), and high-
powered programming languages (e.g., Perl), producing results quickly
I'm wondering, however, whether I'm missing out on any general tools
that I should consider adding to my repertoire. For example, I have
looked at XSLT, and think that it might be an interesting tool for
simple transformations and selections, but its basic design (context-
sensitive macro processor, on steroids) seems a bit awkward to me.
I also wonder if something like SQL might be useful for some kinds of
selection operations, but SQL itself is rather limited by the fact
that it can only deal with tables (and I'm using graph structures).
Still, if there were a language for doing SQLish things to graphs,
I'd be happy to hear a bout it.
email: rdm@...; phone: +1 650-873-7841
http://www.cfcl.com - Canta Forda Computer Laboratory
http://www.cfcl.com/Meta - The FreeBSD Browser, Meta Project, etc.
http://www.ptf.com/dossier - Prime Time Freeware's DOSSIER series
Get latest updates about Open Source Projects, Conferences and News.