3 ms·
The art of the meta object protocol was good, it basically was a well-written code commentary for how to build an advanced OO meta system (CLOS) for LISP. CLOS
by parasubvert 12y ago
The art of the meta object protocol was good, it basically was a well-written code commentary for how to build an advanced OO meta system (CLOS) for LISP. CLOS was a bit of a dream language, I'd say Scala is perhaps the closest practical language in terms of ideas.
Interestingly, this work led Gregor Kiczales & team to create Aspect Oriented Programming - a subset of his metasystem - which became somewhat popular with Java and the Spring framework's use of AspectJ.
http://en.m.wikipedia.org/wiki/Aspect-oriented_programming http://en.m.wikipedia.org/wiki/Aspect-oriented_programming
As an aside, I found in college (let along high school!) that students have almost anti-philosophical learning objectives. The SICP approach of teaching computer science from the metasystem up with Scheme (and then possibly moving on to CLOS/Lisp) was near-universally hated among my peers (1996-2002) - most wanted a practical language they could "get a job" with. I believe MIT first year CS switched to Python in part to deal with this resistance.
- mbrock 12y agoWhat makes Scala more "practical" than Common Lisp, other than incidental matters of library support on the JVM?
- parasubvert 12y agoThat, and the dearth of people that know CLOS, or are able and WANT to learn CLOS. "Design by resume" surrounds us.
- DalekBaldwin 12y agoAOP also encompasses techniques you can't find in CLOS/MOP. The analogues to before/after/around methods are the easiest concepts to implement and reason about, so those are what popular language extensions tend to emphasize. But if you look at the original AOP papers describing Reverse Graphics, you'll see an AOP system used to liberally restructure the control flow of the entire base program, not just augment its behavior. It was an early version of what you can see now in something like the Halide language. > I believe MIT first year CS switched to Python in part to deal with this resistance. In part. The full story is a bit more depressing: http://www.wisdomandwonder.com/link/2110/why-mit-switched-from-scheme-to-python http://www.wisdomandwonder.com/link/2110/why-mit-switched-fr... Most of the other top universities that had used SICP also switched shortly after MIT.
- xenophonf 12y ago> most wanted a practical language they could "get a job" with This was me in college. Especially early on, I kept hounding my professors why they weren't teaching a particular language (e.g., C++) or toolchain (Visual Studio). It wasn't until well after I graduated that I appreciated the distinction between using tools and making tools---and that my professors taught me the latter.