Over the last few years, I've drunk quite a bit of wine and written quite a bit of J2EE code for enterprise applications. At one point over this time period, I was engaging in each of these activities frequently enough that the thought occurred to me that there is no natural separation dictated by sense and science that they should remian divided so.
The idea began simply enough, but The Question soon arose. There are many aspects to wine, so much so that pairing a wine with the proper food is a subject unto itself. J2EE programming is no less complex. The Question: how does one properly pair wine with J2EE such that the experience, as in wine with food, will be tolerable, much less a divine engagement of the senses and faculties?
Anyone who understands the Herculean nature of this epicurean undertaking will forgive the roughness and incompleteness of the sketch that follows.
- Design. Dry, grassy, mild, and delicate Sauvignon Blanc, or Brut blanc de blanc sparkling wine. Like design, these are very finicky wines that demand a high degree of compatibility with the Design. The Design must not be heavy-handed and overshadow the nuance of the wine, yet it must provide the structure to carry the harmonic flavor notes supplied by the wine.
- JSP/Servlet.. Reisling, fruity Merlot, pleasantly spicy Gewurtztramer, flinty Vouvray, or off-dry sparkling wine is best with JSP/Servlet. Just as any good UI, this wine must be approachable and friendly even to the uninitiated palate. Enjoyment of such a wine should almost direct itself, requiring little knowledge or experience from the user. Of course, this is not the time to bring out flabby wines just because they are uncomplicated--the appropriate wine for this pairing must carry off easy appreciation while maintaining good structure and balance that is both visually and sensually pleasing.
- EJB/JMS/JCA/JDBC. Only a full-bodied red can stand up to the rich, meaty qualities of EJB/JMS/JCA/JDBC. Up to this point, the pairings are meant to titillate and invite the user to continue to the next course. This pairing is meant to sate the user's hunger. Whites and light-bodied reds need not apply. This is where all of the "real work" happens on the palate and in the application, so only a zesty Zinfandel, intense Cabernet Sauvignon, or inky Syrah will do. Many are at first taken by surprise that EJB/JMS/JCA/JDBC pairs well with so many different varietals...usually choices are restricted to Cabernet and Cabernet alone. To these folks I would ask them to consider the JDBC element of EJB/JMS/JCA/JDBC with a bit more weight. The JDBC aspect allows a certain degree of varietal-independence along with the vendor-independence for which it is better known.
- Database design/Legacy programming. Only an Old World wine will do here, such as Chateau Neuf-du-Pape, a Chateau Margeaux, or an aged Petrus or Mouton-Rothschild. Sure, such wines are pricey to own, much like Database design/Legacy programming itself; a wine that pairs in this category will shun the newer, more radical approaches to winemaking and stick with the tried, tested, and true standby methods of a long-forgotten past, when the ritual of the winemaking process was as respected as the product itself. The less senior who partake of this pairing would scoff that the experience is "outmoded" or "arcane", the true aficionado of Database design/Legacy programming can appreciate the layers of complexity upon layers of complexity present within both elements of the pairing. While many are put off even by the sight of such wines, tinged with brown and perhaps looking well beyond their years, a notable few know how to fully appreciate the terroir that is the product of such old vines.
- Testing. The attitude of those who are likely to partake in Testing in the first place can be summed up as follows: they care little for nuance and delicacy, and instead prefer to simply get the job done; testing is a necessary evil, and the matching wine is viewed more as sustenance than a beverage to be enjoyed and pontificated upon. As such, the proper wine that pairs with testing could be any box wine, cooking wine, or bottled wine such as Two Buck Chuck. Those that frequently partake of Testing engage the task with the singular focus of finishing, and have little regard for structure and balance. Any wine offering primary notes of sugar, high fructose corn syrup, or saccharine will do nicely here--rough secondary flavors need not be considered, for the wine will be quaffed along with the Testing before they have a chance to even develop on the palate.