3 ms·
I did what any sensible Lisp hacker does: I wrote my own object system
- dkarl 17y agoIt's an article about how representation, behavior, and taxonomy are distinct concepts that can be handled separately, despite the fact that object-oriented languages tend to confuse them. I don't think "confuse" is the right word. A class-based object system is not an affirmation that behavior and taxonomy are the same thing, just as a hammer is not an affirmation against the existence of screws.
- jobeirne 17y agoBlue Rondo a la Turk is a great song to write an object system to.
- deleted 17y ago[deleted]
- DrJokepu 17y agoI was just listening to that song when I read your comment (and the article)! What a weird coincidence.
- gcv 17y agoI wouldn't mind seeing the author's code. I decided to use Clojure for a project, and while it has generally been a good experience, I do miss the ability to strategically apply CLOS in places.
- icey 17y agoI'll be ecstatic if it is well done; I'd love for Clojure to be multi-paradigm (even if the object system was a bolted-on one).
- imbaczek 17y agoexactly why i don't like Lisp: every Lisp hacker makes his own object or whatever system, making it hard for other people to understand his work.
- DrJokepu 17y agoWriting unmaintainable crap is really the fault of the programmer, not the language, isn't it? You can write unmaintainable stuff in any language and I think Lisp is particularly good at helping the developer keeping the code clean and easily readable (despite it being very powerful so it's easy to do very stupid things, I must admit that.)
- WilliamLP 17y agoIt's easy to do very stupid things, which at the time seem brilliant, and you don't realize they're stupid until they're so intertwined with the rest of the project that they're harder to fix than to just deal with.
- DrJokepu 17y agoWhat I mean, a novice programmer would do that in any language anyway (and I'm no exception) while an experienced developer would avoid these traps in any language.
- thunk 17y agoGood point. But you can't reach the simplifying insight by any other road than your own initial stupidity. It's the way you learn Lisp. At least Lisp breaks you with grace -- quick and painful. Most other languages spare you the pain of insight. And I'm consistently surprised by how easy it is to root out my stupidities once I've recognized them, thanks to the repl, a functional style and a small code base. Lisp teaches you to face your fears.
- randallsquared 17y agoThis is, indeed, a symptom of the main problem with lisps today; there's so much power available, but a lack of incentives about not using it capriciously. Everyone writes their own implementations of relatively basic things, because the existing libraries don't do things in exactly the way they'd prefer, and it's just not painful to write a library that does just the parts you need. Clojure might get around this by tying itself to Java, as long as most Clojurists come from the Java world and are used to using those same libraries already.