Acid Tripping, Disneyland and Special Relativity
malcontent: …Lisp guys know all about monkeypatching and dynamism. Those crazy mofos write mind bending macros and morph the language in ways that can only be described as an acid trip inside the ‘it’s a small world’ ride in disneyland…
earthboundkid: Python is a language for pedants. That’s exactly why I like it. There’s (almost) always one “correct” way of doing something, and when you do it that way, you get that warm glow in your heart that we pedants get when we outsmart someone or something. When it’s like when you correct a teacher in class or find a grammar/spelling error in your opponent’s message board post. That’s why Python is “fun” for us.
For Ruby heads, the fun is in solving the problem in some crazy idiosyncratic way that makes sense to you but seems backwards to everyone else. See the insane andand thingamajig that Raganwald invented. That’s why Ruby includes an unless keyword, just in case. That’s why Ruby has _why.
So yeah, totally different communities for two remarkably similar languages. At that point, it becomes the narcissism of small differences.
malcontent: …If you think andand is insane, try to read some Paul Graham macros.
—An amusing exchange between malcontent and earthboundkid on
ruby.reddit.comYou can decide for yourself whether bottom-up programming in Lisp is like either or both of an acid trip or a Disneyland ride. And I know a few Python programmers who seem to be able to enjoy programming without the
epicaricacy of declaring that their colleagues are ‘wrong.’
Now when it comes to ‘Ruby Heads’… Well, that expression obviously need not be applied to every Ruby programmer. It implies someone who is immersed in the language, someone who reflects upon its use and who actively participates in its evolution. So there may be a kernel of truth in earthboundkid’s hyperbole.
Speaking for myself, I distinguish between andand’s interface and its implementation. With respect to its interface, I was attempting to create something that makes perfect sense to
everyone. Sometimes the motivation is to get people to look at something and say “That looks odd… Let me think about it… Hmmm, that actually makes sense once I think about it.”
My own code is no
Special Relativity, but for me that is one of the greatest theories ever invented: it doesn’t make you learn something entirely new unlike anything you’ve ever seen before: Instead, Special Relativity makes you rethink the consequences of the things you already know about inertia and the fact that measuring the speed of light always provides the same constant result.
That’s a big motivation for pushing programming languages and programming styles. Not so much to create something entirely new (“Look! The code flows from bottom to top and right to left!”), but to provoke us to understand the implications of the things we already know.