There is a trend towards replacing monolithic general-purpose Web browsers by more finely-tuned Web applications enhanced with user-specific functionality, such as for example applets that allow for user-interaction or the display of dynamic information.
This raises the issue of what support should be
provided for developing such applications.
So a workshop was organized for the WWW5
entitled Programming the Web - a search for APIs
with the goal of
defining requirements for high-level APIs
and frameworks for Web programming,
and characterizing suitable components
for Web-aware applications.
The workshop was intended to focus on concepts and requirements for high-level API suitable for developing Web-aware applications. An explicit goal of the workshop was to publish state of the art references to existing APIs.
The papers that were submitted covered a wide range of interests, including computation models, applications and user requirements, software architectures and libraries as well as heuristics and guidelines for API developers.
Apart from a keynote speech, the workshop program consisted of four rounds:
Note: This report reflects my personal view of the workshop and its outcomes. Look at the comments for an assesment from the point of view of the participants.
See www.research.digital.com/SRC/personal/Luca_Cardelli/home.html
for more material.
In particular, Cardelli's speech made clear that the distinction between API, languages and computation models is not clear cut.
Frystik Nielsen
A variety of abstractions was presented, all intended
to facilitate the development of Web applications.
Bernard Lang
In contrast to the previous rounds, which were
primarily technology-oriented,
in this round the focus of attention lay on the
needs of particular areas of application.
Ian Palmer
The last round was devoted to the employment
of object technology and interfacing the Web with
data repositories.
Bastiaan Schönhage
The application areas and solutions, whether object-oriented or not, covered a wide range of interests and did not suggest a canonical approach to the definition and development of APIs. In particular, as has been mentioned before, the somewhat blurry demarcation between computation models, languages and APIs seem to confuse all of us. Moreover, a catalogue of APIs seemed to be beyond our reach.
An attempt to overcome the confusion by restricting ourselves to discussing the requirements for the (future) Java class libraries failed, surprisingly, because the majority felt that the restriction to a particular (!) language was not appropriate.
So the workshop was in danger of being halted,
with a number of questions unanswered.
What actions should we take in terms of recommendations
to the W3C?
What perspectives can we (meaningfully) distinguish?
And, what (exactly) are our areas of interest?
For example, although many of the solutions
proposed were object-oriented in spirit,
only few were so in the flesh.
Nevertheless, we managed to break out of this impasse,
by reconsidering what APIs are meant for,
the development of Web-aware applications,
and we made a start of listing our basic needs.
An additional need that was mentioned later on is
support for multiple (natural) languages, see
Conclusions, at this stage, seem to be premature.
As concerns (1), the general feeling was that in its current state CORBA does not provide an answer. As an alternative, ILU was mentioned.
Very surprisingly, a vote on (2) resulted
in a majority in favor of a more formal approach.
However, not in a prescriptive fashion but rather to better understand
the nature of the Web and the basic needs of
application developers.
Hopefully, this is not the end of the discussion. To the participants, thanks for your contribution. Anton Eliëns