Design Decisions in the Translator

Why minimalism is important

When people ask why Iguana is lacking “feature XYZ” I direct them to the page on the minimalist design.

This link gives a screen snap of the “From File” component in Iguana 5.

Actually that’s a lie, please let me correct that.

The screen is so large it needs two screen shots to show all the options.

This is the organic result of listening faithfully to customer requirements and implementing each valid feature request one after another. Every option. Every flag. Every field was driven in response to meeting a customer need.

The problem is that the end result is overwhelming. Although every option is valuable to someone for the majority of people all they see is a mass of incomprehensible choices.

Do you know what is worse?

There are still an awful lot of problems with integration that cover files that are not solvable using this component and it’s companion, the To File component. We could go on forever and add even more options and still not solve all the problems that customers have with files in integration.

Let’s look at the impacts this complexity has:

  • It makes life more complicated for users. There is a lot to understand in order to solve each specific problem. This results in more support calls.
  • It bloats out our documentation. Our old version 4 online manual is huge. It has over 2000 pages of material. Too much documentation becomes as bad as no documentation. It becomes hard to find what you need. That’s why this wiki has become the new official source of documentation for Iguana 5.
  • It makes maintenance difficult. Working on the file components is hard. The component has so many features that if someone adds functionality the likelihood of breaking something is high.
  • It’s expensive and time consuming to train our own staff. To learn every nook and cranny of the options can take months.

Think of what it takes to QA such a component.

Let’s do some rough math and calculate the number of approximate code paths we have here.

2 x 3 x 2 x 4 x 2 x 3 x 3 x 2 x 3 x 2 x 2 x 3 x 2 x 2 = 248,832 different paths!

Although I employ some real genius talent in my dev team, they are people, not minor deities. The chances that every single one of these combinations works perfectly is slim.

With the Translator we have:

  • The elegant built in Lua IO library which handles files.
  • The Lua string library.
  • Some interfaces to the curl library

These simple APIs together into the environment of the Translator and gives simple tools to solve any integration file problem. Iguana 5 really has no need for the To/From File components. They are only needed for backwards compatibility. See the file operations and ftp interfaces with the Translator.

At some point it would make sense to make a new version of Iguana that could shed the skin of complex past and rise like phoenix, a beautiful simple solution.

Next: From File Component

Leave A Comment?