NB: this is a shameless plug, but likely very relevant to this audience.
Hey all,
I'm a former SpringSource consultant, having used & influenced AspectJ for years. I really can't see doing any kind of OOP-based development without AOP to complement it. For the last several years, I've been doing some great server-side, Node.js development, marrying OOP with functional programming fantastically. However, I have missed my old friend, AspectJ, in that environment.
As such, I just wanted y'all to know that I've been working with Minko Gechev (twitter:@mgechev) on his aspect.js project (
https://npmjs.com/package/aspect.js), bringing much of the patterns in AspectJ to _javascript_, TypeScript & Node.js, but in a manner more native to the JS world. aspect.js is about to go to 0.8.0, hopefully soon. It supports all of the usual suspects: before, after & around advice, pointcuts, etc.
Also, since AspectJ can be used & has been used to pull off the equivalent of stateful traits, I figured I'd also share our trait library for _javascript_ (TypeScript is a work in progress): mutrait (
https://npmjs.com/package/mutrait). Have a look at the readme to get the jist. It's currently at a 1.0.0-pre.9 release level, ready to go to a first release candidate very soon.
Both projects are coming along nicely & thought it was worth mentioning, especially if you find yourself in a modern Node.js project that uses the `class` syntax sugar.
-matthew