ClojureX Conference - Celebrate 10 Years of Clojure

Today, 16th October 2017, celebrates the 10th anniversary of the Clojure programming language. To celebrate Clojure in all its many forms we are running a conference in London, appropriately called ClojureX.

ClojureX - Clojure eXchange Conference 2017

The Clojure language is flourishing and the community continues to grow and become more diverse. Clojure is now used on many different platforms, including JavaScript, Microsoft .Net, Go and of course the original Java/JVM platform. So you can build highly parallel systems with web-scale throughput all the way thorough to modern web & mobile applications with react style libraries.

London Clojurians community - banner

Here is just some of the exciting things you will experience at the ClojureX conference this year.

The rise of ClojureScript

ClojureScript is one of the fastest growing area of the Clojure community with many developers excited to use a simple functional language to build dynamic websites, lightweight services and mobile applications. For some developers coming from a JavaScript background were put off by the reliance ClojureScript had on the Java runtime for compilation. However in 2015 ClojureScript became self-hosting and so the reliance on Java has since diminished.

António Monteiro is the author of Lumo a cross-platform, standalone ClojureScript environment. Lumo provides a fast booting REPL, scripting, build tools, IDE connection instantly and provides access to the entire Node.js and Clojure ecosystems.

António delivers a keynote talk describing how the Lumo project came into existence, shares some of the tricks it employs and the hurdles that future features intend to overcome.

Showing what Lumo can do, António will dispel the common myths around bootstrapping the ClojureScript compiler, showing what Lumo can do for you and how easy it is to compile ClojureScript in ClojureScript.

We are also joined by Yehonathan Sharvit, author of Klipse, an excellent ClojureScript project that allows for live evaluation of Clojure and many other languages directly in web pages and web-based presentations. One of my favourite examples of using Klipse is Timothy Pratley’s Reagent deep dive series, which includes the use of SVG and WebGL libraries to create interactive graphics on the web page.

The new ClojureBridge London Workshop is written using Klipse, allowing anyone to start learning Clojure programming without setting up a development environment. The next ClojureBridge London event is on 17th & 18th November 2017

Getting creative

Chris Ford (Thoughtworks) adds a creative slant to the conference with his talk on African Polyphony and Polyrhythm.

Ethnomusicologists face a dilemma: either shoehorn African music into European notation, or create custom DSLs that can only be understood by a select band of European ethnomusicologists. Computational musicologists can solve this problem, because we have principled ways of modelling specific idioms in terms of general computation. What’s more, our models can be executed to generate actual music.

Simha Arom is a French-Israeli ethnomusicologist. In the book from which the title of this talk is borrowed, he describes the principles underlying the musical system of traditional central African polyphony and polyrhythm. Arom invented ingenious recording techniques for deconstructing and systematising musical cultures that had no previous tradition of musical theory. He tested his models by using them to recreate music and inviting central African musicians to critique the results.

Chris will argue that music-as-code is an ideal way to represent Arom’s insights by showing the full truth in the Lévi-Strauss quote with which Arom prefaces his book: “The proof of the analysis is in the synthesis.” Programming has played its part in the homogenisation of global culture, but the universality of the lambda calculus also affords a golden opportunity for code to become a point of interchange between formerly incompatible musical systems.

Data Science et al.

The de facto programming language for Data Science tends to be Python although there is an increasing adoption of Clojure.

Maria Mestre and Chloe Pont share their journey into Clojure for Data Science at HealthUnlocked. As well as translating an existing Python model prototype into a Clojure production system, they also created a natural language processing pipeline, with tokenisation & vectorisation and core Naive Bayes algorithm, all from first principles.

HealthUnlocked created a social network centred around chronic health conditions. Their users share 4.5 pieces of health content every minute across this network. Using the Clojure tooling they created, this information is classified into 700 different categories within milliseconds.

Elise Huard will share the work at MastodonC to bring the Clojure data science ecosystem back to life through open source libraries in her talk on the Return of Clojure Data Science.

Rickesh Bedia from JUXT also shares his experiences with building and solving mathematical models using neural networks in Clojure.

Community Project leaders

Many of the community project leaders will be attending the conference, so its a great opportunity to ask them about their project and even consider how you can help. We also have the following project leaders talking about their recent project activities.

Bozhidar ‘Bug’ Batsov has been a long time contributor to CIDER, the project that makes Emacs talk Clojure so eloquently.

James Reeves has authored over 60 Clojure projects and is most known for Ring and Compojure. James release a new micro-framework called Duct, a highly modular framework for building server-side applications in Clojure using data-driven architecture.

Malcolm Sparks & Jon Pither, founders of JUXT, have create and contributed to numerous projects, including yada, bidi and most recently Mach. Malcolm is also working on visualising the flow of application code through the REPL.

Experience reports

Early this year Russell Dunphy and team decided to invest serious effort into refactoring and rewriting the 7+ years of systems development at HeathUnlocked to make changes easier, safer, and faster without compromising their ability to deliver new features to 4+ million daily users. The mission they set themselves was to move away from a “distributed monolith” to a small set of well-factored, cohesive monoliths. They also wanted to isolate DB access to a single (multi-app) repository, define interfaces between services using shared schema code and move from horizontal to vertical slices. The team also tried to discover what they felt the purpose of tests were to them when they had a REPL and find a middle-ground between example-based and property-based testing. How far the team achieved their goals will be revealed during Russell’s talk.

Jason Bell, author of Machine Learning: Hands on for Developers and Technical Professionals shares important considerations discovered when his team were building streaming applications, from the paper design aspects to deployment in to production.the real world. These experiences have been gained by the team at MastodonC, an international company building build data products in Clojure.

Hugo Firth and team at uSwitch re-wrote one of their core web applications from Rails to Clojure. While this sounds like a typical story there is one key difference, the new service has been implemented without a database. Due to some unique requirement, rather than reading data from a database all the data could be kept in memory, all the time. This approach lead to many challenges, most importantly “how do you keep that data up to date?”. Spoiler alert, data persistence does exist, however the service itself is loosely coupled and not reliant on it for serving requests, doing more than just caching data. Clojure provided the team key features that made it all possible, including agents, transducers and Stuart Sierra’s component library.

Alan Forrester, PhD, talks about learning to write Clojure to make microscopic optical devices using direct laser writing (DLW). This technique uses a highly focused laser to produce controlled chemical reactions in a custom polymer. Those reactions make the polymer change state from solid to liquid or vice versa in regions of microscopic size. Alan will show you the structures that have been made with this technique and the Clojure code written to make them.

Career & Recruiting opportunities

Are you looking for your first role in Clojure? Its not as big a leap as you may thing and about 80% of the previous years attendees at ClojureX were using Clojure as part of their day job. I also took the plung this year and got my first ‘official job’ running a team of Clojure developers.

If you are not sure if you are ready for your first role in Clojure, talking with the other developers at the conference is a great way to see where you are at. Just like any development projects, there is a miriad of opportunities within the Clojure development world, so you may find you are more ready than you think.

As we also have speakers from JUXT, uSwitch, HealthUnlocked, Citi group, Funding Circle and many other companies using Clojure, there is lots of opportunity to find out what is going on in the world of Clojure by those who are delivering projects every day.

Hope you can make it to ClojureX on 4th & 5th December 2017 and join in a fun packed community conference.

Thank you.

This work is licensed under a Creative Commons Attribution 4.0 ShareAlike License, including custom images & stylesheets. Permissions beyond the scope of this license may be available at @jr0cket
Creative Commons License