Czwarty wymiar (oprogramowanie)

Język programowania 4D
Zaprojektowany przez Laurent Ribardière
Deweloper 4D SAS
Po raz pierwszy pojawiły się 1984 ; 39 lat temu ( 1984 ) (dev) 1987 ; 36 lat temu ( 1987 ) (oficjalnie)
Wersja stabilna
v18 R5 / 19 stycznia 2021 r . ; 2 lata temu ( 2021-01-19 )
Wersja podglądu
v18 R6 Beta
Język implementacji C, C++
Platforma Wieloplatformowy
system operacyjny Windowsa, macOS
Licencja Prawnie zastrzeżony
Rozszerzenia nazw plików 4DB, 4DC
Formaty plików Zinterpretowane, skompilowane
Strona internetowa nas .4d .com
4D
Oryginalni autorzy Laurent Ribardière
Deweloperzy 4D SAS
Pierwsze wydanie 1984 ; 39 lat temu ( 1984 ) (ss) 1987 ; 36 lat temu ( 1987 ) (v1)
Wersja stabilna
v18 R5 / 19 stycznia 2021 r . ; 2 lata temu ( 2021-01-19 )
Wersja podglądu
v18 R6 Beta
Napisane w C++ , C
System operacyjny Windowsa , Mac OS
Typ RAD RDBMS IDE Projektant języka GUI Serwer WWW
Licencja Prawnie zastrzeżony
Strona internetowa nas .4d .com
Serwer 4D
Oryginalni autorzy Laurent Ribardière
Deweloperzy 4D SAS
Pierwsze wydanie 1993 ; 30 lat temu ( 1993 ) (v1)
Wersja stabilna
v18 R5 / 19 stycznia 2021 r . ; 2 lata temu ( 2021-01-19 )
Wersja podglądu
v18 R6 Beta
Napisane w C++ , C
System operacyjny Windowsa , Mac OS
Typ RDBMS Serwer sieci Web Serwer aplikacji SQL Server Język serwera bazy danych
Licencja Prawnie zastrzeżony
Strona internetowa nas .4d .com

4D ( 4th Dimension lub Silver Surfer , jak nazywano go na wczesnym etapie rozwoju) to system zarządzania relacyjnymi bazami danych i IDE opracowany przez Laurenta Ribardière'a . 4D powstał w 1984 roku i miał nieco opóźnione publiczne wydanie dla komputerów Macintosh w 1987 roku z własnym językiem programowania .

Od tego czasu linia produktów 4D rozszerzyła się o zaplecze SQL , zintegrowany kompilator , integrację PHP oraz kilka wtyczek i interfejsów zwiększających produktywność. Niektóre z wtyczek stworzonych przez 4D to 4D Write (procesor tekstu), 4D View (trochę jak arkusz kalkulacyjny, ale z dodatkową funkcjonalnością) i 4D Internet Commands (co pozwoliło na dodanie funkcji związanych z Internetem do bazy danych) . Istnieje również ponad 100 wtyczek innych firm, bezpłatnych i komercyjnych.

4D może być również używany jako serwer WWW , do uruchamiania skompilowanych aplikacji bazodanowych.

Obecnie 4D jest publikowane przez francuską firmę 4D SAS i prowadzi sprzedaż, dystrybucję i wsparcie na większości głównych rynków, przy czym głównymi rynkami są Stany Zjednoczone, Wielka Brytania i Francja. Produkt jest zlokalizowany w kilkunastu językach.

Historia

Silver Surfer, jak nazywano go na wczesnym etapie rozwoju, został opracowany przez Laurenta Ribardière'a w 1984 roku. Po negocjacjach z Ribardiere planowano, że Apple Inc. (dawniej Apple Computer Inc) opublikuje oprogramowanie, ale Apple anulował ten plan, podobno z powodu presji od innych potencjalnych wydawców baz danych, którzy twierdzili, że gdyby Apple miał własną bazę danych „marki”, produkty stron trzecich byłyby w niekorzystnej sytuacji na rynku. Apple starał się wówczas, aby znani wydawcy oprogramowania wspierali platformę Macintosh, w wyniku czego projekt powrócił do Laurenta Ribardière'a , która wraz z francuską bizneswoman Marylene Delbourg-Delphis opublikowała 4th Dimension. Chociaż niezależnie opublikowano, Apple wsparło nowe przedsięwzięcie i szeroko stosowało 4D w całej organizacji do projektów, w tym do zarządzania centrami fitness i CIM (Computer Integrated Manufacturing). Wielu pracowników Apple zostało ekspertami 4D, w tym Lance McAndrew w centrali Apple w Cupertino i Andrew O'Donoghue w europejskiej centrali produkcyjnej Apple w Irlandii , gdzie aplikacja 4th Dimension zarządzała administracją Europejskiego Centrum Usług.

W ciągu następnych kilku lat baza 4th Dimension rosła, a wydawca ACI założył spółkę zależną z siedzibą w USA o nazwie ACIUS, początkowo kierowaną przez Guya Kawasakiego . Po 16 latach funkcjonowania jako ACIUS do 2000 roku nazwa została oficjalnie zmieniona na 4D Inc.

W 1993 roku 4D Server v1.1, wersja klient/serwer 4th Dimension została wprowadzona wraz z wydaniem 4th Dimension v3.1.

W 1995 roku 4D v3.5 stało się wieloplatformowe i od tego czasu obsługuje zarówno systemy operacyjne Microsoft Windows , jak i Apple Macintosh .

W 1997 roku 4D v6 była pierwszą wersją 4D, która zawierała w pełni zintegrowany serwer WWW, umożliwiając programistom tłumaczenie formularzy 4D na HTML w locie, używając tylko języka 4D.

W 2004 roku 4D 2004 była pierwszą wersją 4D, która umożliwiła programistom tworzenie samodzielnych aplikacji typu klient/serwer, sieciowych i aplikacji zorientowanych na usługi (SOA) bez zmiany kodu.

W 2008 roku 4D v11 dodał warstwę SQL do silnika bazy danych 4D i rozszerzył natywny SQL do języka programowania 4D, co umożliwiło programistom 4D pisanie natywnego kodu SQL w celu łączenia się z lokalnymi lub zdalnymi serwerami.

W 2010 roku 4D v12 zintegrowało możliwość wykonywania funkcji / skryptów PHP z poziomu języka programowania 4D. Ta wersja obsługiwała również nowe polecenia replikacji i synchronizacji oraz zawierała 64-bitową wersję 4D Server.

Historia wersji

Oddział Ostatnia wersja Pierwsze wydanie Ostateczne wydanie Stan luty 2022 r Notatki
v19.x v19.LTS 12 lipca 2021 r Bieżący Utrzymany Natywna obsługa Apple Silicon, Classes
v18.x v18.LTS 16 stycznia 2020 r Bieżący Utrzymany Bazy danych projektu do kontroli wersji, Wbudowane narzędzia szyfrujące, 4D dla iOS, 4D Write Pro, 4D View Pro
v17.x v17.4 10 lipca 2018 r
13 grudnia 2020 r. (4D v17.5)
Wsparcie zakończyło się 13 grudnia 2020 r ORDA (obiektowo relacyjny dostęp do danych), kolekcje, notacja obiektowa, formularze dynamiczne
v16.x v16.6 10 stycznia 2017 r
24 lipca 2019 (4D v16.6)
Wsparcie zakończyło się 24 lipca 2019 r Nowy system zarządzania pamięcią podręczną, wielowątkowość z wywłaszczaniem, 4D Dev Pro 64-bitowy
v15R v15R5 10 listopada 2015 r 14 września 2016 r Zastąpiony przez 16.x Podgląd funkcji, które mają być w wersji 16.x
v15.x v15.6 16 lipca 2015 r 25 kwietnia 2017 r Wsparcie zakończyło się 25 kwietnia 2018 r 64-bitowy serwer 4D dla serwerów Mac; Nowa warstwa sieciowa
v14R v14R5 maj 2014 r marzec 2015 r Nie jest już obsługiwany podgląd funkcji, które mają być w wersji 15.x
v14.x v14.6 12 grudnia 2013 r 20 grudnia 2016 r Nie jest już obsługiwany 4D Mobile (opcje łączności dla 4D Server jako źródła danych dla Wakandy (oprogramowanie) ); Strukturyzowane obiekty JSON (C_Object); widoki SQL; nowe narzędzia do obsługi i monitoringu, nowy system kronikowania.
v13.x v13.6 14 lutego 2012 r 18 czerwca 2015 r Nie jest już obsługiwany Nowy wielowątkowy serwer HTTP; automatyczne zarządzanie sesją; nowy rozszerzalny klient HTTP; integracja webkit i rozszerzona obsługa Javascript; wzbogacone pole listy; zarządzanie dokumentacją zewnętrzną.
v12.x v12.6 3 czerwca 2010 r 8 października 2013 r Nie jest już obsługiwany 64-bitowy serwer 4D dla serwerów Windows; integracja PHP; Synchronizacja i replikacja
v11.x v11.9 23 września 2008 r 7 lipca 2011 r Nie jest już obsługiwany silnik SQL; zintegrowane centrum konserwacji (MSC); zarządzanie plikami SVG; Zintegrowany obszar sieciowy
2004.x 2004.8 31 sierpnia 2004 r 30 czerwca 2009 r Nie jest już obsługiwany Zmieniony interfejs; Integracja poleceń ODBC wysokiego poziomu, 4D Customizer, 4D Backup i 4D Engine
2003.x 2003.8r2 17 marca 2003 r 11 kwietnia 2006 Nie jest już obsługiwany XML; Usługi internetowe; Wbudowany kompilator
v6.8.x 6.8.6 15 kwietnia 2002 24 września 2004 r Nie jest już obsługiwany
v6.7.x 6.7.5 Nie jest już obsługiwany
v6.5.x 18 maja 1999 r Nie jest już obsługiwany
v6.0.x 6.0.5 1997 27 lutego 1998 Nie jest już obsługiwany Zintegrowany serwer WWW
v3.x Nie jest już obsługiwany 4D v3.5 była pierwszą wersją międzyplatformową (mac/win),
v1.x 1987 Nie jest już obsługiwany Tylko Mac

Architektura

Aplikacja 4D może działać w trybie Standalone lub Client-Server.

Pojedynczy użytkownik

W trybie autonomicznym aplikacja 4D (4D.exe w systemie Windows lub 4D.app w systemie Mac) jest używana do otwierania pliku struktury (4DB/4DC) bezpośrednio wraz z powiązanym plikiem danych (4DD).

Klient-serwer

W paradygmacie klient-serwer aplikacja 4D Server (4DServer.exe w systemie Windows lub 4DServer.app w systemie Mac) jest używana do otwierania pliku struktury (4DB/4DC) bezpośrednio wraz z powiązanym plikiem danych (4DD). 4D może być następnie używany w trybie zdalnym do łączenia się z Serwerem 4D.

Edycje aplikacji

4D ma dwa zastosowania; Serwer 4D i 4D. 4D Server działa tylko jako serwer, ale 4D może działać w trybie autonomicznym lub zdalnym.

4D

4D można uruchomić w dwóch trybach. 4D w trybie jednego użytkownika pozwala na obsługę aplikacji przez 1 osobę. 4D w trybie zdalnym służy do łączenia się z serwerem 4D.

Serwer 4D

Serwer 4D służy do połączenia klient-serwer z aplikacją. W tym trybie serwer 4D ładuje plik struktury (4DB lub 4DC), a także plik danych (4DD) i zapewnia dostęp sieciowy do 4D (w trybie zdalnym). Każda stacja robocza ma dynamicznie aktualizowaną pamięć podręczną zasobów, z którymi pracuje, podczas gdy serwer 4D przechowuje dane i kod.

Składnia

Ta sekcja będzie zawierać przykłady składni demonstrujące różne konstrukcje programistyczne używane w 4D, takie jak pętle for i użycie zmiennych.

Typy danych

Pola, zmienne i wyrażenia 4D mogą należeć do następujących typów danych:

Typ danych Pole Zmienny Wyrażenie
Strunowy Tak Tak Tak
Numer (podwójny) Tak Tak Tak
Data Tak Tak Tak
Czas Tak Tak Tak
logiczne Tak Tak Tak
Zdjęcie Tak Tak Tak
Wskaźnik NIE Tak Tak
KROPELKA Tak Tak NIE
Szyk NIE Tak NIE
Liczba całkowita 64 bity Tak NIE NIE
Platforma Tak NIE NIE
Obiekt Tak Tak Tak
Kolekcja Tak Tak Tak
Nieokreślony NIE Tak Tak

Więcej informacji na temat typu danych 4D można znaleźć na stronie dokumentacji [Typy danych 4D].

Zmienny zakres

Zmienne lokalne są poprzedzone znakiem $ , takim jak $myLocalVariable i działają tylko przez czas trwania metody.

Zmienne procesowe nie mają prefiksu takiego jak myProcessVariable i są aktywne przez cały czas trwania procesu.

Zmienne międzyprocesowe (lub globalne) są poprzedzone znakiem <> takim jak <>myGlobalVariable i są aktywne przez cały czas działania aplikacji.

Porównanie pętli

Dla

For(vCounter;1;100) // Zrób coś Koniec dla

Chwila

$i :=1 // Inicjalizacja licznika While($i<=100) // Zapętlenie 100 razy // Zrób coś $i :=$i +1 // Potrzeba zwiększenia licznika Koniec while

Powtarzać

$i :=1 // Inicjalizacja licznika Powtórz // Zrób coś $i :=$i +1 // Musisz zwiększyć licznik do($i=100) // Zapętl 100 razy

Pętle zagnieżdżone

Poniższy przykład przechodzi przez wszystkie elementy tablicy dwuwymiarowej:

For($vlElem;1;Size of array(anArray)) // ... // Zrób coś z wierszem // ... For($vlSubElem;1;Size of array(anArray{$vlElem})) / / Zrób coś z elementem anArray{$vlElem}{$vlSubElem}:=... Koniec dla Koniec dla

Poniższy przykład tworzy tablicę wskaźników do wszystkich pól dat znajdujących się w bazie danych:

ARRAY POINTER($apDateFields;0) $vlElem:=0 For($vlTable;1;Pobierz ostatni numer tabeli) // pętla nad każdym numerem tabeli z $vTable jako liczbą If(Czy numer tabeli jest ważny($vlTable)) / / sprawdź, czy numer tabeli $vTable jest poprawny // tylko pętla na prawidłowej tabeli For($vlField;1;Get last field number($vlTable)) // pętla nad każdym numerem pola w bieżącej tabeli // z $vlField jako aktualny numer pola If(Czy numer pola jest poprawny($vlTable;$vlField)) // sprawdź czy numer pola jest poprawny $vpField:=Field($vlTable;$vlField) // pobierz wskaźnik do pola If(Type($vpField- >)=Jest datą) // sprawdź, czy bieżące pole jest datą // wykonuje te czynności tylko wtedy, gdy pole jest datą $vlElem:=$vlElem+1 INSERT IN ARRAY($apDateFields;$vlElem) $apDateFields{$vlElem} :=$vpField Koniec jeśli Koniec Jeśli Koniec dla Koniec Jeśli Koniec dla

Linki zewnętrzne