IN/Clojure 2020

India's annual Clojure and ClojureScript conference. 14th-15th Feb, 2020. Pune, MH, IN.

Kannan Ramamoorthy


Clojure through the eyes of a Java developer

Submitted Nov 18, 2019

I’m a fulltime Java developer. A while back, I started with Clojure through #100DaysOfCode. Throughout the journey there were lot of amusing parts and few hard parts. This is to summarize my journey into clojure as a Java dev.


This talk is targetted for Java developers, who have just started or who are about to start with their Clojure journey.

I’m gonna walk you through all the amusing and hard things that I faced in my intense breath-wise Clojure practice sessions. Since my journey with Clojure was more broad and less deep, this covers topics ranging from S-expressions to CLP.

Along with brief talk of the below titles, this talk also contains some REPL sessions.

Clojure Primer
- About
- Syntax
- Evaluation Model

Amusing Parts:
- Simple Syntax
- Less Special Constructs
- Infinite/lazy sequence
- Program as Data
- Macros
- core.async (CSP)
- core.logic (CLP)
- core.match
- Isomorphic
- Conciseness
- Memoization
- Java Interop

Hard Parts:
- Usage of parentheses and overcoming it
- Shift to s-expression and overcoming it
- Immutable Data Structures and overcoming it
- Programming with Macro and overcoming it
- Lazy sequence and overcoming it

FAQs for Java Devs

Note: The contents are in the slide. Since this is planned to be interactive REPL session, the placeholders mentioned as (switch..) is when I’ll be showing the REPL.


Primarily targetted for Java developers.
People with intermediate to advanced Java experience and new to Clojure will find it interesting.

Speaker bio

I’m working as a Principal Engineer with Thumbsignin(A product of Pramati Prism). Java is primarily my bread and butter. So I’m comfortable and like OOP. Apart from that I do share my love for Shell and SQL.




{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}