Showing posts with label Fundamentals. Show all posts
Showing posts with label Fundamentals. Show all posts

Friday, April 18, 2014

Additional Complexity, Enemy of Basic Purpose

Religion rarely intersects with technology. But many years ago, TheHackerCIO was struck by a parable from some religious presentation. It captures a problem and capsulizes an issue in such a striking way, that I mention it today. The author is, apparently, anonymous, so Google for a source:

The Parable of the Lighthouse

The two men stood on the high cliffs, "What do you think John?" The other man listened to the night and answered, "It looks like we might have another one." The first man nodded his head, "Aye. And it's the third shipwreck this month. I'd best get the crew."
He ran down the beach to a small lighthouse and pounded on the door. "Time to be moving boys; there's a wreck up near the north cliffs." The life-saving crew tumbled out of the lighthouse, and plunged their little boat into the waves with amazing skill.
Such tragedies often struck that lonely coastline; a sudden shift in the winds, or a thick fog rolling across the water and an unlucky ship would slam into the reefs, its hull slashed by the rocks.
The cry would go out, "Abandon ship!", but no sooner had these words left the captain's lips than the lantern of a life-saving boat would appear in the darkness, leading the wrecked seamen to safety.
The little lighthouse soon grew famous. Each day, it seemed, there came a new knock on the door: "I've come to help! You saved my son's life and I want to be part of your crew!" or "Please take this small sum as a sign of my gratitude."
The lighthouse was a crude little life-saving station. The building was just a hut, and there was only one boat. But the few devoted members kept a constant watch over the sea, and with no thought for themselves they went out day and night, tirelessly searching for the lost.
Many lives were saved by this wonderful little station. Some of those saved, and various others in the surrounding area, wanted to become associated with the station and gave of their time, money, and effort for the support of its work. New boats were bought and new crews were trained. The little life-saving station grew.
Some of the new members of the life-saving station were unhappy that the building was so crude and so poorly equipped. They felt that a more comfortable place should be provided as the first refuge of those saved from the sea.
So they replaced the emergency cots with beds, and put better furniture in an enlarged building. Now the life-saving station became a popular gathering place for its members, and they re-decorated it beautifully and furnished it as a sort of club. And so the Lighthouse Society was formed.
Less of the members were now interested in going to sea on life-saving missions, so they hired life boat crews to do this work. The mission of life-saving was still paid lip-service, but most were too busy or lacked the necessary commitment to personally take part in the life-saving activities.
The years passed, then one rainy night the Society was holding its annual formal dinner. The guests were dining by candlelight and dancing to a string quartet when suddenly, "Look, a red flare over the sea!"
The hired crews brought in boat loads of cold, wet, and half-drowned people. They were dirty and sick, and some of them had black skin, and others spoke a strange language. The beautiful new club was considerably messed up, so the property committee had a shower house built outside the club where victims of a shipwreck could be cleaned up before coming inside.
At the next meeting, there was a split in the club membership. Most of the members wanted to stop the club's life-saving activities as being unpleasant, and a hindrance to the normal life pattern of the club.
But some members insisted that life-saving was their primary purpose and pointed out that they were still called a “life-saving” station. They were finally voted down and told that if they wanted to save the life of all the various kinds of people who were shipwrecked in those waters, they could begin their own life-saving station further down the coast. So they did.
As the years went by, the new station experienced the same changes that had occurred in the old. They evolved into a club, and yet another life-saving station was founded.
If you visit the seacoast today you will find a number of exclusive clubs along that shore. Shipwrecks are still frequent in those waters, only now most of the people drown.

I particularly love the happy ending!

This is, of course, what has been happening over the last two decades of java's development. We've seen the hyper complexity of the EJB 2.0 grow, then fall by the wayside as POJO simplified things a bit. But we've also seen the hideous addition of Generics with full backward compatibility to nonsense, and with v. 6 we got the fragmentation of annotations alongside of xml.

I hate xml, so I'm not unhappy to see annotations as a replacement. But when everything gets larded in as an option, the complexity just gets harder and harder to track. Used to be, you had a lone web.xml file to grasp, to figure out your deployment descriptor. Now you have to check each web-fragment.xml, together with their "orderings," as well as the web.xml, and it's "absolute orderings," not to mention all of these, in turn can use annotations and the Java configuration API.

Did we really need all those options, just to deploy a Web Application? Or is it just what I call the Creeping Monster of Unnecessary Complexity?

I Remain, Going Back to Basics, as ...