Logo

IFIP TC2 Working Group 2.16 Language Design

Mission

The mission of this group is to provide a forum for discussing programming language design issues. We have noticed that researchers interested in language design are isolated and lack a place to exchange ideas and criticism. Computer science conferences no longer serve this role, because they have become fixated on rigorous evaluation. There is nothing wrong with rigorous evaluation of things that can be so evaluated, but language design ideas, particularly in their formative stages where feedback is most crucial — when there may be neither implementation nor experience with their use — cannot be so evaluated. Indeed, many landmark papers on language design could not be published today: Liskov on data abstraction, or Parnas on modules, or Dijkstra on goto. These papers consisted of reasoned arguments for the power of a new idea. We aim to create a venue where such ideas and arguments are welcome and where they can be refined by constructive criticism.

Ivan Chermayeff wrote “Design is directed toward human beings. To design is to solve human problems by identifying them and executing the best solution.” Programming languages are not just for instructing computers — they are a medium for expressing software designs and communicating such designs to other human beings. Thus, an understanding of the human element is a vital part of good language design. As a result, programming language design is not just mathematics, science, or engineering — although it involves all of these. Other fields, like Architecture, recognize Design (with a capital D) as a distinct practice with its own methodologies. Steve Jobs wrote:

In most people’s vocabularies, design means veneer. It’s interior decorating. It’s the fabric of the curtains or the sofa. But to me, nothing could be further from the meaning of design. Design is the fundamental soul of a human-made creation. Good design finds a balance between conflicting goals that are qualitative in nature. It requires insight, experience, and judgment; in sum: good taste.

We need to affirm what really matters about programming languages, both to ourselves and the wider community. For these reasons, this working group seeks to balance the consideration of a wide variety of perspectives with the need to maintain enough consensus to have a good baseline for high-quality conversation.

Members

Meetings

Photos

Organization

What We Do

We have collected advice for local organizers.