> At this point though, I went into a different direction. Instead of
> moving the repl from the terminal to the browser, I tried moving the
> browser into the terminal.
How interesting! I just had the reverse thought today: embedding
rxvt-unicode inside of a Webkit application. This is less work than
embedding an html rendering engine in a terminal [1], at the risk of not
being substantially different from glueing a browser and terminal window
together.
Combining a terminal and browser (in whatever form) unfortunately has
two drawbacks:
1. You'll never get the current generation of programmers to drop
their favorite terminal setups or Windows-based IDE workflows.
2. Interaction with the program remains primarily through the
keyboard via the terminal.
The first point may not matter much in 30 years, as I imagine the
allure of xterm-esque terminals will have faded substantially. But for
today, this is a strong argument for decoupling the HTML5 REPL from the
terminal / editor.
I won't say, however, that I would never give up my urxvt / tmux / vim
setup, because that's exactly the kind of myopia that Bret Victor (the
spiritual progenitor of this mailing list) is attacking. What _is_
necessary to break away is a compelling interaction experience that
trumps the keyboard nirvana that many of us have extracted from our
tools.
It's not clear to me how to create general tools that have this property
[2], but in the meantime I can imagine exploring data structures and
visualizing functions in a rich REPL on the iPad next to me without
having to give up the years of investment I have in my current tools.
That said, I applaud your effort to drag us into the future. Schirm
looks quite impressive.
Cheers,
guns
[1]: You may be burned at the stake as a sorcerer if you manage to
figure out how to get curses-based apps to display html.
[2]: The solution implied by "Inventing on Principle" is to create new
editors that expose new interactive APIs.
I completely agree that dependencies should be minimal. In my proposal
the client is just the plain-old-browser, which is a given. The server
would be a lein plugin or dev dependency, so getting that running
would be as easy as is possible.
Once you require the installation of new software on the client,
adoption becomes harder.
The terminal, and the various linux programs, aren't going away any
time soon, so I was thinking of the clojure html5 repl as something
just dealing with the clojure side, supplementing the existing tool
chain. Though if system-level interaction can increasingly be brought
into the browser as well, that is a plus.
An issue I didn't elaborate that much on before is the opportunity to
fix how state is handled. "State: you're doing it wrong" very much
applies to the text-based repl, and terminal interaction generally.
Given a terminal session, it's hard to reproduce the state of the
system. This seems like an impossible problem to solve generally for
terminal-based interaction with the low level system. But in the case
of clojure, there is a lot more to work with.
(i believe this was submitted by fogus on hacker news)