After typing this up: it sounds (fragmented for one and) a little vindictive or like I'm attacking the OP or even others for their opinions. I'm not; I'm only expressing my own. I'm not flaming, and I encourage challenges to my assumptions.
Frankly this is a worn out topic. Every month someone comes along and says "you know what? I like parts of UNIX but hate the command line; if only it did X, Y, Z... ." This one seems especially awful (though not totally). Some thoughts...
“So instead, I opted for a front-end built in WebKit. [...] The front-end is merely implemented in it, as it makes it instantly accessible to anyone with HTML/CSS knowledge”
This is the part that really kills me. The textual front end of the terminal is what makes it so easy to write small programs that do one job excellently. Take, for example, this C program, which changes all its input to uppercase and outputs it to the terminal (which can then be redirected to file, a network connection, or another program with no difference to the program):
% upper_text.c #include <stdlib.h> int main() { char c; while (read(0, &c, 1) > 0) { if (c >= 'a' && c <= 'z') c -= 32; write(1, &c, 1); } } %
Now write the same program to display in a GUI (bonus points if it can still retain the ability to be rerouted into another program w/out changing its output). This is the true power of UNIX, the simplicity and flexibility of its tools.
“In TermKit's case, JSON is the interchange format of choice. The Content-Type for file listings is application/json; schema=termkit.files. The schema acts as a marker to select the right output plug-in. In this case, we want the file formatter rather than the generic raw JSON formatter.”
First off, in any case, plain text is the best medium *unless it can't effectively describe the data.* I present this as fact; it is obviously opinion, but I've yet to be convinced otherwise.
What's worse here, though, is that not only does it use JSON, it *breaks the concept of JSON* by tying it to a particular reader rather than making the data sane and then an interpreter for the sane data.
“The data pipes correspond to the classical Std pipes, with one difference: the stream is prefixed with MIME-like headers”
MIME belongs in HTTP only (and that's _really_ debatable, personally I think it should be abolished); introduction into other transports is generally a bad idea. Data should be data and only data, but even if that weren't so, look at MIME emails. They're a dreadful farce on the concept of email.
Let's explore some of the comments...
“So yeah... Looks very fancy, but looks completely impossible to use. I'll take my Unix looking like Unix.”
I'd pretty much agree here. The terminal is the most usable, most portable interface I've ever seen. It has some serious flaws, but overall it beats the hell out of WIMP for me. YMMV
“Your idea looks to me like a big security nightmare. And isn't new anyway.
BTW: "cat" isn't "display" for a reason.”
This is a huge one. In the article the author gives an example of 'cat somepdf.pdf' and it opens the PDF viewer. PDFs can (or at least could) execute code on the system. What if it was a python file? Would it print the file or execute its contents?
Not to be a total naysayer, there are *definitely* areas where the terminal can be improved. A lot of these aren't even new ideas. See http://plan9.bell-labs.com . I don't mean to sound like a horrible grumpy old UNIX fart (I'm not old enough anyways), but to me this idea is a horrible implementation of good intentions.
cthom06 added on
“And that the blog's design was also interesting in itself, although a bit too visually crowded for my taste.”
Agreed, it seemed a little overboard to me too.
cthom06 added on
That last link should've been http://plan9.bell-labs.com/plan9