Tangible Functional Programming
Google Tech TalksNovember, 7 2007ABSTRACT We present a user-friendly approach to unifying program creation and execution, based on a notion of "tangible values" (TVs), which are visual and interactive manifestations of pure values, including functions. Programming happens by gestural composition of TVs. Our goal is to give end-users the ability to create parameterized, composable content without imposing the usual abstract and linguistic working style of programmers. We hope that such a system will put the essence of programming into the hands of many more people, and in particular people with artistic/visual creative style. In realizing this vision, we develop algebras for visual presentation and for "deep" function application, where function and argument may both be nested within a structure of tuples, functions, etc. Composition gestures are translated into chains of combinators that act simultaneously on statically typed values and their visualizations.Speaker: Conal ElliottMost of my research is aimed at supporting the creation of interactive synthetic media content, including computer animation, human-computer interaction, images, 2D and 3D geometry, and programmable shaders. In all cases, I aim to preserve or improve on the flexibility and performance of mainstream programming approaches, while greatly simplifying the creation process.Synthetic media programs are almost always implemented in sequential, imperative (often object-oriented) languages. My research explores use of declarative languages, resulting in much simpler and more reusable and composable programs. These languages are also more amenable to execution on parallel architectures such as modern graphics processors, because declarative languages abstract away from order of execution, removing the accidental sequentiality found in imperative programs. Even on sequential machines, declarative formulations have much simpler mathematical semantics, which facilitates automatic optimization. They also tend to be spatially and temporally continuous (resolution-independent), allowing them to adapt naturally to machines with different speeds and display resolutions.After exploring explicit programming of synthetic media content for several years, I'm now also keenly interested in supporting artists. The goal of my new new research agenda is to give artists access to the expressive power of computers and programming languages, while retaining an artist's working style. I mean "artist" in a broad sense, in contrast to the verbal and sequential style of an engineer. (I don't mean to suggest that people fit neatly into these two categories.) My ideal audience includes graphic designers, musicians, and children -- really, the playful and curious in all of us.This abstract has 2796This abstract has 2820
Canal: People & Blogs
Añadido: November 20, 2007 at 10:07 am
Autor: googletechtalks
Duración: 56:23
Puntuación: 4.55
Reproducciones: 12444
Etiquetas: education engedu google googletechtalks talk talks techtalk techtalks
Comentarios
|
allread123 (July 2, 2008 at 6:05 am)
fgshgaqergaegfadfhagsdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
designingpatrick (March 12, 2008 at 5:32 pm)
this is nothing new, if you use 3d applications effectively then you tend to customize your interface, program unique variables, develop results based on results. The process of animating a character is a beautiful merge of programming and art. Most people don't care to spend the time doing this sort of thing though...
audiocreator (February 8, 2008 at 8:27 pm)
thats some straight forward awesomeness right there
Dejaiin (January 20, 2008 at 3:27 pm)
Interesting ideal. But is it really possible I program but how do we get the rest of the population into programing via an interface? Would that not make it worse for programmers? It would side to the usable.. Oh well good talk.
tricky778 (December 27, 2007 at 7:56 pm)
nip2 is an example application that has function composition into pipelines for image processing.
F00dTube (December 11, 2007 at 3:37 pm)
Being sold or not is not really important now is it? It either works for you or it doesn't. And in certain environments you just don't have a choice.
iggy4323 (December 10, 2007 at 10:06 pm)
I'm not sold on functional programming either, and I agree with gmvsea about the rift.
gmvsea (December 8, 2007 at 1:31 am)
This was a surprisingly good lecture. Although I am still not sold on functional programming, I have to admit that the presenter's description of the rift between applications usability and code composibility was an epiphany for me. I am grateful.I think that at least the first part of this lecture should be required reading (viewing) for all software developers.
freebit50 (November 21, 2007 at 4:24 pm)
Thank you for fixing the sound. -Joe
|