Jargons and Infocentrism

We have been making and using a new breed of Domain-Specific Languages (DSLs) called jargons for several years, and our experiences foretokens a bright future for DSLs. In our view, the primary issues for achieving greater productivity in software by means of DSLs are abstraction, collaboration, and information reuse. High-level, domain-specific abstractions are expressed with custom-made, information modeling jargons that are easily made by a domain expert with modest programming skills using our InfoWiz technology. Collaboration among DSLs is possible with jargons because their design make them interoperable in principle, and coordinated design make them interoperable in practice. This stands in stark contrast to the Tower of Babel phenomenon experienced with conventional DSLs. Information reuse occurs when information already modeled in a jargon is processed with different definitions of the jargon semantics. Jargons play a central role in a new programming paradigm called infocentrism that realizes synergy between information modeling languages and programming languages. Our success with jargons on a wide variety of real projects in AT&T and Lucent raises many fundamental questions about DSLs and computer languages more generally. What is the role of syntax and semantics in the design of a language? What makes languages interoperable? What is the relationship between different kinds of computer languages? What are the implications of languages with interchangeable semantics? Jargons provide some insight into these issues.