You took some AP classes and got hired as an intern, thus your're a professional software engineer?
You are advanced for your age I would say. You have a position that most college sophomores don't have. You are delving into reflection and meta programming at a stage in your education when most people are struggling with syntax. You're doing well and your on the right path to become a successful software engineer. Understand though, you have a long road ahead of you and a lot to learn. Not just experience. Computer science is a lot more involved than just slinging around code.
You went off on some spiel about how Java reflection is some advanced programming topic and DI is basically just dumbed down reflection. Ok, way to completely miss the point and the usefulness of dependency injection. It's called a "design pattern." Look that one up. Clearly you've never had to maintain a large piece of software. Yes, you are right, the DI framework does put to use reflection to get some work done. It's simply utilizing a feature of the language. So what? I don't understand how you figure Proxy and Method have anything to do with dependency injection. It's not trying to manipulate the functionality of anything at run time. It's just implementing a common design pattern, that's all.
Second of all. Manipulating an interface at run time, in Java is a complete violation of its purpose and type system. It is a statically typed language for a reason. Like I said before; if you want dynamic typing, use a language that supports it. Don't try to ghetto rig a language to do it. Not only will it be very difficult, but you'll end up with a type-unsafe program in the process.
Third of all. You are ooh'ing and aahhh'ing over Java reflections saying they are the future and all other languages are mostly likely inferior or will be if they don't "catch up". Honestly, Java's reflection is a sad, crippled attempt at some whack-ass version of "read-only" meta programming. It's better than nothing, but it's nowhere near as powerful as languages who depend on dynamic typing and meta programming to get shit done. Reflection is just one small piece of meta programming as a whole.
Go look at Common LISP and you'll see that most modern languages are still playing catchup with its feature set 40 years later.
This post has been edited by Dark_Nexus: 06 July 2010 - 11:51 PM