AspectC++ eure Meinung ?



  • Hallo,

    ich weiss nicht ob das hier schon mal diskutiert wurde, die suche jedenfalls brachte keine treffer, aber mich würde mal interessieren was ihr von aspectorientierter programmierung haltet. Insbesondere geht es mir natürlich um aspectorientierung in c++. Ich stolpere seit längerem hier und da über das wort aspectorientierung, wenn ich mich durchs www bewege. Letzte woche hab ich dann endlich mal etwas genauer geschaut was das denn nun alles ist. Auf den ersten blick macht es einen sehr interessanten eindruck. Der aspectc-präpro scheint auch ganz brauchbar zu sein. Ich habe also damit mal ein bisschen herum gespielt und war zugegebenermaßen angenehm überrascht über die möglichkeiten die einem dieses paradigma bietet. Habt ihr bereits erfahrungen gemacht und findet es ebenfalls gut oder habt ihr entscheidene argumente gegen die verwendung ?

    greets



  • AOP ist zur Zeit noch da, wo OOP war, bevor es noch kein Smalltalk gab. Sprich es ist alles noch eine Experimentierlandschaft. AOP wird bestimmt noch 5 oder 10 Jahre brauchen, um sich zu etablieren. Das Problem ist, das man dafür Sprachererweiterungen benötigt. Man ist also von Tools wie AspectCpp ider AspecrJ abhängig.

    Es gibt auch CaesarJ, welches AOP für Java weiter treibt. Wobei man da wieder sieht, da CaesarJ das kompensiert, was Java fehlt. Nämlich das was C++ von Haus aus kann. CaesarJ ist aber wie AspektJ ein eigener Compiler -> abhängig von diesem Produkt bzw. Technik.

    Schau dir mal Policies in C++ an -> das ist auch schon AOP mit den Mitteln die C++ von Haus aus bietet. Policies werden auch verstärkter in Boost eingesetzt.

    AspectCpp würde ich so noch nicht in produktiven Projekten einsetzen. Wenn dann nur zum experimentieren. Ansonst würde ich mich den Sprachmitteln von C++ annehmen, die schon AOP-Teile von Haus aus abdecken.



  • Hi,

    ok ich formuliere mal meine frage etwas um. Denkt ihr dass dieses paradigma zukunft hat ? Das policy-design aop-charakter hat ist mir nicht verborgen geblieben und das kann man ja auch in den artikeln über aop im bezug auf c++ nachlesen. Bei policy basiertem design muss aber die hostklasse wissen dass es policies gibt. Sie muss also templateparameter erwarten von denen dann geerbt wird. Bei AspectCpp hingegen müssen die klassen nicht darauf ausgelegt sein. Ein aspekt kann also sogar leicht in fremden code integriert werden. Das finde ich besonders interessant. Wenn man bedenkt dass die problemdomäne an die sich dieses paradigma richtet sehr spezifisch und eng abgegrenzt ist (es geht soweit ich das sehe nur um crosscutting concerns), frage ich mich ob es wirklich nötig ist gleich solche tools einzuführen. Oder ob es vll nicht doch besser wäre z.B. den policy-ansatz zu wählen. Vll seh ich auch einfach die weiteren möglichkeiten nicht. Man muss allerdings auch sagen, dass dieses paradigma das spezifische problem sehr elegant lösst, jetzt mal unabhängig von der eigentlichen umsetzung. Wenn das weaving transparent passieren würde und dann die nächsten schritte wie gehabt laufen würden, wäre das ganz schon angenehmer. Aber an solchen sachen wird ja noch getestet und entwickelt.

    greets


Anmelden zum Antworten