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.

Reply via email to