Skip to content

Latest commit

 

History

History
57 lines (55 loc) · 1.72 KB

prepare-presentation-clojure.org

File metadata and controls

57 lines (55 loc) · 1.72 KB

Why clojure?

What we’re craving for?

In our everyday developer life

  • simplicity / no incidental complexity
  • rapidity
  • clarity
  • feedback
  • fail-fast

Simplicity

  • KISS
  • Concentrate on the pb to solve, no incidental complexity that hides the true pb

Rapidity

  • We do have lots of stuffs to solve, the faster, the merrier
  • No fighting with something out of scope

Clarity

  • Be able to read code from anyone
  • Simplicity is intertwined here

Feedback

  • Want
    • Know the fastest possible what’s wrong
    • Unit Testing frameworks (midje, clojure.test)
  • Do not want
    • launch some improbable command to know that
    • setup an heavy environment to do that
      • wait for the CI server to feed us

Failfast

  • REPL

Why Clojure ?

  • addresses these problematics because it was created for that.

(Are we there yet? - Rich Hikey) perfect balance of idealism (lisp) and pragmatism (JVM)

  • Perfect Java interop.
  • Excellent parallel programming primitives (not threads)
  • Cure your parenthesophobia ! Reading (nested) lists of parenthesis can be hard at first, but it is simple, really ! easing the pain :
    • Syntax to reduce the number of ():
      • Code is data (list), but most data is not list (so obviously not code)→[],{},#{}
      • Context is used for implicit grouping (i.e. of pairs of key, value)
    • IDE to handle them :
      • writing → electric parenthesis
      • reading → rainbow

    Only hard at the beginning, but the rewards (true meta-programming) lasts forever.

IDE

emacs

electric parenthesis

rainbow

clojure-jack-in

plugin eclise? intellij? - Do not know any as emacs is sufficient