Proposal for a Working Group on Programming Language Design We ...

We have organized a group to discuss programming language design and propose to .... and have been proposed for inclusion in PHP and ActionScript 3.0.
464KB Sizes 6 Downloads 462 Views
Proposal for a Working Group on Programming Language Design We have organized a group to discuss programming language design and propose to become an IFIP TC2 working group. While the theory and implementation of programming languages are both well developed fields with strong institutions, there is currently less acknowledgement and support for work on the design of programming languages. We take the position that programming languages are not just a notation for instructing a computer — they are a medium for expressing the structure and intention of software and communicating these to other programmers. Thus human factors must weigh heavily in language design decisions, requiring a well-judged balance between conflicting goals that are qualitative in nature. Other fields, like Architecture, call such balancing acts Design, with a capital D, and recognize this activity as a practice with its own methodologies, distinct from both science and engineering. Ivan Chermayeff wrote "Design is directed toward human beings. To design is to solve human problems by identifying them and executing the best solution." 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." We feel that this notion of design captures the essential difficulty of creating useful programming languages. Design issues are what programming language developers argue about amongst themselves. We have formed a working group of experts active in programming language research and development that is focused on discussion at the design level. Our reason for forming a new group is that there is no existing venue that brings together experts to exchange and refine new ideas in programming language design. Computer science conferences no longer serve this role, because they are dedicated to the presentation of contributions that have been rigorously evaluated. While such conferences serve a crucial role in scientific progress, they tend to filter out discussion of early stage ideas as well as design issues that are qualitative in nature. Neither do they facilitate conversations on open problems and emerging issues. We note that some of the landmark papers on language design could not be published today: Liskov on data abstraction, Parnas on modules, or Landin on the next 700 languages. These papers consisted of informal but carefully reasoned arguments for the power of a new idea. These ideas were communicated promptly and triggered vibrant debates. We seek a venue that cultivates such ideas, arguments, and debates in a concentrated setting with a cohesive group of researchers and developers. We have chosen to propose a new TC2 working group for two reasons. First, TC2 working groups are a proven model that has provided great benefit to our field, and indeed to some of

us who are members of existing groups. Secondly, we feel that our charter complements the existing range of working groups. Groups such as WG 2.4 (Software Implementation Languages) and WG 2.8 (Functional Programming) specialize in specific kinds of programming languages. We believe it is vital to also have a forum that cross-fertilizes perspectives from the entire spectrum of programming language paradigms and communities, and that the lack of such communication has led in the past to wasteful intellectual duplication. Our initial membership already represents OO (static, dynamic, and Scandinavian), FP, distributed, parallel, LISP family, Java, C#, JavaScript. We intend to deepen and broaden this coverage as we fill out the initial membership. WG 2.1 (Algorithmic Languages and Calculi) covers all programming languages, focusing on their formal aspects. In so doing they necessarily de-emphasize discussion of informal and qualitative design issues. We believe that sound theory is a necessary foundation for successful design work. Conversely, we would welcome the opportunity to bring em