After surveying the landscape of available technologies, looking hard at some and glancing at others, I made some solid and some risky choices for our development platform. I opted to stick with an NF2 (Non-first Normal Form) database and to choose the associated oddball (by today’s standards) language in the mix.
Old: We are using a MultiValue, aka Pick, database implementation. This database “model” is more than 40 years old. The server-side language we are using is not PHP, Ruby, Java, C#, Perl, C, C++, VB, or Python. We are writing the server side in MultiValue BASIC enhanced with object-oriented constructs. We are using the flavor of MultiValue built into InterSystems Cache’, which is also no spring chicken. [Speaking of spring chickens, the average age of developers on the SnupNow project is in excess of my own age, and I am past the midpoint.] There is no doubt this team of seasoned professionals has “old” in our development platform.
Borrowed: We are using InterSystem’s Zen framework, using components they wrote for incorporation in web pages, for example. We will also be doing mashups. For any borrowing (taking code already written and incorporating it into our software system in some way), we will need to read the terms and conditions carefully. We will also be cautious in that any external dependencies can add to development and maintenance costs too. However, we will not take an NIH (not invented here) attitude and will be happy to borrow in a legal way when that is feasible.
Blue: Well, that was the plan, but I decided not to go the IBM U2 route, in spite of my prior loyalties, opting to use the new Cache’ MultiValue database software from InterSystems instead of UniData or UniVerse from IBM. So, where’s the blule if not with IBM? Well, um, there is a lot of blue in the styling of various Zen components as they come out of the box. Does that count?
I have purposely avoided giving any rationale for my choices. I have second-guessed myself several times since making such decisions. I keep an eye on Ruby on Rails (RoR) and PHP development, for example, along with Flex and everything from Adobe. However, I am still satisfied that we have an excellent strategy for developing a high performance, highly scalable, reliable, maintainable, and secure platform for the long haul. Some things will be easier for us than for the RoR and PHP crowds, while others will be harder.
In any case, after investing in this platform over the past year, we are pretty much married to it now.