# DataFlex

DataFlex is an object-oriented high-level programming language and a fourth generation visual tool for developing Windows, web and mobile software applications on one framework-based platform. It was introduced and developed by Data Access Corporation beginning in 1982.

## History and overview

DataFlex can be traced back to 1982 when the company called Data Access Corporation (founded in 1976) created and developed a language allowing application code to run on almost any system architecture, regardless of hardware. It started as a relatively early example of a fully fledged and commercially used fourth-generation programming language (4GL). In its early forms, DataFlex was available for CP/M, MS-DOS, TurboDOS, Novell NetWare, OS/2, Unix, VMS and IBM AIX operating systems. By 1985, DataFlex was applied in a variety of high-tech industries including automated inventory control systems and insurance fraud detection systems.
DataFlex has lasted many years as a niche application development environment. The DataFlex product supports many relational database environments: Oracle database, Microsoft SQL Server, IBM Db2, MySQL, PostgreSQL and any ODBC database. DataFlex applications are used by around 3 million users. In 1991, the 3.0 version with a modernized interface was released. In 2014, Data Access released 2014/18.0 version. The release of DataFlex 2023/23.0 introduced FlexTron technology that allows the usage of web controls within Windows desktop applications.
DataFlex is developed and provided by Data Access Worldwide, a software company with main offices in Miami, Florida, Hengelo, Netherlands, and São Paulo, Brazil.

## Features

The DataFlex language supports:
* Supports many database environments: Oracle database, Microsoft SQL Server, IBM Db2, MySQL, PostgreSQL as well as any ODBC database.
* Easily switch between database backends, no code change needed.
* Variables are loosely typed. The virtual machine takes care of conversions.
* Flexibility; the language is object oriented, so developers can create subclasses and libraries.
* Code compiles to an intermediate byte-code which makes the programs easily portable between operating systems.
* No threads or multitasking
* Methods can - for ease of coding - be defined or redefined inside the object definition. Technically the compiler simply sub-classes the superclass and adds the methods to the class.
* Automatic delegation of messages in the object-oriented programming environment
* Embedded Database access is ISAM-based. It can be used royalty-free.

## Language Extension

* Functions defined in Dynamic Link Libraries can be used.
* Classes, methods and properties defined in a COM module can be used. COM automation, controls and embedding is supported.

## Development environments

The DataFlex programming language is used in the following development environments:

### DataFlex Studio

    This is the flagship visual development environment from Data Access Worldwide. DataFlex is available for Microsoft Windows only. DataFlex is a GUI development language in a style comparable with Visual Basic, Delphi and C++. From version 4 (1996) up until version 17.1 (2015), the product was labeled Visual DataFlex.

### DataFlex WebApp Server

    Available for Microsoft IIS only, the DataFlex WebApp Server can be used to develop thin client applications such as browser-based applications (both full class browsers such as Google Chrome, Internet Explorer, Mozilla Firefox and Opera, as well as WAP browsers). Developers can also create Web Service client and server applications. The server has built-in load balancing capabilities which also assist with High Availability, this does, however, require an SPLF license.

### Web Framework

    DataFlex includes a web framework for writing web and mobile applications.

### Character mode DataFlex

    The latest iteration of the original character mode application (3.2) is available as a Console Mode application for MS-DOS, Microsoft Windows and Unix variants (notably Linux).