Business Tech: 50 Shades of Interface

I'm working with a lot of — compared to me — young people lately. Several of them are in school for IT and related careers. Talking to them has helped me to see certain things with new eyes. Recently, I ended up in a conversation about APIs which quickly became a conversation about interfaces in general. This article is an expansion of that conversation.

In Yer Face?

The question sounds naive: "What's an interface?" Proposed definition: An interface is a method for allowing a person or process to interact with our processes and data .

That answer is really broad. It has to be. APIs, for example, are interfaces, That puts massive Java VM API — see the Oracle vs. Google lawsuit — in the same category as connect_db in PHP. APIs aren't the only interfaces. So are, for example, web pages which have a database behind them. It's not out-of-scope to call the Amazon.com website an interface to their order system. We can make the argument that a web browser's address bar is an interface to the entire internet.

Saying X is an interface is analogous to saying X is music. A toddler twanging a single string might make something we would have to admit is music. But the term is so broad as to also include a marching band, a symphony orchestra, and Ozzy Osbourne.

Notepad: Your New Database Solution

Instead of infinitely expanding the idea, it might be more productive to come at the answer sideways. How about a test case? Try this one: Can we call Notepad a complete database solution? Short answer: Yes. The long answer? Keep reading.

Can I create a new file using Notepad? Yes! Replace the entire file? Yes! Update it? Yes! Delete? Yes!

That's CRUD, the core functions of any database management system. What about query? Let's see: Open a file in Notepad and press Control-F. What about multi-table query? I can open several files at once and I can visually scan from one to another, so kinda/sorta . Reporting? Cut-and-paste. ETL? Cut-and-paste again.

So, yes, in the most literal sense, Notepad is a valid database interface. To understand why it isn't, we need one of two things: (A) an ounce of common sense, or (B) a better definition.

Amended definition: An interface is a method for controlling how a person or process interacts with our processes and data. There is a reasonable assumption that we don't want them to have unrestricted access.

The Stuff Lining the Walls of the LHC

Impenetrable is undesirable. The Notepad example reminds us that insubstantial is also undesirable. Interfaces, therefore, live in the vast middle ground between those two widely spaced polar opposites. We don't want them opaque and we don't want them transparent.

Here are some other words you may need to add to the definition:

Industry-Standard - Some businesses have traditions and long-standing rules for what an interface should allow or deny.

Legal - Banks, Women's Shelters, Police Departments… these are just a few examples of organizations who are under legal obligations to control the degree and kind of access permitted.

Audited - Wikipedia, for example, provides an editing interface. As a Wikipedia editor, I can change nearly anything. However, my actions are monitored. People review the changes, and who made them, for appropriateness.

Redacted - There are interfaces that have automated censors. You can get the documents you want, but only the version which has been scrubbed of identifying information.

Graduated - Different roles and security clearance levels are baked into the mechanisms. This is how you can write one interface while still giving Corporal Smith less information than Major Jones.

Time-Sensitive - The Freedom of Information Act is just one example of "secret today, public tomorrow."

Times Change

A million years ago, when I started working in computers, green screens roamed the Earth, and the screech of the three-hundred baud modem presaged dawn of the era of work-from-home. Back then, I could make a strong argument that a non-networked, non-graphic, user-unfriendly system was a complete database solution. So what if it stored passwords unencrypted? No way to reverse-lookup phone numbers? No worries. Sixty-megabyte disk drive limit… why would you need more? Things have certainly changed.

On a scale of Notepad to whizz-bang, where does your system sit? Can we trade data in multiple formats via a properly secured access? What about in-app, context-sensitive help? Are your transactions running within commit/rollback envelopes? And, can I see you dashboards?

TCL is an interface. That doesn't make it an enterprise-ready solution for delivering reporting capabilities. Assembler is a programming language but that doesn't make it as easy as mvBASIC or Python.

I used to chat with a fellow at ADDS named Jim Roberts. He told me that the first accounting software he created was written with a soldering iron. Times change. Are you changing with them?

Shiny

That doesn't mean that there is no place in the world for TCL, or Notepad, or soldering irons. It doesn't mean that your upteen-year-old app is automatically bad. And let me go on record as saying that a system with a million interfaces is not ideal. There is, one hopes, a balancing point between making tally marks in soft clay and rebuilding your infrastructure every six to eight months.

Also: MultiValue is not the opposite of shiny and new. Our database vendors are constantly innovating. There are people who go to work every day, building modern Multivalue software. There are new 4GLs, reporting tools, compliance software, ERP systems, and the list goes on and on.

So?

This started with a college kid asking me about tech. He'd like to know more about MultiValue. It isn't old to him; it's just another way to get things done. Why does he see it as viable? Because it works seamlessly with the automation tools he's using. Because data flows from it to big-screen TVs on the walls around him. Because the people who pay his salary run a business — a responsive, robust business — using it.

MultiValue is only old and dull if we work hard at making it appear that way. Nathan's series on building modern applications is an example of new ideas with a MultiValue core. Have a look at the Press Room in this issue, or any issue. Come to a Spectrum conference, or a Zumapalooza, or the next Rev conference, or maybe a MultiValue University. Look at the websites of the people who support our industry.

Take a little time one afternoon and download the last two years worth of this magazine and read . Then Google the authors of the articles. You may be surprised just how much time and effort is expended — by consultants and system houses — to find new ways to do… well… everything.

Some of us may be old but our software, and our way of thinking, don't have to be. If you need me, I'll be updating the new BeBackBy app, which has an OpenQM backend. Or maybe I'll be working on the MVON-powered Soundwave call-monitoring software. Wherever I am, whatever I'm doing, I'll be learning something new.

HDWP

Located in Yonkers NY.

View more articles

Featured:

Mar/Apr 2016

menu
menu