(root)/Notes/Notes/notes/tool.md RSS

Tool

a tool can be thought of as some set of edges of a dependency graph

example using nails is required for building a chair. a hammer is a tool that drives nails; it allows the use of nails for building a chair

Scope

notice that many tools match one of the following scopes

  1. tool does something for something
  2. tool does something for everything
  3. tool does everything for something
  4. tool does everything for everything

examples

  • a hammer drives nails for everything
  • vim does text editing for everything
  • Visual Studio does everything for c++ development
  • IntelliJ does everything for java development
  • VS Code does everything for everything
  • Obsidian does everything for conceptual note-taking
  • GDB does debugging for everything
  • Unity does everything for video game development
  • LibreOffice Writer does everything for word processing

learning to use a tool is an investment; understanding a tool's scope is essential for deciding whether investing in learning to use it is worth it. type-0 and type-3 tools are relatively uncommon. type-1 and type-2 tools are common and worth contrasting. skills with type-1 tools are generally transferable, and type-1 tools are composable but potentially less efficient. conversely, skills with type-2 tools are generally not transferable, and type-2 tools are specialized but potentially more efficient

note

I prefer type-1 tools over type-2 tools because I highly value composition and transferability; efficiency I make up for through practice and customization

Obsidian is a type-2 tool that is great at some things and not so great at others --- https://youtu.be/nz99I7apNLI. regardless, from my point of view, none of this matters because most of the features it has (or lacks, for that matter) are solved problems:

  • Obsidian has good search---but search is a solved problem; grep and find are great at it
  • Obsidian has great autocomplete---but autocomplete is a solved problem; vim and VS Code are great at it
  • Obsidian has first-party file syncing---but file syncing is a solved problem; Git and Syncthing are great at it
  • Obsidian has a paid markdown-to-web service---but markdown-to-web is a solved problem; mkdocs and hugo are great at it
  • Obsidian lacks support for team collaboration---but team collaboration is a solved problem; Git and GitHub are great at it
  • Obsidian is good at text manipulation---but text manipulation is a solved problem; vim bindings are great at it
  • Obsidian is phenomenal for linking---but linking is a solved problem; markdown with wikilinks are great at it

note type-0 and type-1 tools appear to correspond to the Write programs that do one thing and do it well. part of the Unix philosophy