This is mostly my thoughts on Plan 9 in general, but it’s based on my experience with 9front.

  • I like the emphasis on empowering users to build solutions to their problems. “There isn’t a command to do that, but you can do it yourself very easily.”
    • shell command line history

      roll your own: fn history {grep ‘^term%’ /mnt/wsys/text|sed -e ’s/^term%//’}

      1

  • Emphasis on distributed computing is very cool.
    • Heterogenous architectures

      When the system starts or a user logs in the environment is configured so the appropriate binaries are available in /bin. The configuration process is controlled by an environment variable, $cputype, with value such as mips, 68020, 386, or sparc.

      2

    • Everything is a file, and everything can be passed around with the 9p protocol, locally, remotely, or between different nodes of a cluster, all transparently.

  • Why do you keep rewriting things from C into rc scripts? See rc-httpd
  • It has a non-standard C compiler? Seriously?
    • Partly it has a Plan9-specific API, that’s fine, though I prefer something standardized like POSIX.
    • The standard library is extended with different I/O functions; whatever, at least stdio is there for compatibility
    • All strings are UTF-8; that’s cool.
    • The meaning of some reserved words like register and volatile are changed
    • This feels like the missing link between C and Go.
  • Consistency
    • Plan 9 presents a consistent and easy to use interface. Once you’ve settled in, there are very few surprises here. After I switched to Linux from Windows 3.1, I noticed all manner of inconsistent behavior in Windows 3.1 that Linux did not have. Switching to Plan 9 from Linux highlighted just as much in Linux.

      – Russ Cox

    • Ok, breaking compatibility with Unix for the sake of consistency sounds good to me.

    • The unix find is a SwissArmyKnife. In PlanNine, the TreeWalking is done by du – a unix find . -print is in PlanNine: du -a|awk ‘{print $2}’

      1

      This is consistent? Why is du, disk usage, responsible for tree walking?