Helix database
Encyclopedia
Helix is a pioneering database management system
Database management system
A database management system is a software package with computer programs that control the creation, maintenance, and use of a database. It allows organizations to conveniently develop databases for various applications by database administrators and other specialists. A database is an integrated...

 for the Apple Macintosh platform, created in 1983. Helix uses a graphical "programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....

" to add logic to its applications, allowing non-programmers to construct sophisticated applications. While this sort of ease-of-use should have made Helix a killer app on the platform, the uniqueness of the programming language, limitations in the Mac OS it relied on for data I/O, the proprietary nature of the databases it created, and a variety of business problems relegated it to a niche product. As of 2005, Helix is twenty-one years old, but still has a dedicated, if small, following.

Despite being the first multiuser database on any PC platform, the first object-based, visual programming tool, and, perhaps, the first relational database
Relational database
A relational database is a database that conforms to relational model theory. The software used in a relational database is called a relational database management system . Colloquial use of the term "relational database" may refer to the RDBMS software, or the relational database itself...

 on a PC platform, Helix's marketing and ownership problems led it to a life as a niche product on an OS with a small market share.

History

Originally created by Odesta Corporation in 1983 on the original Macintosh, Helix received rave reviews when it was released the next year. At the time the Mac only supported 440kB floppy disk
Floppy disk
A floppy disk is a disk storage medium composed of a disk of thin and flexible magnetic storage medium, sealed in a rectangular plastic carrier lined with fabric that removes dust particles...

s as storage, shared with the operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

 and leaving little room for applications or data. It was assumed that users would add a second floppy for any sort of real-world use, with the OS and Helix on one floppy, and data on another. Leaving room for a maximum database size of under 500k, Helix's data management capabilities did not need to be all that strong. Nevertheless it was a full relational database
Relational database
A relational database is a database that conforms to relational model theory. The software used in a relational database is called a relational database management system . Colloquial use of the term "relational database" may refer to the RDBMS software, or the relational database itself...

.

In May 1986 Odesta released Double Helix for $495. The main new feature set allowed for the construction of custom menus and menu bars, resulting in "stand-alone" applications. In comparison, the original Helix produced applications that were clearly running within Helix, much as a Microsoft Word
Microsoft Word
Microsoft Word is a word processor designed by Microsoft. It was first released in 1983 under the name Multi-Tool Word for Xenix systems. Subsequent versions were later written for several other platforms including IBM PCs running DOS , the Apple Macintosh , the AT&T Unix PC , Atari ST , SCO UNIX,...

 document is clearly running "inside Word". Released as a part of a larger suite of software, the Helix suite also included a stand-alone runtime
Run-time system
A run-time system is a software component designed to support the execution of computer programs written in some computer language...

 version known as RunTime Helix which would allow users to run Double Helix applications without the full version installed, as well as MultiUser Helix which operated in a client–server fashion.

Upgrades to the Helix product line were continuous during the 1980s, but the company spent a tremendous amount of time and money working on a version known as Remote Helix which ran the basic Helix development system on top of VAX
VAX
VAX was an instruction set architecture developed by Digital Equipment Corporation in the mid-1970s. A 32-bit complex instruction set computer ISA, it was designed to extend or replace DEC's various Programmed Data Processor ISAs...

 based databases. The idea was to offer a Mac-like experience on "big iron
Big iron
Big iron, as the hacker's dictionary the Jargon File defines it, "refers to large, expensive, ultra-fast computers. It is used generally for number crunching supercomputers such as Crays, but can include more conventional big commercial IBM mainframes"....

" systems, a common theme in the early 1990s. The company also released a number of related tools, GeoQuery and Data Desk, for analyzing databases. However it wasn't long before the average Mac could outperform a minicomputer
Minicomputer
A minicomputer is a class of multi-user computers that lies in the middle range of the computing spectrum, in between the largest multi-user systems and the smallest single-user systems...

, the popularity of the VAX faded, and the product was never a major success.

In 1992 Odesta split up, with the original Helix applications being spun off. Double Helix re-emerged as Helix Express at Helix Technologies, marketed as a performance leader as opposed to "easy to use". Unfortunately, the parent company became entangled in an unrelated but costly legal battle, and Helix languished. In 1998, Helix Technologies was purchased by The Chip Merchant, a San Diego based memory vendor, who released a major upgrade in 2000, adding TCP/IP capabilities to Helix Client/Server and improving the performance of the entire product line significantly. However, falling memory prices and a slumping economy combined to drive The Chip Merchant into bankruptcy in 2002, sending Helix into legal limbo. It was purchased in 2004 by two of the people who were running its day-to-day operations, Gil Numeroff and Matt Strange, with financial backing from a unnamed businessman and long-time Helix user, forming a new company: QSA ToolWorks.

QSA brought Helix co-creator Larry Atkin back into the Helix fold and later brought back Steve Keyser, the original architect of MultiUser Helix. Dubbed the Helix Recovery Team, this new management and programming team began the task of rewriting the Classic Helix products to run natively under Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

. The OS X Helix Server, along with three native diagnostic and maintenance tools, shipped in December 2005.

One month later, Apple announced the first products based on their switch from PowerPC
PowerPC
PowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM...

 to Intel processors, causing QSA to "switch gears" and begin the process of converting their code to Universal Binary
Universal binary
A universal binary is, in Apple parlance, an executable file or application bundle that runs natively on either PowerPC or Intel-manufactured IA-32 or Intel 64-based Macintosh computers; it is an implementation of the concept more generally known as a fat binary.With the release of Mac OS X Snow...

 format. This forced a conversion from the CodeWarrior
CodeWarrior
CodeWarrior is an integrated development environment for the creation of software that runs on a number of embedded systems. Prior to the acquisition of the product by Freescale Semiconductor, versions existed for Macintosh, Microsoft Windows, Linux, Solaris, PlayStation 2, Nintendo GameCube,...

 IDE
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...

 to Xcode
Xcode
Xcode is a suite of tools, developed by Apple, for developing software for Mac OS X and iOS. Xcode 4.2, the latest major version, is available on the Mac App Store for free for Mac OS X 10.7 , and on the Apple Developer Connection website for free to registered developers Xcode is a suite of tools,...

, after which they produced Intel-native releases of their three "end user" products. Early versions (known as "Preview Releases") were feature incomplete and unstable, but frequent updates (five in 2008 alone) addressed these issues. Nine more updates in 2009 and 2010 focused on completing the feature set, eradicating remaining bugs and improving performance.

As of this writing (March 2011) QSA is focused on bringing the Helix IDE (known as "Helix RADE") to OS X. QSA has announced that complete AppleScript
AppleScript
AppleScript is a scripting language created by Apple Inc. and built into Macintosh operating systems since System 7. The term "AppleScript" may refer to the scripting system itself, or to particular scripts that are written in the AppleScript language....

 support will be part of Helix for the first time, addressing one of the primary complaints professional developers have had about Helix.

Description

A Helix project is known as a Collection, a "document" created by Helix RADE (which stands for "Rapid Application Development Environment"). It is represented in the system by a sort of "pseudo-desktop" similar to the Macintosh Finder. A collection may contain thousands of individual databases (also known as relations or tables). Helix applications only open one Collection at a time. However, licenses can be purchased to allow access to numerous collections simultaneously, limited primarily by available memory.

Opening a collection results in a project window with two main parts driven entirely by a unique set of GUI
Gui
Gui or guee is a generic term to refer to grilled dishes in Korean cuisine. These most commonly have meat or fish as their primary ingredient, but may in some cases also comprise grilled vegetables or other vegetarian ingredients. The term derives from the verb, "gupda" in Korean, which literally...

 objects. On the left are a number of icon wells, representing new objects that could be created, and a scrollable window on the right (known as the Collection Window) displays the objects that the user has created. Icons are dragged from the wells on the left into the window to create new objects in the collection. These objects include relations (tables) to hold data, sequences (macros) to automate tasks, and users to create custom menus for the end-user. This is one of Helix's most unusual and powerful features.

In the Relation, database tables (groups of related data) are created. Relations contain fields to define datatypes, an abacus to define the relationships among data and create information the fields alone cannot present, indexes to organize data and improve performance, queries to find data, "templates" to structure information visually and for entering, modifying, deleting and printing from "Views" that combine templates, queries and indexes to give the user access to and control over information.

The abacus uses a completely graphical system for creating calculations. You describe the desired calculation by dragging icons representing operations and fields into the abacus' editor window, and then arrange them in a dataflow diagram. For example, to say "first name followed by space followed by last name", you drag in a "followed by" icon, then drag the "first name" field into its first part and set a space character as its second part; then you drag in a second "followed by" icon, feed the output arrow from the first one into the second's first part, and drag the "last name" field into its second part.

Helix RADE runs in two modes, Design mode and User mode. In User Mode the Helix collection opens in one of the defined user menu bars, allowing the user to use the database as they would any other application. Design mode allows the developer (or advanced user) to alter the design of the database, adding fields, creating new reports, etc.

Although intended to simplify programming, iconic programming languages often "miss the point": programming is difficult not because you have to type, but because the complexity very quickly reaches a level where the project can no longer be understood. In theory a graphical language can help reduce this complexity considerably (see intentional programming
Intentional Programming
In computer programming, intentional programming is a collection of concepts which enable software source code to reflect the precise information, called intention, which programmers had in mind when conceiving their work...

 for examples). In some cases, they do, but in many cases they make the problem worse. Helix is a very forgiving tool, allowing numerous routes to the same result. In the hands of an unskilled user, as with any tool, complex calculations can quickly become unwieldy, requiring that the programmer have a large monitor (or two) to work efficiently. However, skillful users find its visual approach both timesaving and liberating with few serious limitations.

Although quite adept at handling small to mid-size databases, a common problem for Helix is that for much of its lifetime, it has run only in the co-operative multitasking environment of the Classic Mac OS, making it rather unstable for large databases. For many products this is not a serious problem, but for a database this is a true kiss of Death. Although the programming language itself has the scalability
Scalability
In electronics scalability is the ability of a system, network, or process, to handle growing amount of work in a graceful manner or its ability to be enlarged to accommodate that growth...

 required to create complex databases, the inability to run reliably in a 24/7
24/7
24/7 is an abbreviation which stands for "24 hours a day, 7 days a week", usually referring to a business or service available at all times without interruption...

environment relegates Helix to workgroups of 100 users or less. However, these limitations are rapidly becoming history. QSA released an OS X version of its Helix Server in December 2005 and is rolling out the rest of its product line in OS X versions in 2006 and 2007.

For someone familiar with Helix, the savings in development time can be significant. One expert who is also a leading Microsoft Access trainer/developer estimates that depending upon the size of the project, a Helix project can be finished in 30-70% of the time as the same Access project. The savings come particularly from the absence of a programming "language," thus the elimination of all syntax errors. Since Helix, itself, prevents a developer from making syntactical or programming errors, the remaining sources of problems come from errors in business logic. All languages face this problem, but Helix once again softens the difficulty in tracking down the problems due to its object-based and graphical nature. Because all of the objects are linked (through icons, not through coding), the system "knows" what objects are used by other objects and in what way and simplifies tracking down business logic errors and also provides a simple method of determining everything that is about to be affected by a proposed change to any object.

Helix was the first object-based, visual-programming development environment (preceding VB by many years), so programmers did not seem ready for the idea of a language-less development tool (just as, in those days, they preferred and argued in favor of a character-based OS over a GUI-based OS). But Helix found a strongly loyal following among professionals and small business owners who were able to create complex applications to run their businesses the way they want them to be run (instead of having to fit into a packaged product or hire a programmer to develop a custom application).

Limitations of Helix Visual Programming

One should note that Visual Basic follows a mixed approach to software development. The "Visual" aspect refers to the way a user interface is built, by dragging and dropping user-interface widgets such as labels, text boxes, buttons etc. on to a canvas (the form). However, double-clicking on particular widgets (or on the form) will bring up a code editor where one writes traditional code using a language that supports all aspects of structured programming (if..then..else, fixed-iteration and indefinite-iteration loops, switch statements, subroutines etc.). VB also has a "compilation" model, so that errors such as undeclared variables (which are often due to typing errors), or data-type errors, are caught before the code is run.

By contrast, in Helix, one must compose all code graphically - thus, an if..then..else construct is built using flowchart-type widgets such as decision diamonds, and loops are implemented using connectors.

While Helix's visual programming is possibly easier for novices to learn (because it uses a flowcharting paradigm that is intuitively understood by non-technical individuals), it becomes tedious when the amount of code to be written becomes significant,especially for an individual who can write code much more easily and conveniently than if forced to drag icons from a palette. Helix has consequently suffered from the lack of developer support and third-party applications. It is worth noting that originally, the 4th Dimension database software on the Macintosh also supported visual programming, but that as its programming language acquired more features, the visual programming capability was eventually dropped.

In 2010 the company turned resumed work on the final product, Helix RADE, promising an OS X native release before the year is over. Check out their latest word at http://www.qsatoolworks.com/tlw

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK