TT Session 6: DSLs (2)

Location: 
Date and time: 
Thursday, June 2, 2011 - 15:50 - 17:30
 
  • Second Time's the Charm: Examining the Anti-XML Framework for Scala
    Daniel Spiewak, David LaPalomento

    The scala.xml framework bundled with the standard library has a lot of long-standing issues. Anti-XML is a clean room effort to replace this framework with something safer, more convenient and more performant. This talk will cover the design decisions that went into Anti-XML (providing some theoretical justification for a few of the more contentious ones). We will examine the general architecture of Anti-XML from a framework standpoint, the end-user API and performance with a particular emphasis on the areas in which Anti-XML exceeds the capabilities of scala.xml. Once we have the high-level overview out of the way, we will engage in some live-coding to demonstrate the framework in action.
     
  • Scala Integrated Query - more expressive database queries
    Christopher Vogt

    Scala Integrated Query is a prototype developed at LAMP, EPFL. It compiles a subset of Scala into SQL and executes it in the DBMS. Queries can result in single values or arbitrarily nested lists and tuples, which can require more than one SQL query. Compared to using SQL directly, using Scala Integrated Query can lead to more accurate code and makes it easier to achieve good performance for complex queries. It features greater expressiveness, type safety, familiar syntax and easy composability. Complex queries are efficiently mapped to SQL and automatically optimized. Avalanches of SQL queries are prevented, in particular when correlating data in main-memory with data in the database. This prototype was developed in a Master's project and builds up on research of University of Tübingen, namely Ferry and Pathfinder. Work will continue at Typesafe to turn the prototype into a production-ready library.
     
  • Hammurabi - A Scala rule engine
    Mario Fusco

    One of the most common reason why software projects fail, or suffer unbearable delays, is the misunderstandings between business analysts and developers. Indeed the latter write the business rules in a language that is completely obscure for the first ones and in this way the business analysts don't have a chance to read, understand and validate what the programmers developed. They can only empirically test the final software behavior, hardly covering all the possible corner cases and recognizing mistakes only when it is too late.
    Hammurabi is an actor-based rule engine written in Scala that leverages the language's features making it particularly suitable to implement extremely readable internal DSL. What makes Hammurabi different from all other rule engines is that, despite its rules are written directly in the host language, they are also easily understandable even by non technical persons.