4D ( 4th Dimension , o Silver Surfer , como se le conocía durante su desarrollo inicial) es un sistema de gestión de bases de datos relacionales y un entorno de desarrollo integrado desarrollado por Laurent Ribardière . [ 3 ] 4D se creó en 1984 [ 4 ] y tuvo un lanzamiento público ligeramente retrasado para Macintosh en 1987 [ 5 ] [ 6 ] [ 7 ] con su propio lenguaje de programación . [ 1 ]
La línea de productos 4D se ha ampliado para incluir una base de datos SQL , un compilador integrado , la integración de PHP y varios complementos e interfaces de productividad. Algunos de los complementos creados por 4D son 4D Write (un procesador de textos), 4D View (similar a una hoja de cálculo, pero con funcionalidades adicionales) y 4D Internet Commands (que permite añadir funcionalidades relacionadas con Internet a una base de datos). Además, existen más de 100 complementos de terceros, tanto gratuitos como de pago.
4D también puede utilizarse como servidor web para ejecutar aplicaciones de bases de datos compiladas.
Actualmente, 4D es publicado por la empresa francesa 4D SAS y cuenta con presencia de ventas, distribución y soporte en la mayoría de los principales mercados, siendo Estados Unidos, Reino Unido y Francia sus mercados principales. El producto está disponible en más de una docena de idiomas.
Historia
Silver Surfer, como se le conocía durante su desarrollo inicial, fue desarrollado por Laurent Ribardière en 1984. Tras negociaciones con Ribardière, se planeó que Apple Inc. (anteriormente Apple Computer Inc.) publicara el software, pero Apple canceló el plan, supuestamente debido a la presión de otros posibles editores de bases de datos que afirmaban que si Apple tenía su propia base de datos de "marca", los productos de terceros se verían perjudicados en el mercado. [ 8 ] En ese momento, Apple intentó asegurar que editores de software reconocidos apoyaran la plataforma Macintosh, y como resultado, el proyecto volvió a manos de Laurent Ribardière , quien, junto con la empresaria francesa Marylene Delbourg-Delphis, publicó 4th Dimension. Aunque se publicó de forma independiente, Apple apoyó la nueva iniciativa y utilizó 4D ampliamente en toda la organización para proyectos que incluían la gestión de gimnasios y CIM (Fabricación Integrada por Computadora). Varios empleados de Apple se convirtieron en expertos en 4D, entre ellos Lance McAndrew en la sede central de Apple en Cupertino y Andrew O'Donoghue en la sede europea de fabricación de Apple en Irlanda , donde una aplicación de 4th Dimension gestionaba la administración del Centro de Servicio Europeo.
En los años siguientes, la base de usuarios de 4th Dimension creció, y la editorial ACI estableció una filial en Estados Unidos llamada ACIUS, inicialmente dirigida por Guy Kawasaki . Después de 16 años operando como ACIUS hasta el año 2000, el nombre se cambió oficialmente a 4D Inc. [ 9 ]
En 1993, se presentó 4D Server v1.1, la versión cliente/servidor de 4th Dimension, junto con el lanzamiento de 4th Dimension v3.1. [ 10 ]
En 1995, 4D v3.5 se volvió multiplataforma y desde entonces ha sido compatible con los sistemas operativos Microsoft Windows y Apple Macintosh . [ 11 ]
En 1997, 4D v6 fue la primera versión de 4D en contener un servidor web totalmente integrado, lo que permitió a los desarrolladores traducir formularios de 4D a HTML sobre la marcha utilizando únicamente el lenguaje 4D. [ 12 ]
En 2004, 4D 2004 fue la primera versión de 4D que permitió a los desarrolladores crear aplicaciones independientes, cliente/servidor, web y orientadas a servicios (SOA) sin cambiar ningún código. [ 13 ]
En 2008, 4D v11 añadió una capa SQL al motor de base de datos de 4D y extendió el SQL nativo al lenguaje de programación de 4D, lo que permitió a los desarrolladores de 4D escribir código SQL nativo para conectarse a servidores locales o remotos. [ 14 ] [ 15 ]
En 2010, 4D v12 integró la capacidad de ejecutar funciones/scripts PHP desde el lenguaje de programación 4D. Esta versión también admitía nuevos comandos de replicación y sincronización e incluía una versión de 64 bits de 4D Server. [ 16 ]
Historial de versiones
Arquitectura
Una aplicación 4D puede ejecutarse en modo independiente o en modo cliente-servidor.
Usuario único
En el modo independiente, la aplicación 4D (4D.exe en Windows o 4D.app en Mac) se utiliza para abrir directamente el archivo de estructura (4DB/4DC) junto con el archivo de datos asociado (4DD).
Cliente-Servidor
En el paradigma cliente-servidor, la aplicación 4D Server (4DServer.exe en Windows o 4DServer.app en Mac) se utiliza para abrir directamente el archivo de estructura (4DB/4DC) junto con el archivo de datos asociado (4DD). Posteriormente, 4D puede utilizarse en modo remoto para conectarse al servidor 4D.
Ediciones de la aplicación
4D cuenta con dos aplicaciones: 4D y 4D Server. 4D Server funciona únicamente como servidor, pero 4D puede ejecutarse en modo independiente o remoto.
4D
4D puede ejecutarse en dos modos. El modo de usuario único permite que una sola persona ejecute la aplicación. El modo remoto se utiliza para conectarse a un servidor 4D.
Servidor 4D
4D Server se utiliza para la conectividad cliente-servidor con la aplicación. En este modo, 4D Server carga el archivo de estructura (4DB o 4DC) y el archivo de datos (4DD), y proporciona acceso a la red para 4D (de forma remota). Cada estación de trabajo dispone de una caché actualizada dinámicamente de los recursos con los que trabaja, mientras que 4D Server gestiona los datos y el código.
Sintaxis
Esta sección incluirá ejemplos de sintaxis que demuestran diferentes estructuras de programación utilizadas en 4D, como bucles for y el uso de variables.
Tipos de datos
Los campos, variables y expresiones 4D pueden ser de los siguientes tipos de datos: [ 18 ]
Encontrará más información sobre el tipo de datos 4D en la página de documentación [Tipos de datos 4D].
Ámbito variable
Las variables locales tienen un prefijo $similar $myLocalVariabley solo existen durante la ejecución del método.
Las variables de proceso no tienen prefijo myProcessVariabley existen durante toda la duración del proceso.
Las variables entre procesos (o globales) tienen un prefijo como <>este <>myGlobalVariabley permanecen activas durante toda la duración de la aplicación.
Comparación de bucles
Para
Para(vCounter;1;100) // Haz algo Fin para
Mientras
$i :=1 // Inicializar el contador Mientras ($i<=100) // Bucle 100 veces // Haz algo $i := $i + 1 // Es necesario incrementar el contador Finalizar mientras
Repetir
$i :=1 // Inicializar el contador Repetir // Haz algo $i := $i + 1 // Es necesario incrementar el contador Hasta que ($i=100) // Repetir 100 veces
Bucles anidados
El siguiente ejemplo recorre todos los elementos de una matriz bidimensional:
Para ($vlElem;1;Tamaño del array(anArray)) // ... // Haz algo con la fila // ... Para ($vlSubElem;1;Tamaño del array(anArray{$vlElem})) // Haz algo con el elemento una matriz{$vlElem}{$vlSubElem}:=... Fin para Fin para El siguiente ejemplo crea una matriz de punteros a todos los campos de fecha presentes en la base de datos:
PUNTERO DE MATRIZ ($apDateFields;0) $vlElem:=0 Para ($vlTable;1;Obtener el último número de tabla) // itera sobre cada número de tabla con $vTable como número Si(¿Es válido el número de tabla($vlTable)?) // comprobar si la tabla número $vTable es válida // solo iterar sobre la tabla válida Para ($vlField;1;Obtener el último número de campo ($vlTable)) // iterar sobre cada número de campo dentro de la tabla actual // con $vlField como el número de campo actual Si(¿Es válido el número de campo($vlTable;$vlField)? // comprobar si el número de campo es válido $vpField:=Field($vlTable;$vlField) // obtener puntero al campo Si(Tipo($vpField->)=Es fecha) // comprobar si el campo actual es una fecha // Estas acciones solo se realizan si el campo es una fecha. $vlElem:=$vlElem+1 INSERTAR EN ARRAY($apDateFields;$vlElem) $apDateFields{$vlElem}:=$vpField Fin si Fin Si Fin para Fin Si Fin para Referencias
- 1 2 "Base de datos de gama alta para Mac ofrece su propio lenguaje de programación" . InfoWorld. 16 de marzo de 1987.
- 1 2 3 "Ciclo de vida del producto 4D" . 4D . Consultado el 10 de enero de 2016 .
- ↑ «Gente 4D - 4D» . 4d.com . 19 de junio de 2018.
- ↑ "Una historia de la innovación" . 4d.com . 19 de junio de 2018.
- ↑ "El esperado servidor de Apple sale al mercado" . ComputerWorld. 26 de enero de 1987.
- ↑ "Nuevo programa de software de base de datos lleva a Macintosh a las grandes ligas" . chicagotribune.com
- ↑ "¿Buscando la cuarta dimensión? ¡ Ánimo, ya está aquí! " chicagotribune.com
- ↑ Guy, Kawasaki (1989). The Macintosh Way . Estados Unidos: Scott Foresman Trade. 18 págs . ISBN 0673461750.
- ↑ "Adiós ACI US, hola 4D, Inc." . MacNews.com .
- ↑ InfoWorld (27 de diciembre de 1993 – 3 de enero de 1994). 4D Server cumple las promesas de otros . InfoWorld Media Group, Inc.
- ↑ ComputerWorld (24 de julio de 1995). El fabricante de bases de datos abre un nuevo mercado . ComputerWorld.
- ↑ InfoWorld (9 de junio de 1997). 4th Dimension es adecuado para sitios mixtos de Mac y Windows . InfoWorld Media Group, Inc.
- ↑ "4D, Inc. lanza 4D 2004 con un nuevo entorno de diseño optimizado y nuevas tecnologías de implementación | Business Wire" . www.businesswire.com (Comunicado de prensa) . Consultado el 29 de febrero de 2016 .
- ↑ "4D anuncia el lanzamiento mundial de 4D Server V11 SQL" . www.prnewswire.com . Consultado el 29 de febrero de 2016 .
- ↑ "4D Server v11 añade SQL y optimiza el rendimiento | MacNN" . MacNN.com . Archivado del original el 5 de marzo de 2016. Consultado el 29 de febrero de 2016 .
- ↑ "4D v12 ya está disponible" . iClarified . 4 de junio de 2010. Consultado el 29 de febrero de 2016 .
- ^ " Productos del ciclo de vida" . 13 de enero de 2020.
- ↑ "Tipos de datos" . Centro de documentación 4D . Consultado el 28 de julio de 2022 .
Enlaces externos
- Sitio web oficial
- Documentación 4D ( nueva y antigua )
- Nuevo foro 4D ( http://discuss.4d.com/ )
- Base de conocimientos 4D
- Base de datos 4D en Stack Overflow
- Sistemas de gestión de bases de datos propietarios
- Herramientas de desarrollo de aplicaciones de bases de datos de escritorio
- Lenguajes de programación procedimental
- Software multiplataforma
- Lenguajes de programación creados en 1984
- Lenguajes de programación de alto nivel
- Sistemas de gestión de bases de datos relacionales