On Mon, Aug 1, 2011 at 3:24 PM, Simon Forman <forman.si...@gmail.com> wrote: > > > Another reason I would argue against something like types based on > > Physics is that Physics tries to work out the inconceivable ways that > > the Universe actually behaves by systematically throwing away all of our > > intuitions that turn out to be wrong. With a computer system, we want > > the opposite; we want a system that requires as little study as > > possible, and for which our intuitions are accurate. > > I respectfully disagree. > > Jef Raskin pointed out that humans have no innate intuition regarding > computer systems, only familiarity. The word "intuitive" in reference > to computer languages and UIs is incorrect. >
Familiarity is certainly a contributing factor to intuitiveness, but I think there are other properties as well. Some systems never become 'intuitive' - no matter how 'familiar', they continue to surprise us. Examples include stocks, weather, women, quantum mechanics, and multi-threaded C++ code. Some generalizations people have difficulty grasping - even if examples are familiar and simple*: *monads, rings, and category theory are example. Even if we consider only 'familiarity', I think we should recognize that humans have both biological predispositions and universal experiences regarding communication (spoken language, body language, emotional indicators), facial recognition, carrying things, throwing things, connecting things, observation and imitation, social hierarchy, behavior under observation, promises and obligation, courting rituals, even gossip. I think it can make sense to judge a system as 'intuitive'. Jef Raskin's complaint seems more about the *measurement* of intuition, which is very 'path dependent'. > I think that creating computer systems that support naive or unfounded > "intuitions" (whether about how computers work or about the world > outside the computer system) actually does a disservice. > I agree, but with a twist: computer systems should help us in founding useful intuitions, with a reasonable scope. A programming language should be designed to quickly grow intuitive. Some relationship to human experience will probably help with this goal. And the system must remain predictable even as we extend or manipulate it. Regards, Dave
_______________________________________________ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc