TITLE: Strange Loop, Day 2 Morning
AUTHOR: Eugene Wallingford
DATE: October 15, 2010 11:46 PM
Perhaps my brain is becoming overloaded, or I have
been less disciplined in picking talks to attend,
or the slate of sessions for Day 2 is less coherent
than Day 1's. But today has felt scattered, and so
far less satisfying than yesterday. Still, I have
had some interesting thoughts.
Billy Newport on Enterprise NoSQL
This was yet another NoSQL talk, but not, because
it was different than the preceding ones at the
conference. This talk was not about any particular
technologies. It was about mindsets.
Newport explained that NoSQL means not only
SQL. These two general approaches to data storage
offer complementary strengths and weaknesses. This
means that they are best used in different contexts.
I don't do enough programming for big data apps to
appreciate all the details of this talk. Actually,
I understood most of the basic concepts, but they
soon starting blurring in my mind, because I don't
have personal experience on which to hang them. A
few critical points stood out:
These two issues are enough to see one of Newport's
key points. The differences between the two worlds
is not only technical but also cultural. SQL and
NoSQL programmers use different vocabulary and have
different goals. Consider that "in NoSQL, 'query'
is a dirty word". NoSQL programmers do everything
they can to turn queries into look-ups. For the
SQL programmer, the query is a fundamental concept.
The really big idea I took away from this talk is
that SQL and NoSQL solve different problems.
The latter optimizes for one dominant question, while
the former seeks to support an infinite number of
questions. Most of the database challenges facing
NoSQL shops boil down to this: "What happens
if you ask a different question?"
Dean Wampler on Scala
The slot in which this tutorial ran was longer than
the other sessions at the conference. This allowed
Wampler to cover a lot of details about Scala. I
didn't realize how much of an "all but the kitchen
sink" language Scala is. It seems to include just
about every programming language feature I know
about, drawn from just about every programming
language I know about.
I left the talk a bit sad. Scala contains so much.
It performs so much syntactic magic, with so many
implicit conversions and so many shortcuts. On the
one hand, I fear that large Scala programs will
overload programmers' minds the way C++ does. On
the other, I worry that its emphasis on functional
style will overload programmers' minds the way
- In the SQL world, the database is the "system
of record" for all data, so consistency is a
given. In the NoSQL world, having multiple
systems of record is normal. In order to
ensure consistency, the application uses
business rules to bring data back into sync.
This requires a big mind shift for SQL guys.
- In the SQL world, the row is a bottleneck.
In the NoSQL world, any node can handle the
request. So there is not a bottleneck, which
means the NoSQL approach scales transparently.
J But see the first