JSFoo 2019

On component architecture, front-end engineering and Developer Experience (DX)


If you are going to transpile JS, why not use ClojureScript?

Submitted by Shivek Khurana via Zainab Bawa (@zainabbawa) on Tuesday, 10 September 2019

Section: Full talk (40 mins) Technical level: Intermediate

View proposal in schedule


Nearly all production JavaScript apps use some form of transpilation, be it Babel or TypeScript or something else. This let’s you overcome the shortcomings of the underlying language and makes the application more sustainable. But the famous languages that transpile to JS are are Java like. They prefer classes and objects and clear separation of concerns.

ClojureScript is a functional LISP which stands against the philosophy of OOP. And it can compile to JavaScript. This talk is about why Clojure and ClojureScript deserves your attention.


This talk is philosophical in the sense that it focuses on the larger problems of the JS ecosystem and finds an objective solution to a subjective problem.

[Alpha Version] A rough outline is as follows:
- Build Up/ Problems: Situations that led me to question my toolkit & introduced me to Clojure/Script
- Pain on Learning: Understanding the Clojure (functional) model and problems faced
- Rewards: How the Clojure model solved my Problems
- Growth Phase: How adopting the new model accelrated my thought process and my dev workflow
- Conclusion: The current state of affairs and what you can do to get started


A general understanding of the JS ecosystem. Some experience in shipping/ maintaing a web application, API, or a mobile app.

Speaker bio

Shivek has been building (and breaking) enterprise applications for more than a decade. His carrier began at a young age of 14 and largely consisted of unpaid work at Startups & SMEs. Over the years, he was lucky to find exceptional teachers, who helped him mature as a system architect. In this long journey, he has touched all parts of the stack, from Frontend to Backend, Data Pipelines to DevOps.

Since 2013, his focus has been on Frontend Development using React. He has built systems that are used by 0 to over 12 million users. This experience has shaped his ideas about how to grow and maintain complex applications and his preference for Clojure/Script.

He works as a Consultant at Krim Labs & as a Full Stack Clojure/Script Developer at JUXT Ltd. (UK). He also writes a Medium Blog about his experience and learnings on Scalable Architectures.

When it comes to software, he’s an expert at avoiding shiny new things, and focusing on the old and boring. He firmly believes that all code is liability and the best piece of code is the one that was never written.





  • Zainab Bawa (@zainabbawa) Proposer Reviewer 3 days ago

    Thanks for a detailed rehearsal, and putting up the slides early. The key points from today’s rehearsal were:

    1. Anchor the story around one core idea. Currently, the focus is too much on the negative aspects of ClojureScript. Instead, the focus could be, “I will tell you – participants – enough about ClojureScript – to get you interested in exploring ClojureScript after my talk.” This will help give a coherent message to the audience.
    2. Too much time is spent in recommending why not to use ClojureScript instead of getting into the details of ClojureScript. Show participants how ClojureScript works. Get into the details.
    3. If anyone who has not seen Lisp code at all, your current slides will flummox them. Show code on how to do code with JavaScript and then how to code in ClojureScript. FP is more than map, reduce and filter. Instead you want to emphasize the concepts such as immutability, first-class functions, etc. While Repl is a very good example, you also want to spend some more time on other tools and why these are unique things in Lisp. You want to encourage to people to be interested in exploring Lisp at the end of the presentation.
    4. Show and tell code. This is what the audience at JSFoo wants to see.
    5. Some facts need re-checking. For example, Java is not slow, but its the startup time for ClojureScript which is slow. This needs changing.
    6. Numbers and metrics are missing about what does a company get when using ClojureScript. Explain trade-offs in detail.
    7. Explain benefits and advantages for why use ClojureScript for a product.

    Incorporating the above feedback will help tighten the talk to a large extent, and also ease the audience into the aim of the talk – which is to explore ClojureScript.

    On the slides itself, incorporate the following feedback:

    1. Remove memes from the presentation. A good presentation doesn’t need memes to support it.
    2. Avoid putting full sentences for bullet points. Instead, put crisper bullet points.
    3. No more than three bullet points per slide.

    Share the revised slides by 22 September, latest, so that we can have a final round of feedback.

Login with Twitter or Google to leave a comment