Thursday, December 09, 2004

End-User Programming

While we are on the subject of language and making it easy for end-users to program, I think we may be moving into a 2-tier world in respects to programming.
  • Tier 1: The traditional software professional type who write Cornerstone invocations (services, actions, business rules, templates, etc.) which may require good programming expertise and experience.
  • Tier 2: The casual users who just compose or orchestrate existing invocations created by Tier 1 people to put them together in a way suitable for the situation at hand, which should not require much programming expertise in the traditional sense. Many visual aids and metaphors can be utilized here. The user may be just dealing with, e.g., sources that provide data, sinks that consume data and service compositions/orchestrations in the middle to tie them together. For example, user's particular calendar is the union of two other calendars from the same family, in which case the 2 sources are the two other calendars and the sink is his own calendar and the service in the middle is union.
The roles Cornerstone plays in this picture are: 1) make it simple for the tier 1 developers to create invocation; 2) make it simple for tier 2 developers to tie them together. Tier 2 users will be the ones that create the Web of Applications (ref 1 and ref 2).

PS: Some people are advocating that we start over. Interesting to watch.