# ClojureScript

ClojureScript is a compiler for Clojure that targets JavaScript. It emits JavaScript code which is compatible with the advanced compilation mode of the Google Closure optimizing compiler. ClojureScript combines the reach of the JavaScript platform, the flexibility and interactive development of Clojure, and the whole-program optimization of Google Closure to provide the most powerful language for programming the web.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Setting Up Live-Reloading ClojureScript Development with Boot

DevFeed: [Setting Up Live-Reloading ClojureScript Development with Boot](<https://devfeed.tech/articles/clojurescript-boot-live-reload-weasel-vim-fireplace-piggieback-32109.md>)

Original publisher: [Read original article](<https://adambard.com/blog/clojurescript-boot-fireplace/>)

Published: 2016-01-11T00:00:00Z

Content type: tutorial

Language: en

Sources: [Adam Bard](<https://devfeed.tech/sources/adam-bard.md>)

Topics: [ClojureScript](<https://devfeed.tech/topics/clojurescript.md>), [boot](<https://devfeed.tech/topics/boot.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Development](<https://devfeed.tech/topics/development.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>)

Tags: [boot](<https://devfeed.tech/tags/boot.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [development](<https://devfeed.tech/tags/development.md>), [reload](<https://devfeed.tech/tags/reload.md>), [repl](<https://devfeed.tech/tags/repl.md>), [vim](<https://devfeed.tech/tags/vim.md>)

### AI overview

A tutorial for assembling a live-reloading, auto-compiling ClojureScript development setup with Boot. It explains the required dependencies, configuration, and task composition, including starting a REPL and passing the fileset.

### Source excerpt

My long-standing complaint about Clojurescript is that it's a pain to get running. People who prefer Leiningen seem to have gotten a handle on this with figwheel; however, those of us who have jumped on the Boot train (it's newer and therefore better!) still have to do some assembly to get the live-reloading auto-compiling repl setup that's become the standard for Clojurescript development. Like many problems in the Clojure universe, this is less a problem of technology and more a problem of approachable documentation. With just a little bit of configuration and some understanding, you too can assemble that perfect Clojurescript dev setup using Boot.

## My year in review - 2015

DevFeed: [My year in review - 2015](<https://devfeed.tech/articles/my-year-in-review-2015-22360.md>)

Original publisher: [Read original article](<http://www.afronski.pl/2015/12/31/my-year-in-review-2015.html>)

Author: Wojtek Gawroński (afronski)

Published: 2015-12-31T15:00:00Z

Content type: article

Language: en

Sources: [Wojtek Gawroński](<https://devfeed.tech/sources/wojtek-gawronski.md>)

Topics: [Programming](<https://devfeed.tech/topics/programming.md>), [Elixir](<https://devfeed.tech/topics/elixir.md>), [Microservices](<https://devfeed.tech/topics/microservices.md>), [phoenix](<https://devfeed.tech/topics/phoenix.md>), [ClojureScript](<https://devfeed.tech/topics/clojurescript.md>), [Erlang](<https://devfeed.tech/topics/erlang.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Node.js](<https://devfeed.tech/topics/node-js.md>), [Bash](<https://devfeed.tech/topics/bash.md>), [C](<https://devfeed.tech/topics/c.md>), [Python](<https://devfeed.tech/topics/python.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [c-sharp](<https://devfeed.tech/tags/c-sharp.md>), [canvas](<https://devfeed.tech/tags/canvas.md>), [clojure](<https://devfeed.tech/tags/clojure.md>), [css](<https://devfeed.tech/tags/css.md>), [css3](<https://devfeed.tech/tags/css3.md>), [erlang](<https://devfeed.tech/tags/erlang.md>), [html](<https://devfeed.tech/tags/html.md>), [html5](<https://devfeed.tech/tags/html5.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [languages](<https://devfeed.tech/tags/languages.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [mono](<https://devfeed.tech/tags/mono.md>), [net](<https://devfeed.tech/tags/net.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [programming](<https://devfeed.tech/tags/programming.md>), [sicp](<https://devfeed.tech/tags/sicp.md>), [vagrant](<https://devfeed.tech/tags/vagrant.md>), [webgl](<https://devfeed.tech/tags/webgl.md>), [year-in-review](<https://devfeed.tech/tags/year-in-review.md>)

### AI overview

A personal review of 2015 covering talks, meetups, blog posts, books, programming languages, and plans for 2016. It highlights work involving microservices, Elixir, Phoenix, Node.js, Erlang, ClojureScript, and several other languages.

### Source excerpt

My year in review - 2015 Github Talks Nov 2015 - Evolution > Revolution - how should microservices be built? Sep 2015 - Elixir + Phoenix Jun 2015 - ZeroMQ in Node.js Apr 2015 - Erlang Ecosystem (PL) Feb 2015 - Elixir Feb 2015 - ClojureScript + Om = ♥ Details: My Talks Meetups Two meet-up groups created and continued in 2015: NodeSchool Silesia Silesian BEAMers Blog Most viewed blog posts by me Books List of book which I've read in 2015 and reading challenge. Favorite technical book of 2015 Pragmatic Thinking and Learning: Refactor Your Wetware - blog post about it Number of books read 20 Programming Favorite programming languages (or related) I've hacked on/with this year Languages with pet projects: Erlang #1, Erlang #2, Elixir #1, Elixir #2 ClojureScript Programming languages used for work-related projects this year JavaScript - ES 5 (Node.js, Front-End), JavaScript - ES6 (Front-End), Java, C, Ruby, Python, Bash Programming languages that I hope to explore next year Idris, Rust, Prolog Plans for 2016 Apply 100:10:1 rule to my open source work. Proceed with cost-benefit analysis and focus on monetization in terms of open source work. Try to kick-off another meet up in Silesia region - Papers We Love. Learning (even more than previously) about theory and how to design distributed and real-time systems. Focus on doing interactive blog posts and higher quality (premium?) materials. Push even harder work related with quality and visibility of blog posts. Take more time to discover new music. Happy New Year! :wink:

## Throwing together a weekend project with boot-clj

DevFeed: [Throwing together a weekend project with boot-clj](<https://devfeed.tech/articles/throwing-together-a-weekend-project-with-boot-clj-32165.md>)

Original publisher: [Read original article](<https://adambard.com/blog/throwing-together-worldclassifiedlist/>)

Published: 2015-06-08T00:00:00Z

Content type: tutorial

Language: en

Sources: [Adam Bard](<https://devfeed.tech/sources/adam-bard.md>)

Topics: [boot](<https://devfeed.tech/topics/boot.md>), [Clojure](<https://devfeed.tech/topics/clojure.md>), [ClojureScript](<https://devfeed.tech/topics/clojurescript.md>), [api server](<https://devfeed.tech/topics/api-server.md>), [migration](<https://devfeed.tech/topics/migration.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [boot](<https://devfeed.tech/tags/boot.md>), [clojure](<https://devfeed.tech/tags/clojure.md>), [compilation](<https://devfeed.tech/tags/compilation.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [migration](<https://devfeed.tech/tags/migration.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [sql](<https://devfeed.tech/tags/sql.md>)

### AI overview

A retrospective on building a weekend project with boot-clj. The author describes using Boot to manage the environment, development and production servers, Middleman, and ClojureScript compilation, while a simple API server exposes PostgreSQL queries to a Reagent and Kioo frontend. The article also explains using boot-ragtime for SQL migration files and applying migrations.

### Source excerpt

This weekend I made http://worldclassifiedlist.com on a whim. Past experience suggests that I'm not likely to derive any value from the site itself, so before it's completely forgotten, overlooked by an indifferent world and relegated to an unnoticed screenshot on my portfolio page, I thought I might wring a few ideas out of the making-of.

## My first time using boot over leiningen

DevFeed: [My first time using boot over leiningen](<https://devfeed.tech/articles/my-first-time-using-boot-over-leiningen-32131.md>)

Original publisher: [Read original article](<https://adambard.com/blog/i-finally-get-boot/>)

Published: 2015-06-05T00:00:00Z

Content type: article

Language: en

Sources: [Adam Bard](<https://devfeed.tech/sources/adam-bard.md>)

Topics: [boot](<https://devfeed.tech/topics/boot.md>), [ClojureScript](<https://devfeed.tech/topics/clojurescript.md>), [Front end](<https://devfeed.tech/topics/frontend.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>)

Tags: [boot](<https://devfeed.tech/tags/boot.md>), [build-tool](<https://devfeed.tech/tags/build-tool.md>), [clojure](<https://devfeed.tech/tags/clojure.md>), [front-end](<https://devfeed.tech/tags/front-end.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [project](<https://devfeed.tech/tags/project.md>)

### AI overview

A first-person account of trying Boot instead of Leiningen for ClojureScript development. The article explains how Boot's task-based build scripts can integrate a Middleman static-site project and simplify development workflows.

### Source excerpt

When boot first appeared in my usual rotation of clojure news, I must confess that I didn't really see what the fuss was about. It seemed like someone had taken leiningen and broken out all its parts into functions, which you could then use to get your dependencies, build your project, and so forth. Don't you see! Leiningen is just a build tool, but boot could be anything. It could even be a build tool!

## Interfacing Frege and Ring

DevFeed: [Interfacing Frege and Ring](<https://devfeed.tech/articles/interfacing-frege-and-ring-32136.md>)

Original publisher: [Read original article](<https://adambard.com/blog/interfacing-frege-and-ring/>)

Published: 2014-12-21T00:00:00Z

Content type: tutorial

Language: en

Sources: [Adam Bard](<https://devfeed.tech/sources/adam-bard.md>)

Topics: [ClojureScript](<https://devfeed.tech/topics/clojurescript.md>), [Haskell](<https://devfeed.tech/topics/haskell.md>), [Java](<https://devfeed.tech/topics/java.md>)

Tags: [clojure](<https://devfeed.tech/tags/clojure.md>), [functional](<https://devfeed.tech/tags/functional.md>), [haskell](<https://devfeed.tech/tags/haskell.md>), [interop](<https://devfeed.tech/tags/interop.md>), [java](<https://devfeed.tech/tags/java.md>), [type-system](<https://devfeed.tech/tags/type-system.md>), [web-services](<https://devfeed.tech/tags/web-services.md>)

### AI overview

This tutorial explains how to interface Frege, a strongly typed functional language for the JVM, with Clojure and Ring. It describes using Frege for type-safe intermediary code, converting Ring request and response maps at the boundaries, and interoperating with Clojure maps through Frege's Java FFI.

### Source excerpt

Frege is a strongly-typed functional language for the JVM. Its goal is to mirror Haskell as closely as is possible on the platform, and as far as I can tell it does a pretty decent job. It seems performant enough, and more importantly grants access to a Haskell-esque type system. This makes it a pretty good complement to Clojure for those problems where a strong typing system is important. The downside to Frege is that, even though documentation exists (and is actually quite expansive given the language's limited adoption), it's still hard to find straightforward how-tos by googling. So here's some much-needed frege-related blogspam to fill out those results.

## Clojure is not for geniuses

DevFeed: [Clojure is not for geniuses](<https://devfeed.tech/articles/clojure-is-not-for-geniuses-32105.md>)

Original publisher: [Read original article](<https://adambard.com/blog/clojure-is-not-for-geniuses/>)

Published: 2014-11-18T00:00:00Z

Content type: opinion

Language: en

Sources: [Adam Bard](<https://devfeed.tech/sources/adam-bard.md>)

Topics: [ClojureScript](<https://devfeed.tech/topics/clojurescript.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [systems](<https://devfeed.tech/topics/systems.md>), [Software](<https://devfeed.tech/topics/software.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [assembly](<https://devfeed.tech/tags/assembly.md>), [blog](<https://devfeed.tech/tags/blog.md>), [c](<https://devfeed.tech/tags/c.md>), [complexity](<https://devfeed.tech/tags/complexity.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [functional](<https://devfeed.tech/tags/functional.md>), [language](<https://devfeed.tech/tags/language.md>), [languages](<https://devfeed.tech/tags/languages.md>), [memory](<https://devfeed.tech/tags/memory.md>), [object-oriented](<https://devfeed.tech/tags/object-oriented.md>), [objective-c](<https://devfeed.tech/tags/objective-c.md>), [programming](<https://devfeed.tech/tags/programming.md>), [software](<https://devfeed.tech/tags/software.md>), [systems](<https://devfeed.tech/tags/systems.md>)

### AI overview

The article argues that Clojure is not limited to genius programmers. It presents immutable collection semantics and reduced program and library complexity as ways to reduce the mental effort required to understand and debug software, contrasting this with the lifecycle-tracing demands of mutable object-oriented systems.

### Source excerpt

It's a common attitude that functional languages with immutable collection semantics, such as Clojure, are for a) pretentious language geeks, or b) actual genius programmers. I'm in no position to defend against point a) given the body of my writing on this blog, so today I'd like to write an article about point b).

## A clojure cup retrospective

DevFeed: [A clojure cup retrospective](<https://devfeed.tech/articles/a-clojure-cup-retrospective-32102.md>)

Original publisher: [Read original article](<https://adambard.com/blog/clojure-cup-retrospective/>)

Published: 2014-09-29T00:00:00Z

Content type: opinion

Language: en

Sources: [Adam Bard](<https://devfeed.tech/sources/adam-bard.md>)

Topics: [Clojure](<https://devfeed.tech/topics/clojure.md>), [Development](<https://devfeed.tech/topics/development.md>), [ClojureScript](<https://devfeed.tech/topics/clojurescript.md>), [Git](<https://devfeed.tech/topics/git.md>), [nginx](<https://devfeed.tech/topics/nginx.md>), [ssh](<https://devfeed.tech/topics/ssh.md>), [Ubuntu](<https://devfeed.tech/topics/ubuntu.md>)

Tags: [app](<https://devfeed.tech/tags/app.md>), [clojure](<https://devfeed.tech/tags/clojure.md>), [coding](<https://devfeed.tech/tags/coding.md>), [development](<https://devfeed.tech/tags/development.md>), [git](<https://devfeed.tech/tags/git.md>), [nginx](<https://devfeed.tech/tags/nginx.md>), [retrospective](<https://devfeed.tech/tags/retrospective.md>), [ssh](<https://devfeed.tech/tags/ssh.md>), [ubuntu](<https://devfeed.tech/tags/ubuntu.md>)

### AI overview

A retrospective on building Booker as a one-person entry for the 2014 Clojure Cup. The author describes the 48-hour competition, initial server setup with Ubuntu, SSH, nginx, and Git, and the early development and design decisions for the app.

### Source excerpt

Update: Voting is live! Vote for my app at https://clojurecup.com/#/apps/booker, then check out some more deserving entries at https://clojurecup.com/#/apps and vote for them too! I've just spent about 30 hours this weekend coding up Booker, my entry to the 2014 Clojure Cup, in which I participated as a one-man team. It was pretty exhausting, and the app doesn't do quite as much as I was hoping it might, but I'm still quite happy with how it all turned out. Here's how my weekend went.

## Ten reasons to use Clojure/ClojureScript on your next web dev project

DevFeed: [Ten reasons to use Clojure/ClojureScript on your next web dev project](<https://devfeed.tech/articles/ten-reasons-to-use-clojure-clojurescript-on-your-next-web-dev-project-32162.md>)

Original publisher: [Read original article](<https://adambard.com/blog/ten-reasons-to-use-clojure/>)

Published: 2014-08-15T00:00:00Z

Content type: opinion

Language: en

Sources: [Adam Bard](<https://devfeed.tech/sources/adam-bard.md>)

Topics: [Clojure](<https://devfeed.tech/topics/clojure.md>), [ClojureScript](<https://devfeed.tech/topics/clojurescript.md>), [Functional programming](<https://devfeed.tech/topics/functional-programming.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Data structures](<https://devfeed.tech/topics/data-structures.md>), [Web](<https://devfeed.tech/topics/web.md>), [API](<https://devfeed.tech/topics/api.md>), [React](<https://devfeed.tech/topics/react.md>)

Tags: [clojure](<https://devfeed.tech/tags/clojure.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [data-structures](<https://devfeed.tech/tags/data-structures.md>), [dev](<https://devfeed.tech/tags/dev.md>), [functional](<https://devfeed.tech/tags/functional.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [react](<https://devfeed.tech/tags/react.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

An opinionated developer article presents ten reasons to use Clojure and ClojureScript in web development. It highlights language design, immutable data structures, functional programming, concurrency, interoperability with Java and JavaScript libraries, React integration, macros and DSLs, Ring, and live coding.

### Source excerpt

Hello sir. I'm here to talk to you today about accepting Clojure into your workflow. Do you have a few minutes? I'd like to show you these ten ways that Clojure can help you make better software. Good, here we go!

## A simple Clojurescript app

DevFeed: [A simple Clojurescript app](<https://devfeed.tech/articles/a-simple-clojurescript-app-32091.md>)

Original publisher: [Read original article](<https://adambard.com/blog/a-simple-clojurescript-app/>)

Published: 2014-08-13T00:00:00Z

Content type: tutorial

Language: en

Sources: [Adam Bard](<https://devfeed.tech/sources/adam-bard.md>)

Topics: [ClojureScript](<https://devfeed.tech/topics/clojurescript.md>), [Single-page application (SPA)](<https://devfeed.tech/topics/spa.md>), [Code](<https://devfeed.tech/topics/code.md>), [React](<https://devfeed.tech/topics/react.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [application](<https://devfeed.tech/tags/application.md>), [clojure](<https://devfeed.tech/tags/clojure.md>), [code](<https://devfeed.tech/tags/code.md>), [development](<https://devfeed.tech/tags/development.md>), [render](<https://devfeed.tech/tags/render.md>), [state](<https://devfeed.tech/tags/state.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

A tutorial on building a simple ClojureScript single-page calculator with Kioo and Om. It covers the application structure, build configuration, rendering, and global state management.

### Source excerpt

In May, I left Canada to do some long-term travelling with my wife. I don't mention it here because this isn't tumblr, but it does mean that I have some problems many people don't, such as figuring out when I can return in the Schengen Area. This is a problem that has been solved, but I've yet to see it solved well, so I decided to build my own calculator as an exercise using Kioo with Om.

## Emacs Lisp: Toggle Between a Clojure String and Keyword

DevFeed: [Emacs Lisp: Toggle Between a Clojure String and Keyword](<https://devfeed.tech/articles/emacs-lisp-toggle-between-a-clojure-string-and-keyword-31901.md>)

Original publisher: [Read original article](<http://blog.jayfields.com/2013/05/emacs-lisp-toggle-between-clojure.html>)

Author: Jay (noreply@blogger.com)

Published: 2013-05-02T14:41:00Z

Content type: tutorial

Language: en

Sources: [Jay Fields](<https://devfeed.tech/sources/jay-fields.md>)

Topics: [Emacs](<https://devfeed.tech/topics/emacs.md>), [ClojureScript](<https://devfeed.tech/topics/clojurescript.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>), [Lisp](<https://devfeed.tech/topics/lisp.md>)

Tags: [clojure](<https://devfeed.tech/tags/clojure.md>), [conversion](<https://devfeed.tech/tags/conversion.md>), [emacs](<https://devfeed.tech/tags/emacs.md>), [emacs-lisp](<https://devfeed.tech/tags/emacs-lisp.md>), [refactoring](<https://devfeed.tech/tags/refactoring.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [string](<https://devfeed.tech/tags/string.md>)

### AI overview

This article presents an Emacs Lisp solution for toggling between Clojure strings and keywords, motivated by a refactoring task that required converting multiple Clojure keywords to strings. It also references a video demonstrating the behavior.

### Source excerpt

When I was doing a fair bit of Ruby I often used the TextMate's shortcut (Ctrl+:) to convert a Ruby String to a Symbol or a Ruby Symbol to a String. It's something I've periodically missed while doing Clojure, and yesterday I found myself in the middle of a refactoring that was going to force the conversion of 5+ Clojure Keywords to Strings. The following emacs lisp is my solution for toggling between Clojure Strings and Keywords. The standard disclaimers apply - it works on my machine, and I've never claimed to know emacs lisp well. A quick video of the behavior: © Jay Fields - www.jayfields.com

## Technology Day 2012

DevFeed: [Technology Day 2012](<https://devfeed.tech/articles/technology-day-2012-31965.md>)

Original publisher: [Read original article](<https://tech.finn.no2012/06/12/technology-day-2012/>)

Author: espen

Published: 2012-06-12T08:43:19Z

Content type: article

Language: en

Sources: [Finn.no](<https://devfeed.tech/sources/finn-no.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [ClojureScript](<https://devfeed.tech/topics/clojurescript.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Database](<https://devfeed.tech/topics/database.md>), [Web](<https://devfeed.tech/topics/web.md>), [version-control](<https://devfeed.tech/topics/version-control.md>), [Semantic Web](<https://devfeed.tech/topics/semantic-web.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [clojure](<https://devfeed.tech/tags/clojure.md>), [database](<https://devfeed.tech/tags/database.md>), [development](<https://devfeed.tech/tags/development.md>), [mongodb](<https://devfeed.tech/tags/mongodb.md>), [semantic](<https://devfeed.tech/tags/semantic.md>), [technology](<https://devfeed.tech/tags/technology.md>), [version-control](<https://devfeed.tech/tags/version-control.md>)

### AI overview

FINN announces its 2012 Technology Day, featuring a Clojure workshop, an innovation workshop, and lightning talks on a range of technology and workplace topics.

### Source excerpt

One of the ways of getting inspired and educated about technology here at FINN is through our "Tech-Dag" (which means something along the lines of Day of Technology). This year we have a packed program which consists of workshops and a bunch of lightning talks. Workshops Clojure workshop Alternative languages on the Java Virtual Machine is a hot topic all over and at FINN we are exploring our options as well. Therefor we have invited Johannes Brodwall, Ivar Nilsen and Anders Karlsen from Steria to do a introduction to Clojure workshop. FINN Way of Innovation Our Lean-navigators have been working hard to help our development teams make conscious decisions and to make sure they make the right priorities to maximize customer value. This workshop will touch upon some of the basic aspects and give the participants a way of giving input to the process. Lightning talks Lightning talks are 10 minutes long and tightly timed. We hold them after lunch, starting at 1330 - 1500 pm. The topics are broad ranging, and not limited to programming at all. About love (... and ask yourself "why do we work 8 hours a day") Fragmentation of the Android and why it is not a problem for us Testcomplete database code before check - is it possible? Elastic Search Geolocation with MongoDB Traditional version control systems vs distributed version control systems (VCS -> DVCS). Eat your own dogfood Semantic web Large IT projects should fail! Følg oss på Hash tag #techdagen