This was really interesting Devon.  Thanks for sharing it.  It led me down a 
couple of rabbit holes, and one of them blew my mind:

http://vimeo.com/36579366

That video is an hour. It is worth the hour.  Bret Victor starts out by stating 
that one of his foundational, motivating principles for working and inventing 
is making it easier for creators to connect with their work, by which he means 
get feedback faster.  

Then he demonstrates how that might play out in different creative disciplines, 
through tools he developed for programmers (both concrete programming like 
writing a video game, and abstract programming like coding a search algorithm), 
for circuit designers (and how a change in medium is an unparalleled 
opportunity to improve notation), for film-makers and graphic artists (where 
new technologies like the iPad might make creating movies more fluid, 
intuitive, exploratory, and ultimately creative).  

The video is framed in a call to action for principles-driven invention, and 
ends with discussion of how some famous and effective historical figures (in 
computing and otherwise) identified invisible problems, turned them into 
missions, and ultimately built lives from them.

But leaving aside the philosophical bent, if you've ever felt the exhilaration 
of developing in the J (or APL) session manager, where there rapid 
back-and-forth almost seemed a conversation with the interpreter, or if you've 
experienced an almost playful joy when exploring a concept in the REPL, and J's 
notation felt almost suggestive to you, then you'll get what he's saying, and 
the demos will hook you.

I've known many programming languages in my life, but I've abandoned most of 
them, J being the outstanding exception.  I now see J less as a programming 
language, and more as a language; when I want to create something, my first 
instinct is to turn to J, though it lacks some of the task-oriented tools I can 
find easily elsewhere.  Part of that is its no-fuss setup, as Devon indicated, 
but another part -- the largest part -- is the immediate, fluid feedback, and 
the iterative, playful, exploratory experience it engenders.

I've often wondered how that experience can be brought to other languages, 
other endeavors - and Bret demonstrates some very compelling ideas.  

-Dan

PS:  One of the reasons J is uniquely suited to this kind of REPL-based 
development is that it is terse.  You can express big ideas in just one line, 
and then get feedback on those big ideas (that one line) immediately.  Bret's 
video demonstrates how you might achieve that in a more verbose, von-Neumannish 
language (Javascript).  I wonder what kind of development system we could 
produce if we combined J's inherently immediate nature and some of Bret's ideas!


On Jan 9, 2013, at 12:20 PM, Devon McCormick <[email protected]> wrote:

> There's an interesting article referenced by Slashdot here:
> http://www.xconomy.com/san-francisco/2013/01/08/programming-literacy-done-right-its-about-the-tools/?single_page=true.
> 
> The author makes the point that there's a lot of unnecessary cruft around
> most programming environments and identifies two gaps in particular:
> "No-fuss setup" and "Task-oriented tools".
> 
> J could do better on the first of these - though it's getting close.
> Something like automating loading all the add-ons at installation would get
> us a bit closer.
> 
> The latter gap is one we've brought up many times at NYCJUG.  It's tough to
> address thoroughly with such a small community but things like some of the
> labs and packages people have worked on - like Cliff's images add-ons - are
> steps in the right direction.
> 
> -- 
> Devon McCormick, CFA
> ^me^ at acm.
> org is my
> preferred e-mail
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to