170 karma · joined July 10, 2010
[sudo] password for clapper: No4thAmd
I've never found navigating to and selecting text with keyboard commands as fast and forthright and mindless as just moving the mouse and clicking to locate the cursor and select a range of text, and I used Emacs for 11 years. Also, since Acme binds common operations like cut, paste, and execute to mouse chords, I don't leave the mouse to do these things.
I don't dig candy-colored text, so the lack of syntax highlighting is a plus for me.
Peter Naur (of Backus-Naur form) called it "theory-building". https://dl.getdropbox.com/u/502901/naurtf.pdf
Seriously, I use Inferno every day, but my job is building software, so I mostly use it to write shell scripts and execute shell commands. It interfaces well with its host (I can thread calls to host commands in Inferno-sh pipelines), and runs over top of Windows, Linux, and MacOSX.
One advantage of using Limbo to play around with systems programming in Inferno is that since it's a VM, you can muck it up as much as you like without affecting your host. Also, with the clean, spare implementation, there's less cruft to learn to work with the OS (also the userland).
To start, there's a few blogs and Google code projects on programming in Inferno, as well as a book.
http://www.ueber.net/who/mjl/inferno/getting-started.html
http://doc.cat-v.org/inferno/books/inferno_programming_with_...
Limbo is also a good way to learn some of the ideas in Go, which also has modules, strong types, IPC over typed channels, automatic garbage collection, and simple abstract data types. (I'd love to see Inferno updated and re-implemented in Go.)
https://github.com/catenate/inferno-cat/blob/master/sh-infer...
You could obviously update it to execute an arbitrary command: e.g. (plot watch.out.new.$pid) instead of diff, whenever a data-generating program generates a different set of data.
https://github.com/catenate/inferno-cat/blob/master/sh-infer...
Sounds like a good use case for Kickstarter.
It's not purely romance, but at least one project apparently models relationships: "Amaranthine uses simple game mechanics to reflect the ebb and flow of relationships, and lets the power of those relationships influence your success or failure now."
http://www.kickstarter.com/projects/machineage/amaranthine-a...
I have many favorite languages for different tasks, because I don't try to make one language do everything, and it takes less time and effort to make a language do things for which it was designed.
My favorite functional language is Haskell, my favorite systems language is Go (I should do more Limbo programming in Inferno), and my favorite object-oriented language is Ruby.
My favorite production-dependency-management language is my own build tool credo, followed by Plan 9's mk.
My favorite document language is UTF-8, followed by LaTeX if I actually have to make it look pretty.
The way I work in Acme, commands (whether built-in or my own) are presented in front of me for execution, so I edit and highlight and execute them. I don't take time out of thinking about code to think about the magical key combinations that do whatever. So it's more muscle memory to commands on the screen and sight recognition than remembering keystrokes. I do recall that many of my Emacs commands were muscle memory, but the more I wanted to use, the harder it was to remember them all. I lost them quickly when I stopped using emacs. Years from now the commands I used to manipulate files in a given directory will still be there in the guide file, waiting for me to run them without error. (I help this along by directory-specific logging of interesting commands.)
I was especially happy to get away from the hundreds of extra options in the GNU tools userland, which made entire other tools obsolete (e.g., sort -u obsoletes uniq, except when you need to uniq -c or uniq -d). All these options are the enemy of clarity in code, so you can more confidently write portable, straightforward scripts, go back to them later and actually read them.
In a nutshell, credo tries to advance the build-tool state of the art, by replacing *ake files with shell-scriptable commands to build a system from bits of library code. More at http://github.com/catenate/credo See especially the first literate test, which has a more complete introduction.
EDIT: Or tr, even.
Decades, if you don't buy all new rulebooks every few years like most of the RPG companies want you to.