Motivation
The motive behind yarn is to bring databases and programmers together. Using current technology it is often neccessary to write SQL, possibly using an extension to the language in order to do inserts and updates along with the language that one is using. A set of bindings to SQL or a mechanism to send SQL strings is required. If strings are sent then these strings must be constructed with the proper syntax and semantics. For complicated queries that are programmatically defined this is no small task.
In order to get rid of this problem programming languages have to deal with persistency.
So why isn't it already here? Well Its harder than it sounds is probably the best answer. Using SQL for large datastores has lots of advantages. SQL is a declarative language. The actual data structures that are used to implement it are opaque to the programmer. Most databases also implement transactional guarantees which means that data can be shared in a safe way between many different processes or threads. Making this work with arbitrary data structures in a procedural language is probably just not possible. Certainly implementing a declarative sublanguage in a procedural language would not be an easy task either, especially if it had to integrate with other operations safely.
Hence Yarn! Yarn hopes to integrate ideas from various different areas of CS to create a maximally simple programming language that is capable of supporting declarative programming while also maintaining the ability to have state.
Here is a not well organized list of ideas and influences.
- Bonner's transactional logic (see Bonner93)
- Algebras and Induction and Coalgebras and Coinduction
- Unification, and possibly higher order unification (unification of lambda-terms see Lambda Prolog)
Comments (0)
You don't have permission to comment on this page.