Hacker News new | ask | show | jobs
by deno2 4344 days ago
To be a language means to be a way of defining thoughts in order to have them delivered to another.

With no constraints you could just write random rubbish (a bit like this). With the constraints of Java or C# you write code which does it's job, however a lot of work is in fitting your thoughts within the extensive syntax of the languages' constraints.

Clojure, or any other Lisp, helps in that the initial constraints it imposes are simple ().

Once you get a feel for the simplicity you get the feel for the power it brings.

It's a bit like wingtsun kung fu. Your brain is no way fast enough to react to your opponent fast enough to decide for example is this a hard punch or a soft punch. By that point the punch would have been received, restricting your thinking further. However if your body knows the language of wingtsun there is no thinking involved. Period.

Your body knows the language of interacting with another body so leaving your mind the time to make decisions. Your body has embraced the language and can rely on it to keep you alive whilst giving your mind the freedom (time) to make decisions or ultimate kill moves or be creative.

Another word for decisions is creativity. The cost of creativity is time. So embrace your language and be creative with your thoughts given the time your language allows. If you feel your language is asking for help unrelated to your problem then either you don't understand your language or the language is not a language at all and maybe another is better for the current context.

To sum this range in rubbish clojure:

(if (total-time > time-spent-defining-problem) (ask-where-this-time-went total-time time-spent-defining problem) :you-are-at-one-with-your-language-and-in-flow-my-friend)

Or think about:

(def time (apply + allthetimesyouspentdefiningclasseswhenallyouwantedwasafunction))

End of drunken rant.