Re:Three ways to solve hard programming problems
by smoyer on Sunday May 29, 2016 @06:32PM
(#11798537)
CouchDB is s versioned JSON NoSQL ... but the choice between a database and a NoSQL isn't always easy to make either.
Re:Three ways to solve hard programming problems
by daxfohl on Sunday May 29, 2016 @09:58PM
(#11799149)
Indeed. Looked at that, even went so far as to give Datomic a tryout. Everything with built-in versioning turned out to be a leaky abstraction wrt our needs. Turns out there are lots of ways people can think about versioning, that don't always correspond to how programmers think about it.
Re:Three ways to solve hard programming problems
by harperlee on Monday May 30, 2016 @07:36AM
(#11800798)
For joining vcs (git) plus db (datomic), there's an interesting library called codeq:
http://blog.datomic.com/2012/10/codeq.html?m=1
First time a senior dev overrided my choice, and to my dismay we did a pure DB solution that took longer and was far inferior in its version control capabilities than if we had done it in VCS/XML.
Second time I was in charge and pushed this "great idea" through. We ended up with awesome branching, cherry-picking, diffing, etc capabilities (which were not in the requirements and nobody really used), but ran into big problems later when we needed more thorough data consistency checks, incremental non-GUID id's, speedier centralized inserts/updates, etc. Second step was rube goldberg, and third step was rewrite given the actual requirements using a normal db store (probably half the code, better performance, easier to use, no "extra" VCS functionality that nobody needed).
Lesson learned: don't use VCS as a data store unless it's kicking you in the face. Or, maybe there's a market for a VCS with some DB-like properties.