Delphi wspiera szybkie tworzenie aplikacji (RAD). Wyróżnia się wizualnym projektantem i dwoma frameworkami aplikacji, VCL dla Windows i FireMonkey (FMX) dla rozwoju wieloplatformowego.
Delphi wykorzystuje oparty na Pascalu język programowania Object Pascal, stworzony przez Andersa Hejlsberga dla firmy Borland (obecnie IDERA) jako następca Turbo Pascala. Obsługuje natywną kompilację krzyżową na wiele platform, w tym Windows, Linux, iOS i Android.
Aby lepiej wspierać rozwój dla Microsoft Windows i współdziałać z kodem opracowanym za pomocą innych narzędzi do tworzenia oprogramowania, Delphi obsługuje niezależne interfejsy Component Object Model (COM) z referencyjnie policzonymi implementacjami klas i obsługą wielu komponentów innych firm. Implementacje interfejsów mogą być delegowane do pól lub właściwości klas. Obsługa komunikatów jest implementowana przez oznaczenie metody klasy stałą całkowitą komunikatu, który ma być obsłużony.
Połączenie z bazą danych jest szeroko obsługiwane przez komponenty VCL obsługujące bazy danych i dostęp do nich.
Późniejsze wersje zawierają uaktualnione i ulepszone procedury biblioteki uruchomieniowej, niektóre dostarczone przez grupę społeczności FastCode.
CharakterystykaEdit
Delphi używa silnie typowanego języka programowania wysokiego poziomu, przeznaczonego do łatwego użycia i pierwotnie opartego na wcześniejszym języku Object Pascal. Pascal został pierwotnie opracowany jako język ogólnego przeznaczenia „nadający się do wyrażania podstawowych konstrukcji znanych w tamtym czasie w zwięzły i logiczny sposób”, a „jego implementacja miała być wydajna i konkurencyjna w stosunku do istniejących kompilatorów FORTRAN”, ale bez niskopoziomowych udogodnień programistycznych lub dostępu do sprzętu. Turbo Pascal i jego potomkowie, w tym Delphi, wspierają dostęp do sprzętu i programowanie niskopoziomowe, z możliwością włączenia kodu napisanego w języku asemblera i innych językach. Obiektowa orientacja Delphi zawiera tylko polimorfizm oparty na klasach i interfejsach. Metaklasy są obiektami pierwszej klasy. Obiekty są w rzeczywistości referencjami do obiektów (jak w Javie), które Delphi niejawnie odreferencjonowuje, więc zazwyczaj nie ma potrzeby ręcznego alokowania pamięci dla wskaźników do obiektów lub stosowania podobnych technik, które są potrzebne w niektórych innych językach. Istnieją dedykowane typy łańcuchów zliczane przez referencje, a także łańcuchy zakończone zerem.
Podciągi mogą być konkatenowane przy użyciu operatora '+', a nie przy użyciu funkcji. Dla dedykowanych typów łańcuchów Delphi obsługuje zarządzanie pamięcią bez interwencji programisty. Od Borland Developer Studio 2006 dostępne są funkcje lokalizujące wycieki pamięci.
Delphi zawiera zintegrowane IDE. Wszystkie produkty Delphi dostarczane są z biblioteką uruchomieniową (RTL) i biblioteką komponentów wizualnych (VCL), zawierającą większość kodu źródłowego. Dostępne są również komponenty innych firm (czasami z pełnym kodem źródłowym) oraz narzędzia do rozszerzenia możliwości IDE lub do innych zadań programistycznych związanych z Delphi, niektóre z nich są bezpłatne. IDE zawiera GUI do lokalizacji i tłumaczenia stworzonych programów, które mogą zostać wysłane do tłumacza; istnieją również narzędzia innych firm, które posiadają więcej funkcji do tego celu. Framework VCL zachowuje wysoki poziom zgodności źródłowej między wersjami, co upraszcza aktualizację istniejącego kodu źródłowego do nowszej wersji Delphi. Biblioteki innych firm zazwyczaj wymagają aktualizacji od producenta, ale jeśli dostarczony jest kod źródłowy, rekompilacja do nowszej wersji może być wystarczająca. VCL wcześnie zastosował wstrzykiwanie zależności lub odwrócenie kontroli; używa modelu komponentów wielokrotnego użytku, rozszerzalnych przez programistę. Dzięki klasom pomocniczym nowa funkcjonalność może być wprowadzona do klas RTL i VCL bez zmiany oryginalnego kodu źródłowego RTL lub VCL.
Kompilator jest optymalizujący i jednoprzebiegowy. Opcjonalnie może kompilować do pojedynczego pliku wykonywalnego, który nie wymaga bibliotek DLL. Delphi może również generować standardowe biblioteki DLL, ActiveX DLL, serwery automatyzacji COM i usługi Windows.
W IDE Delphi od Delphi 2005 coraz częściej obsługiwane są funkcje refaktoryzacji, takie jak ekstrakcja metod oraz możliwość tworzenia modeli UML z kodu źródłowego lub modyfikowania źródła poprzez zmiany dokonywane w modelu.
Delphi posiada społeczności w sieci, w których aktywnie uczestniczą również pracownicy firmy.
Kompatybilność wstecznaEdit
Ale każde nowe wydanie Delphi stara się zachować jak największą kompatybilność wsteczną, aby umożliwić ponowne wykorzystanie istniejącego kodu, nowe funkcje, nowe biblioteki i ulepszenia czasami sprawiają, że nowsze wydania są mniej niż w 100% kompatybilne wstecz.
Od 2016 roku nowe wydania Delphi pojawiają się co sześć miesięcy, a nowe platformy są dodawane mniej więcej co drugie wydanie.
RamyEdit
Delphi oferuje dwa frameworki do tworzenia aplikacji wizualnych, VCL i FireMonkey (FMX):
- Visual Component Library (VCL) to framework do tworzenia aplikacji czysto Windowsowych. VCL to szkielet o długiej tradycji, zawarty w pierwszym wydaniu Delphi i od tego czasu aktywnie rozwijany.
- FireMonkey (późniejszy skrót FMX), został wydany w 2011 roku jako część Delphi XE2, wraz z dodatkowym zestawem wbudowanych kompilatorów dla platform innych niż Windows. FireMonkey jest międzyplatformowym frameworkiem dla Windows, macOS, iOS, Android i Linux (x64). Części GUI w FireMonkey są w dużej mierze oparte na Direct3D i OpenGL. FireMonkey nie jest kompatybilny z VCL; są to dwa oddzielne frameworki. Aplikacje FireMonkey pozwalają jednak na łatwe współdzielenie niewizualnych jednostek kodu z aplikacjami VCL, dzięki czemu wiele kodu może być łatwo przenoszonych lub współdzielonych pomiędzy platformami.
InteroperacyjnośćEdit
Delphi i jego odpowiednik w C++, C++Builder, są interoperacyjne. Dzielą wiele podstawowych komponentów, w szczególności IDE, frameworki VCL i FMX oraz dużą część biblioteki runtime. Ponadto, mogą być używane wspólnie w projekcie. Na przykład, C++Builder 6 i późniejsze mogą łączyć kod źródłowy z Delphi i C++ w jednym projekcie, podczas gdy pakiety skompilowane w C++Builder mogą być używane z Delphi. W 2007 roku produkty te zostały wydane wspólnie jako RAD Studio, współdzielony host dla Delphi i C++Builder, który można zakupić z jednym lub drugim.