[Edu-sig] As We May Think: What will we automate?

Edward Cherlin echerlin at gmail.com
Mon Mar 23 08:42:18 CET 2009


On Sun, Mar 22, 2009 at 10:40 PM, kirby urner <kirby.urner at gmail.com> wrote:
> On Sun, Mar 22, 2009 at 8:03 PM, Edward Cherlin <echerlin at gmail.com> wrote:
>
> << SNIP >>
>
>> We need a language-independent way of teaching programming concepts. I
>> have an idea for one based on Turtle Art, which represents programs as
>> trees, not texts. Most programming languages have to transform texts
>> to trees before executing or compiling them. Trees are far more
>> fundamental than texts. Everybody in the LISP world knows that syntax
>> is just sugar on the top of a language.
>>
>> I hope to see other language-independent models.
>>
>
> I'm not so sure about this, unless by "language-independent" you mean
> we go through several languages, in which case then I agree.
>
> What I shun is a "purist" approach wherein no actually executing
> language is considered worthy or good enough, because each and every
> one is considered too quirky or special case in some way (as if that
> "perfectly general language" at the end of the rainbow could ever be
> free of these defects).

Nothing like that. Turtle Art is completely executable.

http://wiki.sugarlabs.org/go/Activities/Turtle_Art

> This trading away of a very appealing feature ("it runs on a machine")
> in favor of some paper and pencil "pureness" is what I'd consider a
> rip off, as students want the fun of actually noodling and doodling
> with electrified metal, not just with wood pulp.
>
> What's fun about computing is in large degree the superhuman speeds
> attainable with fast-oscillating crystals.  The paper and pencil world
> shouldn't plan on getting in the way here, though its fine to design
> with diagrams, storyboard, all manner of squiggles (we also allow
> colored pens, not just pencils).
>
>>> << SNIP >>
>>>
>>> In the Wonderful World of the Future, most people will be actively
>>> creating active digital content with state and flow control, object
>>> abstraction, "programming" in the sense of producing automated
>>> stuff that accomplishes tasks.
>>
>> There are several programming languages popular among non-professional
>> programmers. These languages get no respect in the professional
>> community, and neither do their users. But think what a
>> non-professional programmer is. He or she is typically a specialist in
>> some other domain who needs custom programming. A statistician, a
>> scientist, an engineer, a computer musician...I know people in each of
>> those fields, and others, creating their own software to do their
>> jobs.
>
> An example or two might be helpful.  I spontaneously think of Excel,
> SPSS and Mathematica, all of which get respect, although not so much
> as "general purpose languages" -- which has specific meaning.
> Mathematica is general purpose in the sense of "comprehensive in what
> it covers" but I don't see it as a replacement for SQL or Javascript.

Most of my examples are from APL.

Stanley Jordan is a jazz guitarist who graduated from the Princeton
Computer Music program. He writes APL programs to write music.

My father was an actuary. He calculated insurance rate books in APL.



> I think it's helpful for all of us to admit that, in writing specific
> instructions in language A, we're likely also leveraging others' work
> in languages B, C and D.  For example, Python depends on C which in
> turn depends on a surrounding operating system with an API to the
> hardware, firmware controlled, and so forth.
>
> A musician using a music-editing application is just as much
> "programming", only here the "program" is notated in musical notation
> (includes loop constructs, other flow instructions) and the execution
> is in terms of a MIDI engine or whatever.
>
> People always talk about looms, punch card controlled, as an important
> feeder technology, but player pianos, other instruments driven by
> recorded media, sometimes rotating metallic, are just as important.
>
>>
>> A language for professional programmers can be quite elaborate,
>> requiring considerable effort to learn and constant use to maintain. A
>> language for non-professionals must be simple in structure, with
>> minimal syntax and minimal
>>
>
> Per the CP4E rhetoric, such as I understand it, we're aiming for a day
> when writing machine executable notations, including musical, scripts
> for puppets (avatars, characters) won't be considered a career in an
> of itself so frequently as a component skill within other more
> comprehensive disciplines.  Per R0ml, we're talking about a new kind
> of literacy.

True.

> During the Renaissance, the infusion of Hindu-Arabic algorithms and
> abacus-based thinking, trickling through Pisa and Liber Abacci, had a
> profound effect on the surrounding discourse, including in art, other
> media.  I think we're in a similar position, in terms of careers
> morphing in response to new digital capabilities.  We're just starting
> to experience the "network effects" of 21st century
> telecommunications.

Also the development of geometric optics, which led to perspective
painting in the Renaissance and to projective geometry later on.

> In more practical terms, what CP4E looks like is some computer
> language experience pre-college (and not just programming those TI
> calculators or Lego bricks), then lots of walks of life (career paths)
> wherein the job-specific "control surfaces" get accessed lexically
> (textually) through exported APIs.
>
> That's how it is already, so I'm extrapolating from a lot of points
> already.  If we think of driving a car as "operating the car's API"
> then we see how CP4E puts everyone in the driver's seat, not as a full
> time chauffeur necessarily (i.e. "programmer") but at least as someone
> who knows the freeway system (i.e. Internet), how to serve content.
>
>>> But it won't be text based. There
>>> may be a few Morlocks laboring down amongst the lines of code like
>>> you and I do.
>>
>> Mitch Bradley, the author of Open Firmware, programs to bare metal so
>> that the rest of us don't have to. He is hardly a Morlock.
>>
>
> <rant>
>
> This is what I most disagreed with in Keith's remarks.  I don't think
> all those centuries upon centuries of encoding our thinking in lexical
> constructs, grammars, is suddenly on the verge of evaporating in to
> some drag and drop cartoon-like haze.
>
> Rushing to shield children from the supposedly harmful effects of
> lexical coding, while on the other hand stressing reading books and
> imagining while so doing (i.e. not needing those pictures "as a
> crutch"), is to work at cross purposes in a self defeating pattern.

I assume that this rant is directed at my Turtle Art proposal. It is
not in any way opposed to lexical coding, which is essential for
managing programs of even half a page in length. My proposal is to
introduce tree-structured thinking first, and then show how to
represent trees in lexical constructs, whether literally in LISP, or
by punctuation, indentation, and other devices in other languages. The
idea is to teach what is common to almost all programming languages,
and make it much easier to switch from one syntax to another, as one
has to do now that nobody can program exclusively in COBOL for 40
years.

> We're not anti-lexical, aren't trying to kill off the "left brain".
> Needing to type lots of characters in order to get things to happen is
> not a terrible thing.  Wiggling fingers, instead of just lying in bed
> and programming through "chip implants" is also not a high crime.  I'm
> all for prosthetics where necessary, but why as elective surgery?  We
> have better ways to spend our R&D budgets, than on gratuitous
> peripherals for those with already functional biological equipment.
>
> </rant>
>
>>> Working with "text code" will probably be considered
>>> "fundamental" and "connected with our roots", like animal-powered
>>> agriculture is now....

Bizarre.

> Agriculture is still animal powered I would add, in that animals (such
> as humans) eat the ag products, staff the infrastructure, thereby
> keeping the wheels turning.  Without that insistent demand from the
> animals, there'd be little point doing the work.
>
>> Code will not go away. But as in the AI community long ago, we will
>> think of programs to write programs to write programs.
>>
>
> Yes, and lets not forget how languages are written in other languages.
>
> Going from Python to its C, C# or Java language "guts" is a great way
> to go.  First get the benefits, cut your teeth, feel you've got some
> high level skills, then dive beneath the surface and start ripping
> into the internals, learning about PyObject or whatever.

It is also extremely instructive to look at Virtual Machine
implementation, which used to be like bootstrapping FORTH, and has
since evolved into Parrot 1.0 (just recently released).

> It's also fine to go from Python to C++, like in John Zelle's new
> book.  Large parts of Python's favorite libraries are written in C++,
> notably wx and VPython (many others, feel free to chime in?).

See Alan Kay below.

>>> So take a look at "programming in schools" from the viewpoint of
>>> an adult in 2030, not a 2009 viewpoint, and heaven forbid from the
>>> viewpoint of the ancient times when you and I were trained. What
>>> do you wish you had been taught 40 years ago?
>>
>> Not BASIC, not Pascal, not even Python. In my case, Smalltalk,
>> LISP/SCHEME, FORTH, and APL/J, each of which presents a different
>> model for thinking about how computers work and about how to represent
>> knowledge and skill. Each also has a radically simple syntax and a
>> universal concept of data structures. In Smalltalk, everything is an
>> object. LISP represents everything in trees. APL in forests. FORTH in
>> memory layout. LISP, FORTH, and APL each has a different way to model
>> object-oriented programming.
>>
>
> We've had some discussion on this list about whether we care about
> some unified primitive data structure.
>
> I sense countervailing temperaments at work.  Some people just feel
> better when there's this sense of a unified substrate, a primitive
> simple beginning.  Others are less monotheistic in their proclivities
> and don't mind a more heterogeneous "toolbox" model.  You get down to
> a bunch of very different things, working in complement.  But there
> you have it:  "everything is a thing" in basic English (a useful
> design pattern, even though ridiculously misleading).

There are quite other motives at work. One set is that some people are
willing to take on a greater memory load than others.

>> "I invented Object-Oriented Programming, and C++ is not what I had in
>> mind."--Alan Kay
>>
>
> Yet we want to recruit talent willing to learn and work with C++.
> I've put quite a bit of work into thinking how we might recruit future
> M programmers (suMerian meme), copying humanities disciplines focused
> on ancient cultures (linguistics, archeology, history, warcraft...
> poetics).  They tell me UC Davis is still a hotbed of MUMPS
> scholarship.

I know the OpenVistA people. It's worldwide.

> This isn't easy work for me though, because in other contexts,
> hospitals clinging to "dead language" systems like MUMPS is biting
> into my take home pay.  I want elegant FOSS solutions to replace
> creaky, unmaintainable, unscalable systems, but bureaucrats fight me,
> because people like using what they already know.

You now face a dilemma. OpenVistA _is_ FOSS.

> Upgrading is
> painful, and yet without upgrading, we'd still be living in caves
> roasting bats for dinner.
>
> I think I'll stop trying so hard to help the MUMPS people.  Let them
> solve their own propagation puzzles eh?  I've got enough on my plate.
> Nevermind about suMerian, forget I ever brought it up.
>
>>> What was fashionable but dated?
>>
>> Computer literacy is the worst. Just as though we had a room where all
>> of the pencils and paper and books were kept, where you could fool
>> around for an hour or two a week, but you had no books in your
>> courses, and you could not do written homework. Earth Treasury is
>> working on Digital Textbooks, now that we can give children the use of
>> computers 24/7.
>>
>
> I like that any teacher can bookmark a boatload, and sustain
> storytelling with all manner of media, thanks to those nifty little
> URLs, invented in Switzerland they tell me.  If I had to choose,
> whether particle physics, or the web itself, was CERN's most valuable
> output.... fortunately I don't have to choose (nor would anyone care
> if I did (have to)).
>
>>> Extrapolate that forwards, and try to guess what they
>>> will want, not what you and I consider important /now/. For extra
>>> points, try to guess what they should be teaching *their* kids,
>>> for use in the year 2060, and get started on the theoretical
>>> underpinnings of *that*.
>>
>> In 2060 there will be new physics and math that we have no idea of.
>> There will be new media, and new art forms. We will not think about
>
> Another way of saying it:  even right now, today, many young people in
> our midst are doing stuff that'll seem pretty mundane and mainstream
> when they're old people, because then they'll be the ones running
> things while the rest of us, who don't understand them today, probably
> don't need to just to get our own work completed (we're completing
> projects that would've seemed zany and unthinking 50 years ago, except
> to people like Vannevar Bush, who anticipated Google (called it a "the
> MEMEX" in 1945)).

And if he had published the idea of solving for the eigenvector of the
connectivity rating matrix, we could have had it a lot sooner, because
that's what Google contributed to the world of search: PageRank.

>> economics and politics as we do now. We can expect that everybody on
>> Earth who wants to be on the Internet will be. Dire poverty should
>> have ended. We cannot specify content in advance. What I want is for
>> children to be taught collaborative discovery in the realm of powerful
>> ideas.
>>
>
> A lot of us were planning to end death by starvation by 2000 (e.g. The
> Hunger Project), consider the delay on meeting that target a sign that
> we're still dangerously low IQ as a species.

EQ, I think. "All for ourselves, and nothing for other people seems,
in every age of the world, to have been the vile maxim of the masters
of mankind."--Adam Smith, Wealth of Nations

> Philanthropists feel its a lot on their shoulders.  Broadening the
> base of philanthropists is a core mission of my "cafe philanthropique"
> franchise, branded CSN around Portland, mostly viral in the
> blogosphere these days (using "viral" in a positive sense is one of
> those features of "geekspeak" that confuses the "less geekazoid").
>
>> o What is this? Is it real? How do I know? (In a $2 word, ontology)
>>
>> o What does this mean? Is it true? Why should you believe me? (epistemology)
>>
>> o Is this important? Should I do something about it, even if I don't
>> want to? (ethics)
>>
>
> Yes, I would underscore the relation between FOSS and ethics.  A
> rather considerable amount of negative PR has been directed at
> "hackers", not limited to trying to make "Linux" to blame for the dot
> com crash in some way (more lame Wall Street action, like we've seen a
> lot more of more recently), or to making "copying" synonymous with
> "pirating" as if (a) pirates "just copied" their booty or (b) as if
> copying around our own stuff weren't perfectly legal according to our
> own copyright (aka copyleft) laws (aka licenses).
>
> I'd say Richard Stallman is one of our great turn-of-the-millenium
> ethicists and it's silly not to recognize that i.e. if you're studying
> ethics in university someplace and don't know who Richard Stallman is,
> then maybe you go to some lackadaisical academy that shouldn't be
> handing out "doctor of philosophy" degrees in anything, let alone in
> philosophy itself!
>
>>> I'm wondering what people on this list think about this remark.
>>>
>>> I responded rather sharply at the time, as I think it's a common
>>> dodge, to avoid adding grist to the mill today, because of some
>>> hypothetical future wherein said "grist" will be obsolete.
>>
>> I do not argue against grist. I argue that our children should be able
>> to adapt the mill when necessary.
>>
>
> I'd argue they will do so, whether we wish it or no.

They are presently neither educated to do so, nor permitted. See Bush
Administration, Global Warming, gas, oil, and coal.

> However, to bring about change in an orchestrated, smooth, even
> enjoyable way, takes plenty of skill.  We need to do our damnedest to
> transmit any wisdom we may think we have gleaned in this regard.
>
> And let's learn from our elders while we're at it, even as we adapt
> the hell out of this mill of ours.  Many are working overtime to make
> sure that we "get it" (whatever "it" is).
>
>>> In the meantime, we continue teaching technical subjects as if the
>>> FOSS revolution never happened, I think imperiling its gains (sliding
>>> back into a pit of "deep silos" proprietary ignorance -- could
>>> happen).
>>
>> Some of us are working on integrating FOSS into the heart of the
>> curriculum. In order to penetrate into the other world you speak of,
>> we have to get past the current bureaucratic textbook acquisition
>> process. We can do that because our books will have no cost. We have
>> to integrate software into textbooks, and into the curriculum, as we
>> can with one-to-one computing. We know of social and political forces
>> preventing school reform. FOSS allows us to go around these obstacles.
>> We must prepare to meet others that will arise.
>>
>
> Yes, this sounds like a good summary of what a lot of people are
> working on.  The idea of a textbook is very reassuring to most
> teachers.  They really don't want to venture into a subject without
> one.

But that's just camouflage. We intend to dynamite the current idea of
static textbooks, and replace them with software that offers multiple
paths through a topic.

> "No textbook" is like sitting in front of an audience with no sheet
> music, expected to just improvise.  That's just not how many musicians
> were trained.
>
> You don't spontaneously think up symphonies or duets.  You carefully
> craft them over a period of months if not years, then serve them up,
> complete and "shrink wrapped" (like a new computer game, a team
> effort).
>
> My bias is towards improv and jazz but that's only because I've carved
> out various niches within the Internet as my sandbox and playground,
> now run around in same "as if" it were some kind of textbook (a new
> kind of textbook), consisting mainly of URL-identified resources
> cross-referencing in various ways.

Then you should understand my emphasis on improvisational languages
that don't put a lot of structure in the way of getting things done.

> Thanks for putting a lot of thought into your posts to this list.
>
> I like remembering my time with Smalltalk.
>
> That notion of saving an "image", a state machine, more like a whole
> doll house, with everything paused, is really interesting.
>
> I don't think beginner courses with Python do enough with pickling or
> sharing objects over networks.  I know my own curriculum writing is
> currently quite deficient in that respect.
>
> I usually find that when I work in a different language for awhile,
> then go back to one I'm more familiar with, I have new sensibilities
> "under my skin" which effect me even still.  Habits of thought persist
> across languages.
>
> That's sometimes for the better, sometimes for the worse.
>
> I'm thinking it's partly the job of textbook writers aka curriculum
> designers, to "stack the deck" such that these transition experiences
> are more likely to net positive synergies than negative.
>
> That's why I think a *sequence* is important.  It's all fine and good
> to say "they should have some exposure to LISP and/or Scheme" but then
> exactly where and how?  The devil is in the details.
>
> For me, it might just be that in describing the "little lambda" in
> Python (what it does) I take this opportunity jump over to the Big
> Lambda religions [screen shot] and show what "real" (heavy duty)
> anonymous functions look like ("lambda" is kind of like "anon" in
> literature), in all their (sometimes tail recursive) glory.
>
> Likewise with APL/J, my bridge is probably the primitive data
> structure known as "a list" in Python, and the idea of "dimension"
> with respect to "array" (a kind of list).
>
> Working with Bernie Gunn, the New Zealand geochemist, it was
> interesting to see how counterintuitive it seemed to him, that we
> could look at v=[[a,b],[c,d]] as a "two dimensional array" such that
> v[0][1] in Python was like v[0,1] in Pascal or FORTRAN.
>
> This use of "dimension" is in turn our bridge to "hyperdimension" in
> mathematics, where once again, we're talking deeply nested arrays of
> the kind APL eats for breakfast -- except in geometry we might call
> some of these data structures "polytopes" ("like tesseracts 'n shit"
> (sorry -- 'Idiocracy' allusion, a fave movie)).
>
> Thanks again,
>
> Kirby
>
>>
>>
>> --
>> Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name
>> And Children are my nation.
>> The Cosmos is my dwelling place, The Truth my destination.
>> http://earthtreasury.net/ (Edward Mokurai Cherlin)
>>
>



-- 
Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name
And Children are my nation.
The Cosmos is my dwelling place, The Truth my destination.
http://earthtreasury.net/ (Edward Mokurai Cherlin)


More information about the Edu-sig mailing list