Friday, July 24, 2015

Passing Behavior and Custom JSP/JSF Elements + Behavioral Maps + Writing and Summary

Team. One of the primary goals of CABOOSE is simplicity in software development. The organization of webpage concerns and their associated rendering behaviors should be as intuitive as the use of a Task-Object-Event (TOE) chart in the development of a Visual Basic application. Also, a software engineer does not need a enormous set of knowledge, skills, or tools in his belt. He can be  effective with a few simple yet powerful paradigms.

JAVA Server Pages (JSP) and JAVA Server Faces (JSF) support the development of custom tags for rendering page content. We have suggested the creation of a general purpose tag which might  be useful in accelerating web application development depending upon a manager's development resources. Using the Reflection features of JAVA, it could dynamically invoke methods of any class. Also, with the advent of simplified lambda expressions in JAVA 8, behavior might also be made available which supplies page content.

Support for such a custom element might be available in the first release of CABOOSE. We must learn more about programming with lambda expression which are just anonymous functions provided through a Functional Interface with a single abstract method. We are not aware of any limitations which might possibly prevent realizing this goal. Also, we must decide whether we supply support through the functional paradigm only or also supply a general purpose tag which supports reflection.

Weaving the source which provides the custom page content and storing it in a package or library might be much easier using a general purpose tag which invokes behavior written with mundane JAVA methods or lambda expression than crafting custom tags. It would definitely lessen the learning curve for an engineer who has not created custom tags before.

Finally, it seems that a great place for all of this behavior is in a map. Such keyed behavior could be invoked with a constant time complexity provided that the number of behaviors in the maps is small. Also, when these behaviors represent a well-designed instruction set with a given command format, one can provide a set of registers for holding the parts of the imperative. This combined this the behavioral map would provide a simple and intuitive processor in an interpreter architecture when creating a command shell or meta-VM.

ASIDE: A similar behavioral data structure is possible in PERL, PHP, and Python and other UNIX-like scripting languages. Such an Abstract Data Type (ADT), the behavioral map, is viable in most modern high-level imperative languages.

We freed up some extra time this weekend so we will redraft the summary of the end of the second chapter of the Ozark MVC 1.0 specification. It should be online before the end of next week.

Also, CABOOSE might seem like vaporware if you had difficulty compiling the source which we included in-line with these post (See January-March 2015). We have simply adjusted our delivery date after we discovered that Oracle was producing Ozark. We are hoping that we can ride that "Razorback" as it is adopted within the development community. Our tentative delivery date is one hundred and eighty days after the availability of the first production-grade release of Ozark.

Pardon the long message and enjoy this upcoming weekend.

The CABOOSE Team. 

No comments:

Post a Comment