(format NIL "Hello world!")

I think I love Common Lisp. I'm a developer who works professionally with statically (C++) typed languages, but in my free time I've started writing small programs in Common Lisp. It began with Advent of Code one Christmas - which I didn't finish at all, and I've really enjoyed working with it ever since as people say. Hence (:P) this blog will be about programming in this delightful language. ^.^

My interest in lisp started when I heard great things about its macro system. People were like "you can do stuff called domain specific languages" and "the possibilities are limitless". Back then I was working with C++, and its little useful quirk I appreciated most was the template system. Because that stuff gave me the ability to create control flow constructs borrowed from other languages - things like defer, running a function only once, lazy evaluation, and more (like butchered Haskell type system). But the results weren't pretty: the syntax was cumbersome, and when errors occurred, they were oof to debug.

But the macros could solve everything! I could create a programming language Frankenstein's monster and it would look like a totally natural part of the language. Isn't that a dream for a dreamer? All this beautiful talk on news for people of hacking gave me a push to go and look around the wonderful garden of lisp. I guess you know the stuff like The Little Schemer (which I've read :P) or the SICP (which I didn't >.<), the talk was everywhere and I was curious. I knew about Racket, Chicken Scheme or Clojure but since I was really big on OOP and I was lucky to stumble onto information about the nature of objects in Common Lisp it was a done deal.

But ladies and gentlemen, that was not all that got my heart. I've also realized that the debugging works slightly different than in other languages (and the experience can go from "Lord save me!" to "oh wrong value here"). Since the program lives in an image you can change the state of the program, so you can rewrite the function and retry it again from some point. I don't know, it just helps.