License: Creative Commons Attribution 3.0 Unported license (CC BY 3.0)
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.SNAPL.2017.9
URN: urn:nbn:de:0030-drops-71299
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2017/7129/
Go to the corresponding LIPIcs Volume Portal


Miller, Mark S. ; von Dincklage, Daniel ; Ercegovac, Vuk ; Chin, Brian

Uncanny Valleys in Declarative Language Design

pdf-format:
LIPIcs-SNAPL-2017-9.pdf (0.4 MB)


Abstract

When people write programs in conventional programming languages, they over-specify how to solve the problem they have in mind. Over-specification prevents the language's implementation from making many optimization decisions, leaving programmers with this burden. In more declarative languages, programmers over-specify less, enabling the implementation to make more choices for them. As these decisions improve, programmers shift more attention from implementation to their real problems. This process easily overshoots. When under-specified programs almost always work well enough, programmers rarely need to think about implementation details. As their understanding of implementation choices atrophies, the controls provided so they can override these decisions become obscure.

Our declarative language project, Yedalog, is in the midst of this dilemma. The improvements in question make our users more productive, so we cannot simply retreat back towards over-specification. To proceed forward instead, we must meet some of the expectations we prematurely provoked, and our implementation's behavior must help users learn expectations more aligned with our intended semantics.

These are general issues. Discussing their concrete manifestation in Yedalog should help other declarative systems that come to face these issues.

BibTeX - Entry

@InProceedings{miller_et_al:LIPIcs:2017:7129,
  author =	{Mark S. Miller and Daniel von Dincklage and Vuk Ercegovac and Brian Chin},
  title =	{{Uncanny Valleys in Declarative Language Design}},
  booktitle =	{2nd Summit on Advances in Programming Languages (SNAPL 2017)},
  pages =	{9:1--9:12},
  series =	{Leibniz International Proceedings in Informatics (LIPIcs)},
  ISBN =	{978-3-95977-032-3},
  ISSN =	{1868-8969},
  year =	{2017},
  volume =	{71},
  editor =	{Benjamin S. Lerner and Rastislav Bod{\'i}k and Shriram Krishnamurthi},
  publisher =	{Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{http://drops.dagstuhl.de/opus/volltexte/2017/7129},
  URN =		{urn:nbn:de:0030-drops-71299},
  doi =		{10.4230/LIPIcs.SNAPL.2017.9},
  annote =	{Keywords: Declarative logic programming language}
}

Keywords: Declarative logic programming language
Collection: 2nd Summit on Advances in Programming Languages (SNAPL 2017)
Issue Date: 2017
Date of publication: 05.05.2017


DROPS-Home | Fulltext Search | Imprint | Privacy Published by LZI