my dog learned polymorphism
The moose likes Clojure and the fly likes Is there a particular insight when one Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Languages » Clojure
Bookmark "Is there a particular insight when one "gets"  Clojure?" Watch "Is there a particular insight when one "gets"  Clojure?" New topic

Is there a particular insight when one "gets" Clojure?

Igor Mechnikov
Ranch Hand

Joined: Feb 13, 2011
Posts: 100

I really like the fact that proponents of Clojure, CL, Scheme, Haskell, etc.. are so enthusiastic about their favorite languages.
One of the themes I hear is that at some point, perhaps not the first time one attempts to learn a language, he finally gains certain insight.
Is there anything to this?

String knock = "\u042F \u0418\u0433\u043e\u0440\u044c";
Hussein Baghdadi
clojure forum advocate

Joined: Nov 08, 2003
Posts: 3479

Coding, coding and coding.
Every language has its own culture and an idiomatic way to solve problems.
Practice and you will get it with time.
Amit Rathore

Joined: May 08, 2011
Posts: 20

One of the many insights, for me personally, was the fact that a program that interprets other programs is itself just a program. The idea of DSLs became less "cool" and "magical" when I realized that, and LISP and Clojure programmers design systems naturally in such metalinguistic abstractions. It is just a normal way of doing things.

The other thing I found was that bottom-up design was much more natural in a functional programming language such a Clojure, and being a LISP, it became an even better vehicle for it.

I'm sure other folks have had other or similar revelations!
Huahai Yang

Joined: May 25, 2011
Posts: 10
The insight to me seems to be the freedom of expressing and composing high level data transformations. Once I realize that, I feel this is a more human like thinking than what imperative language taught us to do. Now I feel the imperative languages are glorified machine codes, one is still manipulating registers, memory locations, and such. These are all notions of the implementation details of a Von Neuman machine. OOP tried to hide those, but in the process created another layer of details for us to get around. Functional language let you think directly about how you are going to manipulate YOUR DATA, regardless how the data might be represented in the machine.
I agree. Here's the link:
subject: Is there a particular insight when one "gets" Clojure?
It's not a secret anymore!