A discussion is currently ongoing in the Clojure Dev mailing list.
We are still waiting for someone from Clojure/core to chime in.
Regards,
BG
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clo...@googlegroups.com
> Note that posts from new members are moderated - please be patient with your first post.
> To unsubscribe from this group, send email to
> clojure+u...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
--
Baishampayan Ghose
b.ghose at gmail.com
'(Devin Walters)
> Some seeds for project ideas:
> - documentation
> - clooj
> - clojars
> - leiningen
If I had any big ideas for Leiningen I don't think I could wait until
the summer to implement them... but I would be happy to help mentor for
Clojars.
-Phil
Whoa, hold your horses. Aren't "Decent" and "Emacs-based" mutually-exclusive?
> Brief explanation:
> Clojure has a critical need for a good novice-friendly IDE.
"Novice-friendly" and "Emacs-based" definitely are.
Sorry, but this is probably a nonstarter...
> Expected results:
> Emacs that acts as a Clojure IDE on a level how Eclipse handles Java
Actual results: a large spike in ibuprofen sales at area pharmacies. :)
The problem is the Emacs UI-paradigm. It's so completely at odds with
what have become defacto industry standards (exemplified by Windows,
MacOS Toolkit GUI, Swing, Gnome, KDE) that there's basically no way to
sugar it up into something novice-friendly, or even just something
that won't have the novice ripping out his hair and banging his head
against sturdy objects struggling to make it behave the way it
"should" when he tries to select, copy, paste, move, deselect,
replace, etc.
The emacs learning curve is more like a vertical cliff face than a
ladder with lots of small steps...
> On Feb 27, 10:00 pm, Cedric Greevey <cgree...@gmail.com> wrote:
>> The emacs learning curve is more like a vertical cliff face than a
>> ladder with lots of small steps...
>
> I still don't get the point you are trying to bring.
Feeding the troll just makes things worse.
Thanks for your consideration.
-Phil Hagelberg, on behalf of the list denizens with finely-tuned killfiles
It is, of course, neither of those things. Instead, it is "An
autodidact cannot quickly learn to use Emacs"; also, "a new user will
be frustrated trying to learn Emacs, particularly unassisted". Both
mean that an Emacs newbie cannot, under normal circumstances, expect
to be productive very quickly, not the way they could be in, say,
clooj or Enclojure.
This, in turn, appears to make "novice-friendly" and "Emacs-based"
mutually exclusive, where by "novice" is meant "not a pre-existing
Emacs user, perhaps among other things".
As for the vertical cliff face specifically, the cause (based on my
own attempts to use it on some Unix system some time ago) seems to be
the way Emacs doesn't do *one single thing* in common with *any*
popular software user interface. It's a nearly perfect circle of
protection from newbies getting a grip on it. On the one hand, many
basic editing functions have different and unguessable key bindings.
OK, no problem, right? There's help, even a tutorial, etc. But when
you open the help, it opens by the Emacs editor splitting down the
middle, inside of Emacs, rather than as a separate thing. And because
it's inside Emacs, the help's got idiosyncratic key bindings of its
own. The complete newbie will have no clue how to (or even if they
can) search it (no perceived affordances, in HCI-speak) and will have
to scroll up and down skimming the text to find stuff. Of course, then
there's the final plate in the newbie-proofing armor: once you've
found the section on how to do X (say, paste, or even save and quit),
now you need to get the input focus out of the help side of the
display and back to the side with your text file in order to actually
do it. Only problem is, the obvious (alt-tab, control-tab) of course
don't work and so you can't get back without scrolling around in the
help file some more, to find out how to switch the input focus between
panes.
The final straw will be when you discover that you *can't have the
input focus in the editor with the how-to-do-X instructions displayed
in the help pane*. Either the input focus is in the editor but the
how-to-switch-panes instructions are in the help pane, or the
how-to-do-X instructions are in the help pane but the input focus is
in the help pane. The only way to get to the editor and do X requires
you to either memorize the how-to-do-X instructions, navigate to the
how-to-switch-panes instructions, switch panes, and then do X, or
memorize the how-to-switch-panes instructions, navigate to the
how-to-do-X instructions, switch panes, and then do X. And remember
how to switch panes again when the time comes to now dredge up the
help on how to do Y.
The problem is that both require keeping one set of instructions
memorized *while finding, reading, and performing the other*, which
will tend to cause you to forget the first set, due to the limited
size of human working memory. If even one of the things (say, how to
switch panes) was second-nature from repeated use (like alt-tab
already will be), this wouldn't be an issue, but since *every single
thing* is done differently in Emacs, *none* of them will be
second-nature to a new user, and with the above effect resulting from
that, the new user cannot get anything nontrivial done until at least
a few of these things are second-nature, which point they won't get to
until they have spent a while using Emacs to get things done, which is
a clear Catch-22.
Basically, just to do common editing tasks will require you to
actually *take written notes*, or at least use a separate open
Notepad/whatever window in your operating system, and if you're going
to use Notepad (or even pencil and paper!) why are you not just using
Notepad instead of Emacs? It gets to be a "what's the point" sort of
thing.
(And it used to be even worse, or so I hear, back in the 70s or 80s.
No arrow keys, so even scrolling in the help couldn't be done in an
"obvious" way even to find out how to scroll in the help; and no
"press <whatever> for help" status-line or whatever right after
startup, so if you even got the help to display at all, it was by
sheer accident and/or button-mashing, and you were damned if you knew
how to make it happen again.)
Now, in theory, learning how to use, say, Windows has the same initial
cliff-face hurdle. Once you know alt-tab, you can have help open to
anything alongside anything else you're working on and switch between
them, in particular, but until then, you would have the same
difficulty working on something while having relevant help visible
onscreen. Of course, you probably got shown the ropes early in life,
rather than having to (try to) learn on your own. And there's another
thing: with Windows, MacOS, or any other GUI convention, you only have
to get over that hurdle *once*. Once you know this you know it for
*every native application, existing or yet to be invented*. You also
get the basics for editing in text boxes and input forms in every
native app. And what to expect OK, Cancel, etc. buttons to do. And so
on, and so forth. On the other hand, once you have Emacs's
switch-panes command memorized, you know how to switch panes in Emacs.
Not only can't you leverage your existing knowledge of alt-tab or
anything else in Emacs, you can't leverage your hard-won Emacs
knowledge anywhere else either. And it loses a lot of potential value
that way, by network effects, or rather lack of same.
So, nowadays, in the age of widespread UI conventions, learning Emacs
is like building up a big movie library on Betamax cassettes. You can
use it, sure, given you keep a player in working order; maybe you can
even share it with some enthusiasts; but it's not nearly as valuable
as if you'd chosen some other format. :) Of course, for preexisting
Emacs users it's a sunk cost. They may as well stick with what they
know. But the difficulties, and lack of transferrable knowledge in or
out, make it a dubious proposition for new users.
Responding to someone's reasoned concerns with name-calling just makes
things worse.
Thanks for your consideration.
-Cedric Greevey, on behalf of the list denizens who prefer meaningful
discussions to mud-slinging.
Hm. It might not be *quite* as bad nowadays, since now we a) have
google and b) would probably be running Emacs (or connecting to it) in
an emulated terminal in a desktop window with other, more familiar
tools available alongside it, instead of being at a green-glowing
terminal display without any of those resources ...
Still sounds like more startup work for the newbie than basing it off
another IDE, especially if by "another IDE" is meant "clooj". :)
I'd mentor someone willing to do work on the literate programming
version. See
http://daly.axiom-developer.org/clojure.pdf
http://daly.axiom-developer.org/clojure.pamphlet (src)
Even more interesting... It appears that the ePub standard allows
embedded javascript. So ideally we would like to manipulate a
canvas to show the ideas. For instance, I'd like to see a digital
book that had a canvas element that showed the red-black-trie
evolve, potentially interactively.
Even more interesting... Write the generated javascript for the
above ePub demonstration using ClojureScript
I'd be willing to mentor any of those.
>
>
> More ideas that might bear interesting and desirable fruit:
> - Make an album with Overtone. (Kidding (but only a little bit (not
> kidding at all, actually (I bet we'd get some passionate proposals
> (and maybe even a record deal ;)))))
I watched the overtone video shortly after finishing both the
stanford machine learning course, the signals course and a
genetics course.
It would be possible to extract features from your favorite songs
e.g ( http://www.ams.org/notices/200903/rtx090300356p.pdf ) using
FFT signal processing. (signals) Use the overtone feature set to
define the possible features. (overtone).
It would be possible to rank the features of your favorite songs
by listening to each song and constructing a "like" value for each
song (e.g. hit the + key multiple times, or use a number to rate
the song from 1 to 11 (ala spinal tap). (machine learning)
Having ranked the songs, use the learning algorithm to predict
the kinds of songs you like based on features. Use overtone to
generate new songs with the most popular features (overtone).
Use vector crossovers to generate new songs. (genetic programming).
Rinse and repeat.
Sort of a "sample" without samples :-)
I'm actually working on the ePub idea with a book so the
"mentoring" would actually be more of a collaborative effort
since it travels into what is, for me, new territory.
There are still some things to demonstrate and a lot of reading
of the ePub3 standard but it progresses slowly. An ePub book
with embedded interactive canvas elements seems to be the best
path to inspire people to write literate software.
Tim Daly
da...@axiom-developer.org
--