3. Suffuse is snake oil
• not oil from snakes - oil for snakes
• snake is compatibility, syrup of ipecac induces vomiting
• imagine life in a pure functional environment
• simpler, more secure, more convenient, more power
• yet 100% compatible with dysfunctional environments
3
5. 30 minutes!?
• I was failing to whittle down to 90 minutes
• ...when I found out I had 30
• For much more join me in Room 206 right after this
• "The Virtual Filesystem: This Changes Everything"
5
6. Pervasive file virtualization
• applications span a staggering variety of issues
• renders obsolete entire classes of software
• could transform software development practice
• the best idea I've ever had
6
8. Intentionally vague definitions
• A path is a restricted form of string
• A file is what you find in a filesystem
• A filesystem maps paths to files
• Metadata is what a filesystem knows about its files
• Critical that data is lazier than metadata
8
9. Unassume: the position
• it can be hard to see past one's familiar assumptions
• a regular file is not an array of bytes
• a directory is not a list of its contents
• a symbolic link is not a pointer to a path
• Each is a program!
9
10. The universal API
• Files are hooks into every program
• No modifications to programs are needed
• a directory is a virtual filesystem
• a link is a virtual reference
• a file is a virtual data channel
10
11. Dataflow
• values recomputed automatically on-demand
• canonical example is a spreadsheet
• virtual files also offer this property
• call them reactive files
11
12. Continuous consistency
• how to ensure fresh derived files?
• status quo is imperative/push
• A := A' ; B := f(A)
• suffuse is functional/pull
• B = f(A)
• B cached, updated only if A dirty
12
13. What is being
described?
• Immutable
• Statically typed (with inference)
• Lazily computed
• Unbounded size
• Safe for concurrent access
13
14. What is being
described?
• Immutable
• Statically typed (with inference)
• Lazily computed
• Unbounded size
• Safe for concurrent access
14
15. Sources of inspiration
• maybe you expect to hear plan9, fuse, ...
• we live in perpetual ignorance of previous work
• has everyone studied the writings of Mary Ann Hoberman?
• her magnum opus is "A House is a House For Me!"
15
20. A json's a house for a map of maps
A map is a house for its keys
Each key/value pair
is a newly built lair
This continues as long as you please
A var is a house for a bug, a bug
A thread is a house for deadlock
And it's a safe bet
that your technical debt
has the nicest house on the whole block
20
21. M.A. Hoberman on the art of programming
1. How Do I Go? (1958)
2. Bugs (1976)
3. Mr. and Mrs. Muddle (1988)
4. One of Each (1997)
5. All Kinds of Families! (2009)
21
22. Coming up next in "This Changes Everything"
• container transparency
• typed files, immutable files, metafiles
• lazy files, implicit files, reactive files
• virtual (data/metadata-driven) paths
• process persistence/portability
• and much much more
22