Monday, March 30, 2015

SCM Help. The Cost and Benefits of Reflection.

Team. The leader of the local JAVA User's Group (JUG) provided us with some resources on Source Code Management (SCM). He suggested that using a Git repository might be a better choice than Subversion (SVN). Java.net offers Git as an option for the repository so we will consider this over the next couple of weeks.

We hope that this project has sparked some ideas which you might find useful in your own projects. Reflection is a very powerful feature of JAVA, and we have only used a small portion of its strength when dynamically invoking methods.
 
"Reflection is commonly used by programs which require the ability to examine or modify the run-time behavior of applications running in the Java virtual machine. This is a relatively advanced feature and should be used only by developers who have a strong grasp of the fundamentals of the language. With that caveat in mind, reflection is a powerful technique and can enable applications to perform operations which would otherwise be impossible."

     - Oracle Learning Trail on Reflection

     http://docs.oracle.com/javase/tutorial/reflect/

There is a computational overhead associated with reflection and dynamic invocation in JAVA. This is true with all compiled languages which support dynamic invocation such as C/C++, but the benefits of the CABOOSE approach is shorter development cycles, simpler application maintenance, and lesser developer learning curves. These are simply the trade-offs.

This performance penalty will also be in present in the compiled C# when we develop our .NET port. But, based upon how one dynamically invokes a method in the interpreted scripting languages: PERL, PHP, and Python, this computational overhead might not be as "great".

Remember: Hunt. Peck. Think...Enjoy This Day...La-La.

No comments:

Post a Comment