The gcc compiler we all rely on when developing programs for
Linux is a standard recognized throughout the entire UNIX world.
It's fast, it's straightforward, and it compiles standard C (or C++
for the g++ compiler). But anyone who has written a large makefile
knows it isn't a complete development environment by itself. With
the advent of some serious tools like Code Fusion and Source
Navigator from Cygnus, developing large projects with multiple
programmers is getting easier all the time.

Rather than use these tools, however, many professional
software developers rely on Rapid Application Development (RAD)
products to design, prototype and code applications. Many of these
applications revolve around database access; many are created by an
organization for internal use or by consultants for vertical
markets. These might be billing or database access systems,
customer support systems, or pieces that integrate existing web
services so all employees can access data using a browser. The
issues facing these internal developers are different from those
that face someone creating a “boxed product” or a standard
open-source project for eventual public consumption. Three examples
of these issues include very tight deadlines, a need to integrate
with existing IT infrastructure, and a need to run on multiple
platforms running in an organization.

The process for completing an internal project might look
something like this:

Java is the proposed solution to many of these internal
development projects. It's a cross-platform language, it works with
the Web, and everyone seems to accept it as a good idea. But Java
is not always the answer, as developers on many abandoned projects
can attest. Microsoft Visual Basic is also widely used for these
internal projects.

The problem with so many of these internal projects is that
after a lot of work has been put into the planning step, the
prototype and development take so long and cost so much that the
whole project may become unworkable (or at a minimum, go way over
budget). Part of the problem lies in converting a plan into a
prototype, or a prototype into a working program. Other problems
often revolve around a lack of appropriate tools or talent, or the
need to create the program so that it runs on multiple platforms
(or the Web—which brings a separate set of challenges). RAD tools
are the solution many developers look to. These developer tools
combine a graphical interface, database access and additional tools
to help code, debug and deploy an end-user-oriented
application.

Omnis Studio

While a few high-end tools have been available on Linux for a
while—some for $10,000 or more per developer—those needing RAD
tools normally didn't consider Linux. (One promising tool,
Borland's Kylix, is still in beta testing.)

A recent entrant in the field of Linux software development
is Omnis Studio from Omnis Software
(http://www.omnis-software.com/).
Though this company and product have been around for over twenty
years, they began shipping a Linux product just last year.
Fortunately, the maturity of their products and the depth of the
feature set have carried over very well to the Linux port. Omnis
Studio takes a Java-like approach to software development that
creates a single cross-platform program in a very powerful
graphical development environment.

Omnis uses a run-time engine to both develop and execute
programs. If “editing” is enabled in your license, you can create
new programs; otherwise, you can run only existing programs.
Amazingly, this engine (without the libraries your program may
require) is only about 1MB. Both the small size and the execution
speed of Omnis Studio applications are surprisingly good, given
that this is an interpreted environment. Engines that let you
create and execute Omnis Studio programs are available on Linux,
Windows and Macintosh. To show the flexibility of the technology
behind this product, consider that you can develop a program on
Linux, make changes to the same program file on a Windows system
(running a developer license of Studio), then run the newly altered
program on a Macintosh. You can think of the “program” as a
script that can be run or edited on any of the platforms. Figure 1
shows the architecture of the product.

Figure 1. Architecture of Omnis Studio

Longtime users of both Omnis and other tools (Java or Visual
Basic) have told me that Studio requires about 20% of the
development time of Visual Basic because of the automation Studio
includes. Some of these automation features are things like
auto-typed variables which are tokenized throughout the project,
and single-file projects that collect all relevant information in
one place.

Trending Topics

Upcoming Webinar

Getting Started with DevOps - Including New Data on IT Performance from Puppet Labs 2015 State of DevOps Report

August 27, 2015
12:00 PM CDT

DevOps represents a profound change from the way most IT departments have traditionally worked: from siloed teams and high-anxiety releases to everyone collaborating on uneventful and more frequent releases of higher-quality code. It doesn't matter how large or small an organization is, or even whether it's historically slow moving or risk averse — there are ways to adopt DevOps sanely, and get measurable results in just weeks.