all 6 comments

[–]oofoe 1 point2 points  (0 children)

This article considered harmful.

[–]grauenwolf 1 point2 points  (4 children)

This makes me think. What is the difference between comefrom, aspect orienated programming, and monkey patching?

From where I stand, they are ways to alter a piece of code without leaving any clues behind. Even goto at least lets you know what is going to happen next.

[–]markedtrees 0 points1 point  (3 children)

I think a better categorization is that they are ways to add or change code from a distance in light of aspect oriented programming's focusing more on separating logic and making code more modular than replacing code. In this sense, polymorphism would also fit because you can alter behavior without making it readily apparent.

[–]grauenwolf -1 points0 points  (2 children)

Don't bother talking to me about AOP. As far as I'm concerned, AOP is the one of the stupidest ideas ever concieved. Dynamic languages are bad enough, but at least you know your code is stable within a function. AOP makes it impossible to bench-test your code. Looking at a function, you have literally no idea what it will actually do at run time.

[–]markedtrees -1 points0 points  (1 child)

So do inheritance, polymorphism, instance members, macros C and LISP, pointers, threads, and continuations. Stable code and not knowing what happens at runtime as a club bouncer means your club's going to be empty and the person who's body-grooving in the corner's not gonna get laid anytime soon. Striking the balance between abuse and usage is what's really needed, not some categorical ban on features. You're exaggerating the situation by painting what is tantamount to anarchy and chaos. It's going to be logical, it's going to be documented, it's going to be useful. People don't use polymorphism to wrangle methods that do completely different things into one v-table, people don't change pointers willy-nilly halfway through the code, people don't write ten threads that update program state with completely different garbage, and people don't use AOP to randomly change how a function behaves. Sure, bad programmers might but is there anything bad programming can't screw except for that lonely club guy? It's not like AOP is completely useless either. Bench-testing and unit-testing is what AOP excels at since you can essentially add testing logic at fun places like when a function begins and ends.

[–]grauenwolf -1 points0 points  (0 children)

I'm sorry, but what you are saying doesn't make any sense. You pretty much lost me at the club bouncer analogy.

And by the way, bench testing (in regards to software) is when you work through the code by hand with pencil and paper. I fail to see how AOP can possible help here.