Lesson 3. Clojure in the industry

 

After reading this lesson, you will be able to:

  • Describe what kind of projects are suited for Clojure and why they are suited
  • Describe what kind of projects are not suited for Clojure and why they are not suited

Clojure is considered a general purpose language. In theory, it could be used for writing software in the widest variety of application domains. But in practice, there are some domains where the key features of Clojure make it a good choice and some domains where it is less appropriate to use Clojure.

In general, we can say that Clojure has been really well adopted in the field of web development.

Table 3.1   This table summarizes the kind of projects where Clojure is best suited or not and the main reasons

Project

Best suited for Clojure

Main reasons

Web servers

Yes

Rely on solid java frameworks

Highly scalable

Microservices

Yes

Data manipulation facilities
Concise syntax
REPL

Big data

Yes

Data manipulation facilities

Complex frontend web applications

Yes

Immutability
Solid software engineering framework

Shell Scripts

No

JVM startup time
Cumbersome access to shell environment

Infrastructure projects

No

Non native

Mobile apps

No

No mature ecosystem

Simple frontend web applications

No

Non native

3.1   What kind of projects are suited for Clojure?

3.1.1   Web Servers

3.1.2   Microservices

3.1.3   Big Data

3.1.4   Complex frontend web applications

3.2   What kind of projects are not suited for Clojure?

3.2.1   Shell Scripts

3.2.2   Infrastructure projects

3.2.3   Mobile apps

3.2.4   Simple frontend web applications

3.3   Summary