Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Channels ▼

Jack Woehr

Dr. Dobb's Bloggers

Easy Does It - Tales of Open Source Coding

September 18, 2008

After six weeks of the most intense coding I've done in seven years (!!) the basic functionality of my PigIron open source Java class library for IBM VSMAPI is complete.


It's been quite an experience. Seven years ago I became deeply professionally involved in architecture, team mentoring and project management. Through that era I always made sure to do at least some coding to keep my mojo workin'. But it was not a period marked by intense coding creativity.

Embarking on PigIron, I decided I was going to code as easy and economically as I could while still fulfilling the needs of PigIron's niche target audience in the mainframe world. I was determined to go easy on myself and my users and not sacrifice time and sanity on the pursuit of an illusory perfection, such as chasing nascent standards or popular programming metaphors for their own sake.

The experience has reaffirmed a lot you may have heard about simplicity.

First of all, if you're supporting a communication protocol with lots of similar but maddeningly diverse structures, it's easier to metacode than to code. I used m4 to generate the Java code itself for the 100 function calls and associated parameter types of VSMAPI 5.3.

What the PigIron audience is really looking for is open source browser-based provisioning of z/VM installations. That means a web application. PigIron layers that by providing (soon) a Servlet. It's partitioned that way so that I can author a simple Manager web app hopefully to be superseded by a better web app by someone who does that better. I just have to get as far as a Servlet.

The PigLet Servlet will respond to object streams over HTTP. "Use XStream !" my web-app coding buddy opined. But XStream is a complex, fully mature open source API built on about ten other open source projects. I wasn't ready to shift from coding a small, monolithic NetBeans+Ant project to using the phenomenally bloated Maven to build PigIron.

Instead there the classic reference implementation of JSON that's BSD-style licensed and now checked into the PigIron tree, which incidentally does XML as well. What a relief to find a simple, well-targeted, properly licensed piece of code just to drop in!

"Use Restlet for your servlet architecture!" another friend advised. But Restlet is still overkill for what PigIron does, which is essentially just bridging protocols with some parameter checking thrown in for good luck. Tomcat and a tiny body of hand code in Java appear sufficient, easily debuggable, and allow PigIron to keep most of the core functionality in PigIron itself, keeping minimal the code body residing in the external architecture of Servlets.

I had a minimal PigLet Servlet up and running within three hours of of downloading Tomact.

Open Source seems in danger of losing the K.I.S.S. concept of simplicity as a virtue. PigIron is paddling frantically in the opposite direction.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.