Relaxing at home on the couch is another time that I'm not in a rush. I've largely replaced evening TV time with watching presentations on various topics. InfoQ is perfect for that. I get to have an expert take an hour to carefully explain a topic that I'm only tangentially interested in while I semi-nap on my couch after dinner with a beer. This has become a low-effort means for me to gain a high-level understanding of a broad range of topics that I wouldn't otherwise have the time or willpower to sit down and actively study.
It surprises and disappoints me that he is not as well known nor revered as the agile craftsmanship peddlers.
What rich says, on the other hand, is pure gold as you said. But it needs to be understood before its value is seen.
It's hard to sell to the manager who has no clue what all of this means, even harder to compare the tradeoffs with their current approach.
I felt rather bad afterwards for having done so. One of the more useless talks I've attended. Very superficially prescriptive (you should do X; Y has seen benefit Z), with no meat to the description (or prescription, as it were).
Agile may well have its place. But its intersection with BigCo life, as anecdotally exemplified in this fellow, seemed to be just more of the "same old same old". New words, same shit.
Actually, he is better known than all those guys selling snake oil.
A functional DB replaces a "row" that only holds the current state of the world with a list of timestamped "facts" that can represent either the present or any point in the past.
Instead of simply recording "Bob's favorite food is pizza," we record that "'Bob's favorite food is pizza' was added at Time X." If Bob decides his favorite food is now ice cream, we record that "'Bob's favorite food is ice cream' was added at Time Y." At any time, we can query Datomic to get the current state of the world--"Bob's favorite food is ice cream." But note that we can also query Datomic to get any past state of the world. If our query is "what was Bob's favorite food 10 minutes before Time Y?" the response will be "pizza."
A regular database is like a sheet of paper that is continually erased and drawn over with a new world-state. Datomic, as a "functional database," is like a flipbook with an updated state on every page.
... which isn't 'functional' in any sense. It seems that Hickey just reinvented time series and tries to sell those as database.
query :: Query -> DBValue -> Result
instead of performQuery :: Query -> IO DBConn -> IO ResultIt's just an advert of Datomic.
(SELECT
("id", "login", "first_name", "last_name")
FROM (users)
(WHERE
(and
(or
(eq "login" login)
(eq "email" email)
)
(eq "password" (bcrypt password))
)
)
)
(Sorry, couldn't fit more parentheses in this)SQL -> Datomic?