Third Dunaj experiment: Protocols First
 
One of Dunaj’s objectives is to facilitate host independent style of 
programming. The third Dunaj experiment aims to transform core API into one 
that uses protocols for all of its abstractions. Additionally, Dunaj 
introduces a concept of a factory protocol that represents an abstraction 
of a constructor for an abstract data type. Protocols and protocol methods 
are part of the Dunaj’s interface that is oriented towards implementers of 
custom types and language extensions and they are documented separatedly in 
the SPI part of Dunaj’s documentation.

Goals of the third Dunaj experiment are as follows:
 
- Provide protocols for all existing built-in abstractions that were in 
Clojure specified by host interfaces.
- Modify existing core functionalities to build upon protocols instead of 
specific types, host classes or interfaces.
- Introduce a separate representation of deftypes, treating the underlying 
host class as an implementation detail not automatically imported into the 
current namespace.
- Introduce a new idiom of factory protocols, which are used to represent 
an abstraction of a constructor for an abstract data type.

As usual, you can read more about this experiment at http://www.dunaj.org 

Regards,
Jozef

On Thursday, March 5, 2015 at 10:33:53 PM UTC+1, Jozef Wagner wrote:
>
> I'm happy to announce a project called Dunaj [1], which provides an 
> alternative core API for Clojure. Its main aim is to experimentally test 
> major additions to the language. 
>
> Dunaj /ˈdunaɪ/ is a set of core language experiments aimed to improve 
> Clojure language and its core API. It deals with language features that 
> require changes across different parts of Clojure and which cannot be 
> evaluated in isolation. Dunaj aims to bring Clojure even more towards 
> simplicity, consistency and performance. 
> It is intended to be used by regular Clojure developers, either for 
> application or library development.
>
> Dunaj was created to test 10 experiments that bring significant changes to 
> the Clojure language. As there is a substantial number of additions and 
> changes, I want to try a bit unconventional approach here. Before I'll 
> release the actual library, I will introduce Dunaj's experiments in a 
> series of individual posts. Every part states the motivation behind the 
> experiment, introduces changes and additions to the language and 
> demonstrates its intended use. If you do not want to miss any of this, you 
> may want to register for a mailing list at [1] or follow @dunajproject at 
> Twitter.
>
> -- Jozef Wagner
>
> [1] http://www.dunaj.org/ 
>  
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to