We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Clojure (the first talk) - Rich Hickey at LispNYC (2007)
Discover the fundamentals of Clojure, a Lisp-inspired language that prioritizes functional programming, immutable data structures, and developer productivity, and explore its innovative approaches to concurrency, macro definition, and polymorphism.
- Class is not a fundamental concept in Clojure, but rather a concept from Java.
- The language is designed on top of data structures, and the reader creates them.
- Clojure is a Lisp, but with a reader that extends the standard Lisp reader.
- The language has a strong focus on functional programming, with immutable data structures and lazy evaluation.
- Object orientation is not a core concept in Clojure, and in fact, closures and immutable state are preferred over mutable stateful objects.
- Concurrency is a key aspect of Clojure, with support for transactional systems and efficient inter-thread communication.
- The language has a strong focus on developer productivity, with tools like the REPL and an extensible reader that allows for macro definition.
- Clojure can seamlessly interact with Java, and has extensive support for the Java Util collection interface.
- Macro definition allows for the creation of domain-specific languages within Clojure.
- Functional programming concepts, such as map, filter, and reduce, are fundamental to the language.
- Clojure has a unique approach to polymorphism, using runtime polymorphism rather than static dispatch.
- Immutable data structures and lazy evaluation make it difficult to write programs that modify state, but rather promote a focus on immutable data.
- The language has a strong focus on simplicity and ease of use, with a minimalistic approach to syntax and a focus on minimizing vendor lock-in.