Re: [fonc] [IAEP] Barbarians at the gate! (Project Nell)

2012-03-14 Thread C. Scott Ananian
On Wed, Mar 14, 2012 at 12:54 PM, Alan Kay alan.n...@yahoo.com wrote:

 The many papers from this work greatly influenced the thinking about
 personal computing at Xerox PARC in the 70s. Here are a couple:

 -- O. K. Moore, Autotelic Responsive Environments and Exceptional
 Children, Experience, Structure and Adaptabilty (ed. Harvey), Springer, 1966
 -- Anderson and Moore, Autotelic Folk Models, Sociological Quarterly, 1959


Thank you for these references.  I will chase them down and learn as much
as I can.


 2. Separating out some of the programming ideas here:

 a. Simplest one is that the most important users of this system are the
 children, so it would be a better idea to make the tile scripting look as
 easy for them as possible. I don't agree with the rationalization in the
 paper about preserving the code reading skills of existing programmers.


I probably need to clarify the reasoning in the paper for this point.

Traditional text-based programming languages have been tweaked over
decades to be easy to read -- for both small examples and large systems.
 It's somewhat of a heresy, but I thought it would be interesting to
explore a tile-based system that *didn't* throw away the traditional text
structure, and tried simply to make the structure of the traditional text
easier to visualize and manipulate.

So it's not really skills of existing programmers I'm interested in -- I
should reword that.  It's that I feel we have an existence proof that the
traditional textual form of a program is easy to read, even for very
complicated programs.  So I'm trying to scale down the thing that works,
instead of trying to invent something new which proves unwieldy at scale.

b. Good idea to go all the way to the bottom with the children's language.

 c. Figure 2 introduces another -- at least equally important language --
 in my opinion, this one should be made kid usable and programmable -- and I
 would try to see how it could fit with the TS language in some way.


This language is JSON, which is just the object-definition subset of
JavaScript.  So it can in fact be expressed with TurtleScript tiles.
 (Although I haven't yet tackled quasiquote in TurtleScript.)

d. There is another language -- AIML -- introduced for recognizing things.
 I would use something much nicer, easier, more readable, etc., -- like
 OMeta -- or more likely I would go way back to the never implemented
 Smalltalk-71 (which had these and some of the above features in its design
 and also tried to be kid usable) -- and try to make a version that worked
 (maybe too hard to do in general or for the scope of this project, but you
 can see why it would be nice to have all of the mechanisms that make your
 system work be couched in kid terms and looks and feels if possible).


This I completely agree with.  The AIML will be translated to JSON on the
device itself.  The use of AIML is a compromise: it exists and has
well-defined semantics and does 90% of what I'd like it to do.  It also has
an active community who have spend a lot of time building reasonable dialog
rules in AIML.  At some point it will have to be extended or replaced, but
I think it will get me through version 1.0 at least.

I'll probably translate the AIML example to JSON in the next revision of
the paper, and state the relationship of JSON to JavaScript and
TurtleScript more precisely.

3. It's out of the scope of your paper and these comments to discuss
 getting kids to add other structures besides stories and narrative to
 think with. You have to start with stories, and that is enough for now. A
 larger scale plan (you may already have) would involve a kind of weaning
 process to get kids to add non-story thinking (as is done in math and
 science, etc.) to their skills. This is a whole curriculum of its own.

 I make these comments because I think your project is a good idea, on the
 right track, and needs to be done


Thank you.  I'll keep your encouragement in mind during the hard work of
implementation.
  --scott

-- 
  ( http://cscott.net )
___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] [IAEP] Barbarians at the gate! (Project Nell)

2012-03-14 Thread C. Scott Ananian
On Wed, Mar 14, 2012 at 6:02 PM, Jameson Quinn jameson.qu...@gmail.comwrote:

 If you're going to base it on Javascript, at least make it
 Coffeescript-like. I also agree that some basic parallelism primitives
 would be great; it is probably possible to build these into a
 Coffeescript-like dialect using JS under the hood (though they'd probably
 optimize even better if you could implement them natively instead of in
 JS).


I think you are underestimating the value of using a standard
widely-deployed language.  I love languages as much as the next guy---but
our previous learning environment (Sugar) has had incredible difficulty
getting local support outside the US because it is written in *Python*.
 Python is not a commercially viable language (not my words) and you
can't even take university classes in Python in many countries (say,
Uruguay) because there is no company behind it and no one who will give you
a certificate for having learned it.

This is very sad, but the true state of affairs.

JavaScript is not perfect, but at heart it is a functional object-oriented
language which is pretty darn close to Good Enough.  There are huge
benefits to using a language which is supported by training materials all
over the web, university systems outside the US, etc, etc.

I am open to *very* slight extensions to JavaScript -- OMeta/JS and
quasiquote might squeeze in -- but they have to be weighed against their
costs.  Subsets are even more problematic -- once you start subsetting,
then you are throwing away compatibility with all the wealth of JavaScript
libraries out there, in addition to confusing potential contributors who
are trying to type in examples they found in some book.
  --scott

-- 
  ( http://cscott.net )
___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


[fonc] Project Nell

2012-03-13 Thread C. Scott Ananian
Chris Ball, Michael Stone, and I have just written a short paper on Project
Nell, which should be of interest to this list:
  http://cscott.net/Publications/OLPC/idc2012.pdf

The paper mentions TurtleScript (http://cscott.net/Projects/TurtleScript/)
which I've discussed on this list before.
 --scott

-- 
  ( http://cscott.net )
___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


[fonc] Narrative Interfaces

2011-06-15 Thread C. Scott Ananian
We're having some invited talks this Friday at One Laptop per Child's
offices on Narrative Interfaces.  Full talk description here:
   http://cananian.livejournal.com/64747.html

I've been working on building a small modular growable direct system
along the lines of several others discussed on this list (see
http://cananian.livejournal.com/tag/turtlescript ) -- but the focus of
these talks is going to be somewhat different: assume that we've built
such a nice transparent system.  How do we write the code walkthrough?
 How do we guide learners through the edifice we've built?  How ought
we show off corners of the architecture which they might not stumble
into on their own?

Put another way: the Dynabook (and/or the Primer in Neal Stephenson's
The Diamond Age) isn't *just* architecture.  There's some content,
too -- how ought we to write that?

Chalkboard's translation of Abelson and diSessa's Turtle Geometry book
(http://tinlizzie.org/chalkboard/#TurtleGeometryHome) is a step toward
this goal.  Interactive Fiction works such as Inform School
(http://www.sparkynet.com/spag/i.html#informsch) are steps toward the
same goal from a different direction.

The talks will be live-streamed and also available for download after
the event.  I hope the audience here finds the topic of interest.
  --scott

-- 
      ( http://cscott.net )

___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


[fonc] Improving efficiency of Worlds, in Software and Hardware

2011-06-14 Thread C. Scott Ananian
On Mon, Jun 13, 2011 at 11:17 AM, Alan Kay alan.n...@yahoo.com wrote:
 For example, take a look at Alex Warth's Worlds work (and paper) and see
 how that might be used to deal with larger problems of consistency and
 version control in a live system.

I just read this paper for the first time.  Very nice work; I think it
is a nice generalization of the software transactional memory work
that's been done recently.  At the same time, it has some of the same
drawbacks (especially in regard to managing external side effects,
like from I/O).

On the other hand, there's been a lot of work done on efficient
implementations of transactional memory in software and hardware, and
worlds can benefit from this fairly directly.  For example, (to cite
my own work): Unbounded Transactional Memory is a straightfoward cache
modification which would make worlds scalable
(http://cscott.net/Publications/HPCA05/hpca05-camera.pdf) and
functional arrays provide a mechanism for decoupling the performance
of the implementation from the size of the chain of worlds to allow
deep undo-trees, as described in
http://cscott.net/Publications/scool05.pdf and my thesis.  In
particular, I recommend Tyng-Ruey Chuang’s implementation of shallow
binding 
(http://academic.research.microsoft.com/Publication/313627/a-randomized-implementation-of-multiple-functional-arrays
).
  --scott

-- 
      ( http://cscott.net )

___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


[fonc] Re: Improving efficiency of Worlds, in Software and Hardware

2011-06-14 Thread C. Scott Ananian
(As a minor technical note: it appears that the implementation of
flattenHistory in figure 4 occurs in the wrong order.  Worlds should
be committed from the root to the leaves, shouldn't they?)
  --scott

-- 
      ( http://cscott.net )

___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Re: Improving efficiency of Worlds, in Software and Hardware

2011-06-14 Thread C. Scott Ananian
Thanks for the explanation.  I think I was confused originally because
your API is:

   in world {
  ...
   }
   world.commit()

where I was expecting:
   in world {
  
  world.commit()
   }

ie, in your API, even though the API occurs in the root context, it
doesn't (usually) *affect* the root world... it affects the receiver
world and its parent only.  So when I saw commits from the leafs up, I
was thinking, how can you start by committing the leaf to the root
world?

I understand where I went wrong now, but on reflection it still seems
odd that the parent context isn't explicitly mentioned in the API.
Instead writing
   world.parent.commit(world);
would make clear what two worlds are affected... but that's
unnecessarily verbose.  So not necessarily an improvement to anything
other than my originally-confused brain.

OK, my email is too long now, too!
  --scott

-- 
      ( http://cscott.net )

___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Alternative Web programming models?

2011-06-13 Thread C. Scott Ananian
On Mon, Jun 13, 2011 at 4:02 PM, BGB cr88...@gmail.com wrote:
 Consider what it'd be like if we didn't represent code as text... and
 represented it maybe as series of ideograms or icons (TileScript nod).
 Syntax errors don't really crop up any more, do they? Given a slightly nicer
 User Interface than tilescript, you could still type your code, (ie use the
 keyboard to fast-select tokens), but the computer won't validate any input
 that isn't in its dictionary of known possible syntactically correct items
 given whatever context you're in.

I think Tiles prevent syntax errors is a red herring.  Sure, you can
prevent stupid typos by offering only tiles with correctly spelled
keywords, but that's not really a major problem in ordinary
experience.  The more pernicious errors aren't especially affected one
way or the other by tile-based systems.  (You could just as accurately
say that strongly-typed systems prevent errors.)

 given that most non-Chinese can't read Chinese writing, despite that many of
 these characters do actually resemble crude line-art drawings of various
 things and ideas.

It is a common linguistic misperception that there is some one-to-one
correspondence between an ideogram and the idea it represents.  The
english letter A was originally a drawing of an ox-head.
(http://en.wikipedia.org/wiki/A).  It is as accurate to say that
English letters resemble crude line-art drawings as to say that
Chinese ideograms do.

 and meanwhile, many Asian countries either have shifted to, or are in the
 process of shifting to, the use of phonetic writing systems (Koreans created
 Hangul, Kanji gradually erodes in favor of Hiragana, ...). even in some
 places in China (such as Canton) the traditional writing system is
 degrading, with many elements of their spoken dialect being incorporated
 into the written language.

This is also playing fast and loose with linguistics.  Let's be wary
of drawing analogies to fields where we are not expert.
  --scott

-- 
      ( http://cscott.net )

___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Alternative Web programming models?

2011-06-13 Thread C. Scott Ananian
On Mon, Jun 13, 2011 at 11:17 PM, Julian Leviston jul...@leviston.net wrote:
 I think Tiles prevent syntax errors is a red herring.  Sure, you can
 prevent stupid typos by offering only tiles with correctly spelled
 keywords, but that's not really a major problem in ordinary
 experience.  The more pernicious errors aren't especially affected one
 way or the other by tile-based systems.  (You could just as accurately
 say that strongly-typed systems prevent errors.)

 When you're about to type the next tile, you're given options... anything 
 outside of those options is impossible, so the computer doesn't put it in, 
 because syntactically it wouldn't make sense.

There's nothing specific to tiles in what you wrote.  You could do the
same just as easily with a keyboard-based system.
This is what I mean when I say that tiles prevent syntax errors is
not accurate; it's confusing two separate things.
Again: more accurately you could say, strong typing can prevent
syntax errors...  tiles have nothing to do with it, really.
  --scott
-- 
      ( http://cscott.net )

___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] why are true,false,nil pseudovariables

2011-06-12 Thread C. Scott Ananian
On Sun, Jun 12, 2011 at 1:43 AM, David Barbour dmbarb...@gmail.com wrote:
 Anyhow, I agree that there are plenty of optimizations available. But I
 don't believe we can replace a true/false/nil method invocation with a
 specialized bytecode in a typical open system.

SELF did not have specialized bytecodes for these.  See
http://selflanguage.org/documentation/published/implementation.html
  --scott

-- 
      ( http://cscott.net )

___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] why are true,false,nil pseudovariables

2011-06-12 Thread C. Scott Ananian
On Sun, Jun 12, 2011 at 2:20 PM, David Barbour dmbarb...@gmail.com wrote:
 On Sun, Jun 12, 2011 at 1:07 AM, C. Scott Ananian csc...@laptop.org wrote:
 SELF did not have specialized bytecodes for these.  See
 http://selflanguage.org/documentation/published/implementation.html
  --scott

 Why is this relevant? The opening question was about Squeak.

The self system included a full implementation of Smalltalk.

Look, this isn't really a big deal.  Squeak makes some architectural
choices.  We're discussing alternatives.  It's certainly possible for
Squeak to have used a different compilation strategy for constants.
You could start with the architecture of SELF, for example, and make
the tradeoff that you have a lot of native methods but gain the
advantage of very few specialized bytecodes.  You may prefer to have
more specialized bytecodes and fewer native methods, or some other
point in the design space.  There's no right or wrong here.  I'm just
puzzled why you seem to be insisting that no other alternative to
Squeak's design is possible, when there are multiple existing systems
which demonstrate the opposite.

I've been continuing the discussion because it's been a nice
opportunity to tip my hat to a lot of other people's excellent and
interesting systems work, but I think it's time this thread ended now.
  --scott

-- 
      ( http://cscott.net )

___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Alternative Web programming models?

2011-06-11 Thread C. Scott Ananian
On Sat, Jun 11, 2011 at 1:40 AM, BGB cr88...@gmail.com wrote:
 The responsiveness of exploratory programming environments (such as the
 Smalltalk programming environment) allows the programmer to concentrate on
 the task at hand rather than being distracted by long pauses caused by
 compilation or linking.

 this is also partly where dynamic script loading and eval can be nifty...
 say, one is using an app, and then in the console they type in a command,
 say:
 ;load(scripts/myscript.bs);
 and can quickly edit the file, hit the uparrow in the console to re-enter
 the prior command, and observe the results.
 or, the ability to directly type script commands into the console to observe
 results, ...

You should spend some time playing around with the Web Inspector in
Chrome or other Webkit browser.  Console, live code editing, lots of
other good stuff.  The only big drawback is the complexity of the
system: HTML+CSS+JS is quite a hairy beast.

 but, I was also left recently thinking some about the possible strangeness
 of me basically creating a vaguely Lisp-like programming environment within
 C.

http://en.wikipedia.org/wiki/Greenspun's_Tenth_Rule
  --scott

-- 
      ( http://cscott.net )

___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] why are true,false,nil pseudovariables

2011-06-11 Thread C. Scott Ananian
On Sat, Jun 11, 2011 at 2:05 AM, David Barbour dmbarb...@gmail.com wrote:
 On Mon, Jun 6, 2011 at 11:48 AM, Ondrej Bilka nel...@seznam.cz wrote:

 My point is that you could just Object have methods true,false and nil
 Any reasonably optimalizing compiler would replace them with bytecode.

 As methods, you could override them. And since you don't know which
 subclasses override these methods, you couldn't optimize.

This is a very limited way of thinking about your compiler.  It hasn't
been mainstream thinking since the advent of Java, which turned
conventional compiler technology on its head.  (Obviously, the ideas
quite predate Java, but I'm just speaking of point at which the
majority of papers in academic compiler conferences (say, PLDI)
suddenly shifted away from purely static compilation.)
  --scott

-- 
      ( http://cscott.net )

___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] why are true,false,nil pseudovariables

2011-06-11 Thread C. Scott Ananian
On Sat, Jun 11, 2011 at 11:19 PM, David Barbour dmbarb...@gmail.com wrote:
 On Sat, Jun 11, 2011 at 6:33 PM, C. Scott Ananian csc...@laptop.org wrote:
 the majority of papers in academic compiler conferences (say, PLDI)
 suddenly shifted away from purely static compilation.

 True, if you use a dynamic compiler you can do quite a few more
 optimizations. I guess I'm used to the embedded world, where static
 compilation is still king.

Even if you're doing pure static analysis, you should be doing
open/closed class analysis and specializing/inlining any class which
has no subclasses in the compilation.
 --scott

-- 
      ( http://cscott.net )

___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] why are true,false,nil pseudovariables

2011-06-11 Thread C. Scott Ananian
On Sun, Jun 12, 2011 at 12:13 AM, David Barbour dmbarb...@gmail.com wrote:
 On Sat, Jun 11, 2011 at 8:34 PM, C. Scott Ananian csc...@laptop.org wrote:

 Even if you're doing pure static analysis, you should be doing
 open/closed class analysis and specializing/inlining any class which
 has no subclasses in the compilation.
 Doesn't work with pluggable components.

This is discussed in the paper(s).  Closed/open types can be
considered part of the type system, in which case they are perfectly
compatible with plugins.  They can also be considered a type of
runtime optimization or method cache, in which case you just need to
do a bit of extra bookkeeping when you load your component.  No
inherent problem.

If you actually *do* redefine 'true' in your pluggable component, of
course, you get the poor performance which you apparently wanted.  But
there's no magical reason why you can't do proper interprocedural
analysis.  (Call it 'link time optimization' and stick it in the
dynamic loader if you want to keep it under the radar.)
 --scott

-- 
      ( http://cscott.net )

___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Alternative Web programming models?

2011-06-10 Thread C. Scott Ananian
On Jun 9, 2011, at 5:58 AM, Julian Leviston jul...@leviston.net wrote:
 On 09/06/2011, at 7:04 PM, BGB wrote:
 actually, possibly a relevant question here, would be why Java applets 
 largely fell on their face, but Flash largely took off (in all its uses from 
 YouTube to Punch The Monkey...).
 My own opinion of this is the same reason that the iPad feels faster than a 
 modern desktop operating system: it was quicker to get to the user 
 interaction point.
 Julian.

The slow startup time is indeed why Sun's own team felt that Java
failed to get traction.  Unfortunately some basic architecture choices
in the standard library made it extremely difficult to fix the
problem.  (Broadly, how class initialization is handled and used.) The
latest Java plugins contain some impressive engineering to mitigate
the problem, but Java is still sluggish to start in my experience.

Library design matters!
 --scott

-- 
      ( http://cscott.net )

___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Alternative Web programming models?

2011-06-10 Thread C. Scott Ananian
On Fri, Jun 10, 2011 at 2:45 PM, BGB cr88...@gmail.com wrote:
 just had an idle thought of a JVM starting up as a prebuilt image (say,
 methods are pre-JIT'ed and pre-linked, static fields are pre-initialized,
 ...).
 unless of course, they already started doing this (sadly, I am not much an
 expert on the JVM).

Yes, they do this already; but this was part of the startup-time
optimizations which weren't initially present in the JVM.

 or, maybe it is that, within the class library, most classes are tangled up
 with many other classes, essentially turning the class library into some
 large bulk-loaded glob?...

Yes, that was a large part of the initial problem.  A particular
culprit was the String class, which wanted to have lots of convenient
hooks for different features (including locale-specific stuff like
uppercase/lowercase  sorting, regexs, etc) but that tangled it up
with everything else.  The basic JVM bytecode demanded intern'ed
strings, which required String class initialization, which then
required on-the-fly locale loaded based on environment variables
(removing the ability to precompile and image), and things went
rapidly downhill from there.

 a sad result of this is that using executable statements/expressions in the
 toplevel, it is possible to fetch 'null' from slots prior to them being
 initialized, creating ordering issues in some cases.

Yes, this was another fundamental problem with the JVM.  You needed
intimate knowledge of the library implementation in order to do
initial class initialization in the proper order to avoid crashes.
  --scott

-- 
      ( http://cscott.net )

___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: Terseness, precedence, deprogramming (was Re: [fonc] languages)

2011-06-06 Thread C. Scott Ananian
On Sun, Jun 5, 2011 at 8:13 PM, Casey Ransberger
casey.obrie...@gmail.comwrote:

 Another approach I think is really cool is actually just using mathematical
 notation as one representation of what's otherwise basically an s-expr, in
 which case I think one is having some cake and eating it too. I've been
 playing with Mathematica a bit, which seems to do some of that. Kind of like
 flipping between the piano roll and the notation view in a music program. I
 also think their big algorithm library is a really lovely idea... If it
 doesn't necessarily separate meaning from optimization, it at least seems
 like it could help separate math from glue and plumbing  which would just be
 a godsend in my work, where it often feels like I have to
 read-between-the-lines to find an algorithm in a piece of code I'm looking
 at.


You would like Fortress: http://labs.oracle.com/projects/plrg/faq/NAS-CG.pdf
Here is an example of runnable Fortress code:
http://labs.oracle.com/projects/plrg/faq/NAS-CG.pdf
(There is also an ASCII-only syntax for us luddites.)
  --scott
-- 
  ( http://cscott.net )
___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Re: Electrical Actors?

2011-06-06 Thread C. Scott Ananian
I explored this idea a bit once upon a time in the context of Java:
  http://cscott.net/Publications/design.pdf
The bibliography cites most of the related work I know about.
  --scott

-- 
      ( http://cscott.net )

___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Static typing and/vs. boot strap-able, small kernel, comprehensible, user modifiable systems

2011-06-04 Thread C. Scott Ananian
On Sat, Jun 4, 2011 at 2:12 PM, John Nilsson j...@milsson.nu wrote:

 Is static types really  an intensic property of the language? In my mind
 any language can be statically typed. It is just more or less hard to do.


Again, please read Gilad Bracha's position paper.  He concisely enumerates
the ways in which a decision to make a statically typed language inherently
affects the design of other parts of the language.  Similarly, a
dynamically-typed language will allow design decisions that rule out static
typing.  He does a good job giving examples of the sorts of interactions
that may occur.
  --scott

-- 
  ( http://cscott.net )
___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Alternative Web programming models?

2011-06-03 Thread C. Scott Ananian
 On 31 May 2011 16:30, Alan Kay alan.n...@yahoo.com wrote:
 There are lots of egregiously wrong things in the web design. Perhaps one of
 the simplest is that the browser folks have lacked the perspective to see
 that the browser is not like an application, but like an OS. i.e. what it
 really needs to do is to take in and run foreign code (including low level
 code) safely and coordinate outputs to the screen (Google is just starting
 to realize this with NaCl after much prodding and beating.)

The web is not *only* an OS.  It also provides the backing data for a
very large unstructured database.  Google of course realize this, as
their company rests on a search engine.  The semantic web folks have
tried in vain to get people to add more structure to the database.
What the web OS must do is allow the efficient export of additional
*unstructured and ad hoc* data.  HTML+CSS web applications today are
moderately good at this -- the images stored in flickr (say) are still
in standard crawlable formats, and they show up in search results.
Google's Native Client (as well as prior sandbox technologies, such as
Java, etc) is *not* good at this (yet?).  The graphics rendered in
NativeClient are completely invisible to search engines -- and thus
resources created in these apps are impossible to index.  You can
build a web app *alongside* Native Client in order to export data
created in the sandboxed app -- but now you're just doubling the
effort.

Like it or not, the messy stew of HTML+CSS is the closest we have to a
universal GUI canvas, loaded with equally-messy semantics -- but
enough that I can take the source code for a (say) flickr or youtube
page and extract the comment text and photos/video.  No rival web
application or web as OS framework (which is not itself built on
HTML+CSS) can do that.
  --scott

ps. the closest rival to HTML is RSS/Atom -- a more limited format,
but it had it's own search engines and tools (see
http://www.opensearch.org).  A web OS which could still export its
underlying data structures/files as a indexable/sharable/browsable RSS
feed would be more competitive than a pure sandbox. Another possible
avenue is exporting from your web OS something close to a
filesystem -- ie, a list of downloadable documents, nothing more
-- and letting the search engine peek inside the standard format of
the documents to construct an index, as Google can currently do with
PDF, XLS, and other common file formats.  But this gives up the idea
of the 'hyperlink' -- now I know there's a binary blob somewhere with
information relevant to my search, but it comes without any code to
edit/view/collaborate.  (For a little more detail on the export as
RSS aspect of this, you might check out The Journal, Reloaded at
http://cscott.net/Publications/)

-- 
      ( http://cscott.net )

___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Alternative Web programming models?

2011-06-03 Thread C. Scott Ananian
2011/6/3 Benoît Fleury benoit.fle...@gmail.com:
 I tend to agree with you. The uniform interface of the web (reduced
 set of HTTP verbs, links...) is what make all these applications
 possible. We know what to do when we have the URL to the flickr image.
 But we could do so much more.

I agree with you there.  We can certainly continue to make things better!

But (as the HTML folk learned w/ the success of HTML5) the way to go
forward is to *build on* the past, not throw it out and start over.
If we can come up with new technologies that interoperate, that
provide backward-compatibility hooks, and that provide transition
paths, then they have a chance to improve the platform that everyone
is using.

The future has turned out to be much messier than past architects
imagined.  We have neither solved strong AI nor have we convinced
humans to generate content which adheres to rigid semantics.  Instead
we have a strange new world where unstructured databases can exist,
often can be searched, and most likely will generate useful results.
 Probabilistic models have triumphed over formal correctness.

And if you think that's horrifying, you should see some of the work my
former advisor is/was doing on failure-oblivious computing
(http://people.csail.mit.edu/rinard/acceptability_oriented_computing/).
 Rather shockingly, the best thing to do is often to muddle
through...

But now we've drifted far off topic; all of this is rather orthogonal
to the goal of making systems which people can more broadly
understand, use, and modify.  Having a beautiful small kernel is a
good way to make an understandable system; throwing in everything but
the kitchen sink is a good way to make an unobjectionable system which
gets adopted easily by lots of different people with strong
preexisting ideas about the way things ought to work.  I would imagine
the fonc project would want to steer a middle course.  (Alan has
previously spoken of the need for extensibility, which is one way to
build a popular featureful system out of a small kernel.)
  --scott

-- 
      ( http://cscott.net )

___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc