Experiment #1 *Deconstructing Core API*
While Clojure provides its functionalities in multiple namespaces (e.g. clojure.string, clojure.zip), the majority of it is defined in a single namespace called clojure.core. The first Dunaj experiment explores the idea of having multiple small namespaces where functions, macros and other public vars are grouped by their purpose. It investigates whether such separation is possible at all and whether it can be practical and useful. The goals of the first Dunaj experiment are as follows: - Devise a new user centric core API comprising multiple namespaces, leaving bootstrapping and low level vars in the clojure.core. - Define a concept of API presets that control which functions, macros and vars gets referred by default. - Let user choose which API preset he/she wants to use in his/hers namespace, using classic clojure.core as a default. The upside of this approach is that backwards compatibility is maintained and users can freely intermix multiple APIs in their projects. Functionalities can be more logically separated by their purpose. List of automatically referred vars are no longer driven by the namespace in which they were defined, but this list is handled by separate API presets that can be extended and customized. You can read more about this experiment at http://www.dunaj.org -- Jozef On Thu, Mar 5, 2015 at 10:33 PM, Jozef Wagner <jozef.wag...@gmail.com> 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.