June 18, 2018

Keep Knowledge in Plain Text

A few days ago, I tried to describe my idea of my ideal programmer's toolkit.

Even though at this stage, my vision for this toolkit is pretty vague and nebulous, I'm planning to go ahead and try working a little every day to build it.

Since my vision is hazy and the scope of the project is so enormous, I'm going to try and write down some guiding principles that can hopefully keep me on track.

Here's my first guiding principal:

Guiding Principal #1: Everything is Plain Text

At the basic level, computer instructions are 1's and 0's.

We've built layers of software in order to make it easier to work with these ones and zeros.

So, there are many, many ways to represent ideas in software. We can represent things in assembly code, in high level languages, in binary, in hexidecimal, etc, etc.

Thru my experience, I think the best way to represent data is in plain text. And, ideally, the plain text representation can be used to encode pretty much any idea.

I'd like to borrow a lesson I learned from the Pragmatic Programmer a long time ago. The first principal for building my perfect toolkit: It should be possible to represent all concepts and abstractions as plain text data.

Plain text is the medium that the toolkit will know how to manipulate.

Tags: software development principles