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
