Spotlight: 4GL

I can manage your company's books if I have enough chalk and sidewalk space. Just because I can, doesn't make it a good idea. Likewise, I can write and manage complex software with just the things I can write myself. When you get tired of creating your own tools for everything — all the time, every time — you might want to step up to a Fourth Generation Language (4GL).

When we write code a line at a time, we are using a Third Generation Language (3GL). Examples include: mvBASIC, everything in the C-family, Python, and PHP. The natural step-up from a 3GL is a framework. jQuery for JavaScript and and JSTL for Java are examples of frameworks. MultiValue environments are, arguably, also frameworks because they supply built-in tools for interacting with your data. While adding a framework is a powerful approach to accelerating programming speed and expanding your toolkit, you may want to go even further and advance to a 4GL.

Unlike a framework, a 4GL usually includes a combination of code and an Integrated Design Environment (IDE). That means that while a framework connects your code to existing code, the 4GL also helps you write code.

Stick Language

I used to work with an amazing developer named Roy Gordon. Back in the '80s, he developed a programming language called Stick Language which compiled into mvBASIC. To write a program in Stick Language required mastery of fifteen hundred parameters. Obviously, nobody — other than me and Roy — was going to do that. The rest of the team used a 4GL, also developed by Roy, which allowed you to drag-and-drop fields, and fill in a few details, to generate the code without writing any.

Stick Language worked, in part, because we were only trying to build one type of software. Developing a more generalized 4GL usually involves providing hooks for 3GL code in specific place. As we roll through the various software offerings in this series, you'll get some clear examples of how 3GL and 4GL intertwine.

IDE, Do You DE?

To understand what an IDE is, I'll give you an example of a fairly robust — but still entry-level — IDE: Notepad++. If you've ever used it, you'll be aware that it has language-specific templates which provide color-coding, indentation guides, and code-completion. While it does not come with an mvBASIC option, there are a good ones available, including two here: http://www.pickwiki.com/index.php/NotepadPlusPlus.

If you've used Eclipse, you might want to check this out: http://www.u2logic.com/tools.html . And there's also a stand-alone IDE here: http://www.mvdeveloper.com/pages/mvdeveloper.htm .

Notepad++ does fail the test of a truly robust IDE in one important way. A full IDE would also include an easy method for parametric entry.

I Strongly Object

4GLs don't have to be object-oriented, but that's the way to bet. Just as the 4GL is a natural evolution of a framework, sets of objects are the natural evolution of libraries. Where a library is a collection of routines, an object is a collection of routines plus a context.

For example, in a language like Delphi or C# you might find an object which encapsulates all the routines and graphical aspects of a button, combining the code which manage the state of the object, the events it triggers, its graphical appearance, and the graphical changes it can have.

Parts > Whole

A modern 4GL is going to provide some level of all of these things: libraries, sets of objects, a method for describing a program without resorting to hand coding, surgically-placed areas where hand-code can be added, and an IDE to guide you through.

The rest of the articles in this series will introduce you to how all of those things are presented, and balanced, in software like OpenInsight, Evoke, Nucleus, and others. As they say in Australia: Horses for courses. Different horses run better and worse on different tracks. Different design paradigms work better and worse for different projects. This isn't about picking the best one ; it's about picking the best one for your particular needs .

CHARLES BAROUCH

Charles Barouch is the CTO of HDWP, Inc. He is also a regular contributor to International Spectrum Magazine, a former Associate Editor for both Database Trends and for Gateways Magazine, a former distance learning Instructor for CALC. He is presently the Past President of the U2UG. Mr. Barouch has presented technology and business topics in front of hundreds of companies, in a wide range of product and service categories. He is available for on-site speaking and consulting engagements in and out of the United States.

View more articles

Featured:

Jan/Feb 2018

menu
menu