As far as I can tell the interesting thing about Word Lens is that
it's built entirely in raw C using simple dictionary lookups for words
and open-source image processing libraries. What it does looks like
amazing AI technology, but from a PL research perspective it's not
that interesting (it's certainly very cool).

What makes it interesting from a FONC perspective is that the shift in
computing technology from the predominant desktop architecture to
mobile devices seems to be leaving some of us behind. Computer science
education mostly stopped teaching C in favour of Java years (decades?)
ago. Understanding the constraints of embedded devices is an
engineering problem that has largely been discarded from the computer
science curriculum.

So is there anything interesting from a FONC perspective in mobile
devices? It may be a coincidence that Apple's success with the iPhone
is to a large extent due to a Smalltalk-derived C dialect, but most
people who know Smalltalk would agree that it's more like C than it is
Smalltalk. Apple's certainly made it clear that they've got little
appetite for dynamic languages on iOS (other than web apps), but the
reality is that keyboard-less mobile devices are not suitable for
programming activities at all, from any manufacturer.

Just as the first computers were able to bootstrap their programming
environments using Hollerith punch-card technology originally
developed to control textile production, all modern programming
languages have embedded the assumption that the programmer will be
using a hardware keyboard (originally developed for other,
non-computational purposes) to enter their instructions.

I think it's worth asking the somewhat philosophical question "what is
a computer program?" but more practically, what is the role of PL
research in an embedded world?

Do I really want to tether my computing device to a 1980s-era
mainframe-equivalent to punch in my programs, submit them to my batch
compiler and upload the result?

In the 1970s it was clear that ideas like Lisp and Smalltalk
workstations couldn't be supported on the mainstream hardware of the
time, so research centres had to develop their own platforms. But now
the world is moving past the desktop mouse and keyboard-driven
windowing environments. Does it make sense to develop a platform that
meets new ideas, do we cling to the old paradigms, or can highly
expressive development platforms be built that work with these
inexpensive and exciting new machines?

Clearly there are some gaps in the programming models of this new era.
How can people express themselves in a mathematical notation that
isn't bound to 19th century keyboard technology?

Maybe it's time to go back to the basics.

Cheers
Steve

On Mon, Dec 20, 2010 at 9:09 AM, Julian Leviston <[email protected]> wrote:
>
> On 21/12/2010, at 3:43 AM, John Zabroski wrote:
>
>> Let me try to change the topic just a tiny bit.
>>
>> For those of you interested in this gambit: If you were to predict where 
>> FONC is going and what will come of the project, what would you do to 
>> out-architect Alan Kay & Co?
>>
>> There are many ways I could see people on here answering.  You might want to 
>> base your decisions off what they've released so far, issue a code review oh 
>> what they've written so far and comment on how the SLOC could be reduced 
>> even further.  Also, you could state your own goals, since Alan, Alex and 
>> Ian are all in the "novel-sized book" club and others in VPRI have more 
>> specific interests (HyperCard legacy continued, etc.)
>
> What's interesting me at the moment is the idea of languages that are not 
> necessarily linear. That's to say language as the form of any 
> representational system (think O-META definition, and beyond).
>
> Thus, a GUI is a perfectly valid from of language, taken from this 
> viewpoint...
>
> LOC doesn't really provide a useful metric when talking about representation. 
> If the representation system includes all the information in it necessary to 
> explain itself or generate all the information necessary to explain itself 
> from the "bootstraps up", then it could explain itself using either time or 
> space (capacity) as a resource, depending on which resource is more or less 
> scarce.
>
> "All the information necessary" would be just enough metalanguage to explain 
> in its own metalanguage what each element of the system is... thus the system 
> becomes a translatable system... able to be used in whatever form the user 
> prefers.
>
> You can see glimpses of this when you use certain programming languages where 
> you're allowed to use C++, C, assembler, or other languages interchangeably 
> in certain environments. You can also see the edges of this in operation 
> somewhat when listening to two people who speak two common languages are 
> communicating. It's a beautiful thing.
>
> Add a machine in there that lets you explain anything from any language to 
> any other language because all the languages have been translated into a 
> common meta-language, and you get something incredibly powerful in terms of 
> pedagogy. Have you seen the iOS program that does live language OCR on the 
> video camera input? Interesting what happens when you connect up some common 
> things these days isn't it? :) Word Lens it's called...  
> (http://www.youtube.com/watch?v=h2OfQdYrHRs)
>
> Just my 2 cents.
>
> Julian.
> _______________________________________________
> fonc mailing list
> [email protected]
> http://vpri.org/mailman/listinfo/fonc
>

_______________________________________________
fonc mailing list
[email protected]
http://vpri.org/mailman/listinfo/fonc

Reply via email to