On Mon, Jul 18, 2011 at 4:25 PM, David Goehrig <d...@nexttolast.com> wrote:

> While some level of formalism will be useful when discussing
> the behavior and specification of this system, it should not be a
> prerequisite for use.


Yeah, that I agree with. Or more precisely: a developer should need to be
educated in the system's formalism in order to effectively develop. We want
our programming model to support a gradual learning curve and progressive
disclosure.

I believe that how we model UIs - especially with regards to  transclusion,
transformation, and mashups - will have a huge influence on how effectively
we can gradually expose developers to the formal aspects of a programming
model. Tangible values, naked objects, dataflow wires, live programming, and
so on allow users to grow familiar with a model as a normal part of
controlling or extending their environment.

Not all formal models are well suited to this sort of UI tweaking and
progressive disclosure. We should choose a formal model that is well suited
to it... such as reactive demand programming. ;-)


> I wish programming was less formal and ridgid. Real progress would be made
> when an ordinary individual with a reasonable grasp of their native tongue
> could roughly describe their requirements and the computer could deduce the
> proper implementation via a process of successive revision and
> interrogation.
>

'Formal' does not imply 'rigid'. We can have a great deal of flexibility and
resilience in formal systems, assuming we design for those goals. And we
should distinguish between the *process* of programming, and the *product*.
I.e. you might be confusing 'formal methods' with 'formal semantics'. Formal
semantics allow formal methods, don't require them.

I would not want to use an interrogative session as 'source code', but I
would not mind if we spoke to some high-quality 'office-assistant' that
helps write code or offers assistance on our behalf. Treat this more as a
problem of CSCW and expert systems, rather than an issue of language
semantics. A good user-agent could even learn peculiarities of the
developer, learning to read gestures and incomplete thoughts.


>
> Until we break the program free from its representation, we will not have
> tools sufficient to the task.
>

Until we break the language free from its implementation, we will not
develop sufficient tools for the task. Trying to develop, say, a graphical
editor for data plumbing code is hard enough when there is only one 'formal
semantics' to target.
_______________________________________________
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc

Reply via email to