On Jul 26, 2011, at 8:45 PM, Casey Ransberger <[email protected]> wrote:
>
> Worth pointing out that server side JS dodges this "problem." Now that Node
> is out there, people are actually starting to do stuff with JS that doesn't
> run on the client, so it's happening... whether or not it's a real
> qualitative improvement for anyone.
Well considering that Netscape Enterprise Server 2.0 ca. 1996 (15 years ago
btw) did server side JavaScript. We've seen no change at all. I also say this
having built several businesses on to of a C10k style server with server side
JavaScript for the past 8 years (a contemporary of nginx).
The lessons we collective fail to learn is that survival is not always of the
fittest, just those most realized potential of changing.
If I've learned anything from trying to reimplement Self in JavaScript it is
that JavaScript is immensely fungible. I have in a few lines of code working
variants of lisp and forth and in a few more lines will finish Self. Since I've
written x86 assemblers in JS, I'm certain I could turn any of these into a self
hosting environment in under 1kloc.
Evolving JS is a pragmatic approach to evolving the ecosystem. And while
technically nothing prevents people from building entire operating systems in
JavaScript, culturally we are adverse to it. (and since Linux boots in a js x86
emulator I don't buy any argument against the technical aspect)
The greatest danger we face is cultural tendency to rarify programming, math,
and computer science. For a simple system to be widely adopted, it must conform
to existing cultural constraints to seem familiar, but only so much.
_('tk')
('does:','text:', 's | HTML("element:","span")("contains:", s, 0,
s.length)')
('does:','image:', 'u | HTML("element:","img")("src:",u)')
('does:','sound:', 'u | HTML("element:","audio")("src:",u)')
('does:','video:', 'u | HTML("element:","video")("src:",u)')
('does:','box:', '| HTML("element:","div")')
Is straight JavaScript. But it looks a little like lisp, a little like
smalltalk, and borrowed from self and forth.
I bet you can guess what it does by reading it. How it does it though would
only be obvious to a JS expert. But the GUI that makes use of it allows a child
to build web pages procedurally.
I doubt 10% of programmers will ever be able to grasp the concept of building
grammars to program. But with the right useful abstractions, the right geometry
of objects, they won't have to. We are still a long way away from having a
circularly linked directed graph as a fundamental datatype, or an n-dimensional
mapping operator that sends messages to past states of programs and returns
what the results would have been. Hell people still type linear text in vi.
Dave
_______________________________________________
fonc mailing list
[email protected]
http://vpri.org/mailman/listinfo/fonc