- embracing the database
- February 24th, 2011
I've been using computers since around 1981, when I first started programming video games on a TRS-80 Model III in the Added Divertive Dimensions (ADD) room at my elementary school. Since around 1984, I had computers which used MS-DOS and had diskette drives, and around 1986 or so, I got my first hard drive. That's 30 years of computer training with at least 27 years of filesystem training and 25 years of hard filesystem training.
Though it was an abstract construct at the time, the filesystem became one of the firm ways in which I understood what was being stored and processed by the computer. A filesystem has a root directory, that root (for short) can contain files and other directories, and those directories can contain further files and directories. If a file is in one directory, it can't exist somewhere else on the filesystem; it is only in that directory. There may be a "link" pointing to the file from somewhere else, but that's just a matter of convenience; it doesn't live there.
And this is the way that I thought of email, too, when using various terminal-based email clients through the years. When I received an email on my computer, various programs would work together to store those emails as mailbox (mbox) files in the filesystem. If an email was in one folder, then it couldn't be in another folder. I based the way I structured my email archives on these principles, and it has worked for more than a decade.
Flash forward to 2011, and the introduction of my Android-based smartphone. For various reasons, it makes sense to start using Gmail and many of the fabulous I-live-in-the-future applications that are offered by Google. I realized that my sad devotion to filesystem structure has held me back and made me a user of only archaic technologies. I am a lifelong learner and I am a technologist (in that I at least analyze and critique technologies). It is time for me to move forward, so that I can be one with the crowd that has passed me by as I sat and played on my little command line. I have now made the decision to embrace the database.
Gmail represents a whole new way to think about email. One email is no longer located on the filesystem. It is now one of a huge vast pool of emails, floating around out there somewhere on the storage. At any instant it could be called forward to be read, analyzed, and again let go. Emails are now labeled and can each have multiple labels. Emails are joined together in conversations, and conversations share all of the labels associated with the individual emails which have been joined. It might be necessary to suddenly search for all of the emails containing the word "corruption," or for all letters to Marlo in February. The database structure of modern email clients and especially Gmail facilitates all of this.
I can see clearly that this is good. I understand how worthwhile it is to think about email in this database manner. And, I see that the masses currently already do this. It is me who has been left behind, and that is because it is against my training. I just haven't thought this way, and it breaks my brain to do so. I'm sure it will become easier with time, and I'm committed to the paradigm shift.