Some people eat, sleep and chew gum, I do genealogy and write...

Wednesday, February 3, 2016

#RootsTech 2016 -- Innovators Summit -- A Case for Immutable Data

Now we get into some of the technical data area. Dr. Luther Tychonievich teaches computer science at the University of Virginia. Here are some words and phrases you might want to know about this subject.

  • semantic immutability
  • nested structures
  • mutual pointers
  • top-level objects
  • refactoring
  • CRUD -- create, read, update, delete
  • Granularity

If you do not understand some of these terms, you probably did not understand much of what Dr. Tychonievich had to say. The gist of what this is all about is the ability to select the data in a way to allow the links to that data to be preserved even if the data is moved from one program to another. The issues raised also have to do with the way changes are made in a family history program. The issue also extends to merging duplicate individuals. The presentation talked about the internal programming concerns for utilizing these functions in a family tree.

This presentation is a good example of why the Innovator Summit exists. There are people who are working on the aspects of family history that enables us to have online family trees and also provide the technical aspects of the programs that are necessary for the programs to function.

Here is more specific description of the class.
Developers raised on imperative object-oriented programming are often surprised to learn that large systems can be written without the use of assignment statements or SQL UPDATEs: all variables and database entries can be immutable, write-once data. Immutable data simplifies concurrency, distributed system design, replication, caching, program verification, and many data-processing algorithms. This talk will discuss how to modify the communication mechanism between tools or between different users' copies of the same tool to incorporate immutability, focusing on three benefits: an efficient, intrinsic handling of versioning and conflict resolution; a trivial way to let users chose not to share some details without impacting anything else; and a natural merging of the "my data" and "shared data" models of family history software. Time permitting, we'll also discuss its potential use in future partial-implementation- and extension-friendly data standards.

No comments:

Post a Comment