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.