Relation of Editor and Tooling


(Thomas Schaller) #1

The original design documents specify that Amethyst tooling should be split into small, modular parts, adhering the Unix philosophy.

There have been a few comments on Discord about this topic, so I’m moving the discussion here.

Points so far:

  • Tools should be accessible via CLI and re-used by the Editor
  • Ideally, the Editor is very basic and uses plugins for most functionality
  • A good plugin system would be nice, but can also be implemented later

(Fletcher) #2

If you aren’t familiar with this, it is “do one thing, and do it well”. This is why most *nix systems have lots of little tools (grep, ps, df, etc) that do only one thing. Another point that often goes along with this is the importance of composition. This is why you often see a lot of *nix commands that are separated by |. For example: ps -ef | grep python takes the output of ps -ef and sends it to grep.

I mention this because not only is it a useful (though not uncontested) design philosophy, visual scripting/programming languages are essentially this, just with boxes and lines instead of commands and pipes.

If we’re going to go highly modular, this Wikipedia article is worth reading for the 17 rules: https://en.wikipedia.org/wiki/Unix_philosophy#Eric_Raymond’s_17_Unix_Rules