- Excel (I see this as just an advanced calculator. Basic pivot tables and charts).
- SQLite (I start with this and then move to a SQL server if it cannot keep up with write throughput. I use it to “reduce distributed state” so that I can understand everything with just a function stack trace. I often find data modelled in 2nd or 3rd normal form tables beats “how should I nest this data” in a general language as you can use SQL to produce many tabular views from the same scalar values).
- Javascript (Since I read “The good parts” I find JSON and modern JS as a scripting language much more productive than anything else for small or disposable projects. Closures, event loop and async/await built in by default, global distribution in browsers, JIT produces machine code that gets you closer to a compiled language performance than any other dynamic language).
- Typed languages (I used to dislike types because I felt they got in the way and what’s the point? Now I see them as a tool to get extremely fast iteration loops as your editor will tell you if all the things snap together magnetically in less than one second. Great for breaking things apart and reconnecting them. I work on many code bases, and all that implicit type data in your head disappears when you leave a dynamic code base for a few weeks. Also having a spec for messages your server sends and receives allows you to auto generate docs).
- Sublime (so snappy to start I use it as a general scratch pad).
- Regular expressions (sometimes there is no substitute. I like that there is a little string matching machine and notation that is the same in every language, and that you can rapidly iterate outside of the code base in a web editor then paste it into the program).
- Preview (extremely fast to open and zoom into vector based graphics like PDFs).
- PDF’s (in a world where every app that reads and writes doc-like-data wants to lock you in, being able to export to PDF will at least allow you to read your content without the app far into the future. Spotlight on macOS will index the text allowing for search).
- Pen and paper (just being able to see your thoughts and then refining them or finding new branches of thought is a huge improvement over trying to keep everything in your mind. The computer is often too distracting for this).