4th Dimension (Software)
   HOME

TheInfoList



OR:

4D (4th Dimension, or Silver Surfer, as it was known during early development) is a
relational database management system A relational database is a (most commonly digital) database based on the relational model of data, as proposed by E. F. Codd in 1970. A system used to maintain relational databases is a relational database management system (RDBMS). Many relati ...
and IDE developed by
Laurent Ribardière Laurent Ribardière founded the French company 4D SAS and its US Subsidiary 4D Inc in 1984, when he began development of 4th Dimension (or 4D) which was code-named Silver Surfer at the time. 4D had its initial product release in 1987 with its ...
. 4D was created in 1984 and had a slightly delayed public release for Macintosh in 1987 with its own
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
. The 4D product line has since expanded to an SQL back-end, integrated
compiler In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs tha ...
, integration of PHP, and several productivity plug-ins and interfaces. Some of the plug-ins created by 4D include 4D Write (a word processor), 4D View (somewhat like a spreadsheet, but with extra functionality) and 4D Internet Commands (which allowed for the addition of Internet-related functionality to a database). There are also over 100 third-party plugins, free and commercial. 4D can also be used as a
web server A web server is computer software and underlying hardware that accepts requests via HTTP (the network protocol created to distribute web content) or its secure variant HTTPS. A user agent, commonly a web browser or web crawler, initia ...
, to run compiled database applications. Today, 4D is published by the
French French (french: français(e), link=no) may refer to: * Something of, from, or related to France ** French language, which originated in France, and its various dialects and accents ** French people, a nation and ethnic group identified with Franc ...
company 4D SAS and has a sales, distribution and support presence in most major markets, with the United States, the United Kingdom, and France being the primary markets. The product is localized in more than a dozen languages.


History

Silver Surfer, as it was known during early development, was developed by
Laurent Ribardière Laurent Ribardière founded the French company 4D SAS and its US Subsidiary 4D Inc in 1984, when he began development of 4th Dimension (or 4D) which was code-named Silver Surfer at the time. 4D had its initial product release in 1987 with its ...
in 1984. Following negotiations with Ribardiere it was planned that Apple Inc. (formerly Apple Computer Inc) would publish the software but Apple canceled the plan, reportedly due to pressure from other potential database publishers who claimed that if Apple had their own "brand" database, third party products would be disadvantaged in the marketplace. Apple tried at the time to ensure well-known software publishers supported the Macintosh platform, and as a result the project reverted to
Laurent Ribardière Laurent Ribardière founded the French company 4D SAS and its US Subsidiary 4D Inc in 1984, when he began development of 4th Dimension (or 4D) which was code-named Silver Surfer at the time. 4D had its initial product release in 1987 with its ...
, who with the French businesswoman Marylene Delbourg-Delphis published 4th Dimension. Although independently published, Apple supported the new venture and used 4D extensively throughout the organization for projects including fitness center management and CIM (Computer Integrated Manufacturing). A number of Apple personnel became 4D experts, including Lance McAndrew in Apple's
Cupertino Cupertino ( ) is a city in Santa Clara County, California, United States, directly west of San Jose on the western edge of the Santa Clara Valley with portions extending into the foothills of the Santa Cruz Mountains. The population was 57,82 ...
headquarters and Andrew O'Donoghue in Apple's
Ireland Ireland ( ; ga, Éire ; Ulster-Scots: ) is an island in the North Atlantic Ocean, in north-western Europe. It is separated from Great Britain to its east by the North Channel, the Irish Sea, and St George's Channel. Ireland is the s ...
-based European manufacturing headquarters, where a 4th Dimension application managed the European Service Center administration. Over the next few years 4th Dimension's installed base grew, and the publisher ACI established a US-based subsidiary called ACIUS, initially led by
Guy Kawasaki Guy Kawasaki (born August 30, 1954) is an American marketing specialist, author, and Silicon Valley venture capitalist. He was one of the Apple employees originally responsible for marketing their Macintosh computer line in 1984. He populariz ...
. After 16 years of operating as ACIUS up to 2000, the name was officially changed to
4D Inc 4D Inc is a US-based subsidiary of 4D SAS and publisher of 4D. It was established in 1984 and initially led by Guy Kawasaki. 4D is the developer and publisher of 4D (or 4th Dimension). 4D was founded in 1984 when development began for Silver S ...
. In 1993, 4D Server v1.1, the client/server version of 4th Dimension was introduced along with the release of 4th Dimension v3.1. In 1995, 4D v3.5 went cross-platform and has since then supported both the
Microsoft Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ...
and
Apple Macintosh The Mac (known as Macintosh until 1999) is a family of personal computers designed and marketed by Apple Inc. Macs are known for their ease of use and minimalist designs, and are popular among students, creative professionals, and software ...
operating systems. In 1997, 4D v6 was the first version of 4D to contain a fully integrated web server, allowing developers to translate 4D forms into HTML on the fly using only the 4D language. In 2004, 4D 2004 was the first version of 4D to allow developers to create standalone, client/server, web and Service Oriented Applications (SOA) without changing any code. In 2008, 4D v11 added a SQL layer to the 4D database engine and extending native SQL in to the 4D programming language which allowed 4D developers to write native SQL code to connect to either local or remote servers. In 2010, 4D v12 integrated the ability to execute PHP functions/scripts from within the 4D programming language. This version also supported new replication and synchronization commands and included a 64 bit version of 4D Server.


Version history


Architecture

A 4D application can run in either Standalone mode or Client-Server mode.


Single-User

In Standalone mode, the 4D application (4D.exe on Windows or 4D.app on Mac) is used to open the structure file (4DB/4DC) file directly along with the associated data file (4DD).


Client-Server

In the Client-Server paradigm the 4D Server application (4DServer.exe on Windows or 4DServer.app on Mac) is used to open the structure file (4DB/4DC) file directly along with the associated data file (4DD). 4D may then be used in remote mode to connect to the 4D Server.


Application Editions

4D has two applications; 4D and 4D Server. 4D Server runs only as a server but 4D can be run in either standalone or remote mode.


4D

4D can be run in two modes. 4D in single-user mode allows for 1 person to run the application. 4D in remote mode is used for connecting to a 4D Server.


4D Server

4D Server is used for Client-Server connectivity to the application. In this mode, 4D Server loads the structure file (4DB or 4DC) and also the datafile (4DD) and provides network access to 4D (in remote). Each workstation has a dynamically updated cache of the resources they are working with, while the 4D Server maintains the data and code.


Syntax

This section will include syntax examples demonstrating different programming constructs used in 4D, such as for loops and variable usage.


Data Types

4D fields, variables, and expressions can be of the following data types: More info on 4D data type can be found on the 4D Data Typesdocumentation page


Variable Scope

Local variables are prefixed with a $ like $myLocalVariable and only live for the duration of the method. Process variables have no prefix like myProcessVariable and live throughout the duration of the process. Inter-process (or Global) variables are prefixed with a <> like <>myGlobalVariable and live throughout the duration of the application.


Comparison of looping


For

For(vCounter;1;100)
  // Do something
End for


While

 $i :=1 // Initialize the counter
 While($i<=100) // Loop 100 times
  // Do something
    $i :=$i +1 // Need to increment the counter
 End while


Repeat

 $i :=1 // Initialize the counter
 Repeat
  // Do something
    $i :=$i +1 // Need to increment the counter
 Until($i=100) // Loop 100 times


Nested Loops

The following example goes through all the elements of a two-dimensional array:
 For($vlElem;1;Size of array(anArray))
  // ...
  // Do something with the row
  // ...
    For($vlSubElem;1;Size of array(anArray))
       // Do something with the element
       anArray:=...
    End for
 End for
The following example builds an array of pointers to all the date fields present in the database:
 ARRAY POINTER($apDateFields;0)
 $vlElem:=0
 For($vlTable;1;Get last table number)
   // loop over each table number with $vTable as the number
    If(Is table number valid($vlTable)) 
      // check if table number $vTable is valid
      // only loop on the valid table 
       For($vlField;1;Get last field number($vlTable)) 
         // loop over each field number within current table 
         // with $vlField as the current field number
          If(Is field number valid($vlTable;$vlField))
            // check if field number is valid
             $vpField:=Field($vlTable;$vlField) // get pointer to field
             If(Type($vpField->)=Is date) 
               // check if current field is a date
               // only performs these actions if field is a date
                $vlElem:=$vlElem+1
                INSERT IN ARRAY($apDateFields;$vlElem)
                $apDateFields:=$vpField
             End if
          End If
       End for
    End If
 End for


References


External links

* * 4D Documentation
static

live
* New 4D Forum (http://discuss.4d.com/)
4D Knowledge Base
* * {{StackOverflow, 4d-database Proprietary database management systems Desktop database application development tools Procedural programming languages Cross-platform software Programming languages created in 1984 High-level programming languages Relational database management systems