Knowledge is what we carry with us.
While the world churns through ongoing crises, I’m both holed up and pivoting, picking away at an MS in Computer Science. Lately, I’ve been thinking about how lucky I am to get time to really focus on listening to ideas, and how lucky I’ve been to get to do some teaching.
Great teachers, evangelists, or TED talkers all like to explain concepts and context with story narratives. But the operative pieces of those stories, which cement critical points or plant strong visuals in our brains, are abstractions.
Abstractions help us mentally group bunches of ideas (“These algorithms help you count things very quickly, while those algorithms help arrange European dancers in straight lines.“). They simplify complex phenomena, allowing things like the concept of Cloud Computing to exist without having to constantly picture in your head the breathtakingly sophisticated levels of coordinated virtualization (… really, a form of abstraction) needed to make it a good idea to host production on fractions of someone else’s computer(s).
Abstractions are soft layers of hand waving that connect hard details, and fit everything into place.
Last Spring, I worked as the Graduate Teaching Assistant/Lab Instructor for Tufts’ first-ever SQL course in its inaugural Data Analytics program. First, the opportunity to serve as deputy to Leo Hsu (making up, with Regina Obe, the duo responsible for PostGIS, among other things) was a humbling learning experience. Listening to Leo wax on postgres internals and getting my slides fact-checked live by Regina was about as cool as it gets for a SQL nerd. We came together to find a way to teach that class online with almost no notice – it began in March and ran for half a semester.
I had free reign to design and implement bite-size lab tutorials intended for a diverse audience. One mentor I consulted to prepare for this new teaching experience, Prof. Michael Hecht, noted that it can be much more challenging to plan for teaching grad students, due to the heterogeneity of their backgrounds. I needed to build in a good deal of range – my “warm-up” tutorials needed to support a ~7 week class that walked students from writing their first
SELECT * to implementing their own database projects.
Yet, for every student, the path to enlightenment led through discrete examples en route to the key of the abstraction: thinking in sets. Being able to easily deal in terms of “bags of things” is the key to SQL, and with it you unlock a new ease of managing and manipulating data quickly. You no longer need to think about each individual datum. Instead, you consider how an individual row might behave, what bucket it belongs to, and the abstraction handles the rest.
To quote a James Mickens USENIX talk, we don’t have many good abstractions and should hold the good ones dear – like SQL. You can find multiple other posts I’ve written on this blog about why I think SQL is so neat. But I keep coming back to this Hacker News discussion, where one commenter marvels that, despite the fact that “more SQL is written in companies by analysts and data scientists than typical software engineers,” one could make the argument that “SQL is more powerful and valuable today than it ever has been.”
As an abstraction for interacting with data, it sure is durable. New technology emerges almost daily that puts more processing capability in the hands of SQL writers than before (that linked AWS feature was published TWO DAYS before this post!).
Consider the Snowflake IPO, announced at long last. A few days ago, the company valued itself somewhere between $20.9 billion and $23.7 billion. WOW! But, why? It’s just a company that sells a fast database, right? I hear you can’t even run a production business application on it! What gives?
It’s true that Snowflake offers what, to its end users, is essentially just a datawarehouse: a back-office utility datastore that can handle intense workloads, but isn’t meant to be used for things like live banking transactions. You hand Snowflake your data, you pay them for how long you use the database, and then they pay amazon/Google/Microsoft for the hardware. So? How is this any different than Oracle, but with extra steps?
Snowflake, the technology, is so powerful because it leverages relatively new technological advances (massively parallel processing, sharding, and so many other Big Data concepts) and economies of scale behind the scenes. Snowflake, the company, is so successful because it abstracts the above away from the user, instead presenting a clean, simple SQL interface. There is nothing to manage.
SnowSQL looks, feels, and smells like a marginally improved SQL flavor in every way, except that its engine chews through hefty data in no time flat. And it does that well while also getting out of the way. It’s simple, and end users see its value instantly. A big part of what makes it so attractive and its market so big is the extremely low barrier to usage – thanks to the popularity and durability of SQL as a tool. That’s what Snowflake hitched their cart to. Thanks, Codd.
A reductionist might say that what we have here is just one more layer of abstraction between query writer and data on disk, now featuring cloud and big data sandwiched in between. But that layer is worth $20 billion to someone – so hopes Snowflake.
Abstraction in its main sense is a conceptual process where general rules and concepts are derived from the usage and classification of specific examples, literal (“real” or “concrete“) signifiers, first principles, or other methods.
“An abstraction” is the outcome of this process—a concept that acts as a common noun for all subordinate concepts, and connects any related concepts as a group, field, or category.Wikipedia
The students I have met on either side of the whiteboard, so to speak, have taught me so much. They come from near and far just to learn something about something. Being together, if physically apart, in this pursuit has been strangely comforting. Virtual breakout rooms mid-lecture have led to extremely vulnerable, poignant moments. We entered to discuss computation theory, but exited with snippets of our old lives, having exchanged words of mutual encouragement and disclosed our hopes and struggles.
One new graduate student from China tracked me down in a virtual classroom to tell me he’d ordered dinner from a pizza place I’d previously recommended. That this touched me on a deep level would seem absurd in any other context.
My life, and your life, has been so disrupted since March, 2020. Surely, it will only change more. While few things seem constant, we know knowledge is good. As my grandmother long opined, knowledge is the only thing you can carry with you that you need not pack. What we learn is durable, and it is portable. What is durable and portable will carry us forward.