The Future of Neocons
A Bit of History
Neocons was started in late 2011 because there was no Clojure client for Neo4J Server that we were happy with.
Neocons reached 1.0
in July 2012. Thanks to solid documentation,
it quickly gathered several users besides its original developers and was generally
well received.
Ever since then people contributed ideas, bug fixes and features. Neocons moved in small
steps and we tried hard to keep things backwards-compatible. 1.1
was released in March 2013
and (as far as we know) is a drop-in replacement for 1.0.x
.
This incremental releases philosophy is appreciated by the Clojure community. Clojure
itself does not try to pack features as fast as possible. Many things are introduced
into the language literally years after they were first discussed. This is a good thing
and that’s why so many codebases can go from 1.3
to 1.4
and then to 1.5
without
any changes.
However, every once in a while you need to have some freedom to make sweeping changes.
Looking To The Future
Not so long ago a little birdie told us about what’s coming in Neo4J Server 2.0. We cannot
share it in this post but it is nice and may require breaking API changes in client
libraries. That’s why the next non-bugfix release of Neocons will be 2.0
.
It will target Neo4J Server 2.0
. For 1.1
, we wanted to move most of the code
to use the Cypher language. Unfortunately, Cypher still has several limitations
(one example) that do not let us do that. But it is still a good idea and we will
try to get there with 2.0
.
What Does It Mean For You?
We will try to keep Neocons 2.0
backwards compatible if we can. ClojureWerkz
maintainers care about backwards compatibility and hate changes app code for no
good reason as much as you do.
However, there’s always a possibility that the awesome Neo4J team will pack 2.0
with features so sweet, we will have to re-focus the library around them.
Time will tell!
Neocons is a ClojureWerkz Project
Neocons is part of the group of libraries known as ClojureWerkz, together with
- Langohr, a Clojure client for RabbitMQ that embraces the AMQP 0.9.1 model
- Elastisch, a minimalistic Clojure client for ElasticSearch
- Monger, a Clojure MongoDB client for a more civilized age
- Welle, a Riak client with batteries included
- Quartzite, a powerful scheduling library
and several others. If you like Neocons, you may also like our other projects.
Let us know what you think on Twitter or on the Clojure mailing list.
Michael on behalf of the ClojureWerkz Team