Codemodder and SpongePowered Mixin cater to different scenarios. Codemodder is ideal for transforming source code you own, based on specific patterns. Changing source code allows the changes to be tracked, reviewed, and analyzed using standard tools like compilers and static analysis. It's great for large-scale codebase refactoring.
Contrastingly, SpongePowered Mixin uses Java bytecode manipulation, to transform the bytecode of a specific type. Bytecode manipulation comes with added risks and complexity, so this method is typically reserved for when you need to change the behavior of some external library or framework type. For example, Mixin is useful in Minecraft modding, because it allows modders to change the behavior of externally defined Minecraft types.
In essence, choose Codemodder for large-scale refactors to your source code, and Mixin to modify the bytecode of external Java types.
Software is typically written to serve some business need, and when crappy software serves that need it's incredibly difficult to convince the organization to invest more in quality. However, being asked to crank out half-baked features, poorly tested code, and poorly designed systems takes a toll on programmers who want to be proud of their work.
So what is a programmer to do? I feel like buyers and sellers of software are each cool with the status quo, so who has incentive to improve?
While I really like using MS Office 2013, I just can't use MS Office for Mac. It doesn't seem to integrate with the OS very well. I hope that the next version is better - hopefully retina screen support
I agree, it's painfully slow for anything but simple tasks. My former company (in)famously does everything in Excel (including Gant and flow charts), and being the only guy with OSX the load times were terrible, the UI sluggish and it crashed often. I was really quite surprised how snappy the UI was when looking at a coworker's windows box.
Contrastingly, SpongePowered Mixin uses Java bytecode manipulation, to transform the bytecode of a specific type. Bytecode manipulation comes with added risks and complexity, so this method is typically reserved for when you need to change the behavior of some external library or framework type. For example, Mixin is useful in Minecraft modding, because it allows modders to change the behavior of externally defined Minecraft types.
In essence, choose Codemodder for large-scale refactors to your source code, and Mixin to modify the bytecode of external Java types.