Overview of Free Pascal and Lazarus/pl

From Free Pascal wiki

Deutsch (de) English (en) español (es) suomi (fi) français (fr) magyar (hu) Bahasa Indonesia (id) italiano (it) 日本語 (ja) 한국어 (ko) polski (pl) português (pt) русский (ru) slovenčina (sk) 中文(中国大陆)‎ (zh_CN) 中文(台灣)‎ (zh_TW)

Zapoznanie z Free Pascalem i Lazarusem

Free Pascal (FPC) jest programem open-source i kompilatorem Pascala, który ma dwie istotne cechy: wysoki poziom kompatybilności z Delphi i dostępność na różne platformy, w tym Windows, Mac OS X i Linux. Zgodność Free Pascala z Delphi obejmuje nie tylko wsparcie dla samego języka programowania Object Pascal używanego w Delphi, ale także wiele takich samych bibliotek procedur i klas, które są znane z Delphi. Zawiera on znane moduły takie jak System, SysUtils, StrUtils, DateUtils, Classes, Variants, Math, IniFiles i Registry, które są zawarte we Free Pascal na wszystkich obsługiwanych platformach. Free Pascal zawiera także takie moduły jak Windows, ShellAPI, BaseUnix, Unix i DynLibs, które udostępniają cechy charakterystyczne dla danego systemu operacyjnego. Te kilkanaście jednostek tworzą rdzeń tego, co określa się zwykle jako biblioteki wykonawcze (run-time library - RTL) Free Pascala.

Lazarus jest systemem programowania open-source, który opiera się na kompilatorze Free Pascal i udostępnia zintegrowane środowisko programistyczne (IDE). IDE to zawiera edytor kodu z podkreśleniem składni i wizualnym projektowaniem formularza, a także biblioteki komponentów, które są w znacznym stopniu zgodne z wizualną biblioteką komponentów Delphi (Visual Component Library - VCL). Biblioteka komponentów Lazarusa (Lazarus Component Library - LCL) zawiera odpowiedniki wielu znanych kontrolek VCL takich jak formularze, przyciski, pola tekstowe i tak dalej, które są wykorzystywane do tworzenia aplikacji i mają graficzny interfejs użytkownika (Graphical User Interface - GUI).

Zarówno Free Pascal jak i Lazarus są napisane w języku Pascal. Dostępny jest nie tylko kompletny kod źródłowy kompilatora Free Pascal i IDE Lazarusa, ale także wszystkich modułów, które składają się na RTL Free Pascala i LCL Lazarusa.

Zarówno Delphi, jaki i Free Pascal z Lazarusem są narzędziami programistycznymi ogólnego przeznaczenia, dzięki czemu można za ich pomocą opracować wiele różnorodnych programów, takich jak:

Programy konsolowe

Programy konsolowe nie posiadają GUI. Zamiast tego są zwykle uruchamiane z konsoli, czytają one dane wejściowe wprowadzane z konsoli i zapisują dane wyjściowe na konsolę. W Windows konsola jest zwykle określana jako okno wiersza poleceń. W OS X i Linuksie konsola jest określana jako okno terminala. Aplikacje konsolowe to zwykle małe narzędzia takie jak program FC z Windows (porównanie plików) lub komendy systemu Unix takie jak cd i cp. Aplikacje konsolowe mogą wykonywać także skomplikowane operacje matematyczne, modelowanie lub przetwarzać dane, gdy nie potrzebują GUI, ponieważ są zwykle uruchamiane przez inne programy lub za pomocą plików wsadowych (lub skryptów powłoki Unix/Linux). Kompilator Free Pascal i programy narzędziowe dołączone do niego są właśnie takimi aplikacjami konsolowymi, czyli mogą one być uruchamiane z konsoli, z pliku wsadowego lub za pomocą IDE Lazarusa.

Do tworzenia aplikacji konsolowej wystarczy zwykły edytor tekstu i kompilator Free Pascal. Nie trzeba używać Lazarusa do budowania aplikacji konsolowej. Jednakże, jeśli wolisz pracować w zintegrowanym środowisku, można użyć Lazarusa, aby utworzyć projekt dla aplikacji konsolowej, a następnie edytować i kompilować kod w IDE Lazarusa.

Biblioteki ładowane dynamicznie

Biblioteki ładowane dynamicznie są zwykle zbiorem skompilowanych funkcji, które mogą być wywoływane przez inne programy. Jak sama nazwa wskazuje, biblioteka nie jest łączona z twoją aplikacją w trakcie kompilacji, lecz jest ładowana w czasie działania programu. W systemie Windows plik biblioteki ma rozszerzenie .dll (dynamic-link library - DLL). W OS X plik biblioteki posiada rozszerzenie .dylib (dynamic shared library). Natomiast w Linuksie plik biblioteki ma rozszerzenie .so (shared object library). Biblioteki ładowane dynamicznie są zwykle używane jako dodatki dla innych programów, mogą być też wywoływane przez programy napisane w innych językach takich jak C i C++, lub gdy trzeba podzielić duży projekt na mniejsze fragmenty, tak aby deweloperzy projektu nie przeszkadzali sobie wzajemnie. Na przykład sam Windows składa się z setek plików DLL, podobnie jak wiele innych dużych aplikacji, takich jak OpenOffice.org.

Do stworzenia biblioteki, podobnie jak w przypadku aplikacji konsolowej, wystarczy edytor tekstu i kompilator Free Pascal, chociaż można również utworzyć dla biblioteki projekt w Lazarusie i rozwijać ją w IDE Lazarusa.

W systemie Windows, biblioteki DLL mają niesłusznie reputację zbyt skomplikowanych i niestabilnych. Ma to czasami więcej wspólnego ze sposobem zainstalowania niż z samymi bibliotekami DLL. W praktyce, do przekazywania informacji do i z bibliotek DLL zazwyczaj wykorzystuje się standardowe, proste typy danych (a nie specyficzne dla danego języka obiekty i struktury), co wymusza na programistach zwrócenie większej uwagi na to, co robią. Jeśli będzie to dobrze robione, to otrzymamy lepsze i stabilne programy.

Aplikacje GUI

Większość codziennie używanych programów, to aplikacje GUI, w tym edytory tekstu, przeglądarki internetowe, arkusze kalkulacyjne, a także wiele narzędzi programistycznych. Zarówno Lazarus jak i Delphi są dobrymi przykładami w pełni funkcjonalnych aplikacji GUI. Podczas tworzenia aplikacji GUI w Lazarusie, nie tylko tworzysz moduły w kodzie Pascala, ale także projektujesz formularz zawierający wizualne komponenty takie jak przyciski i pola list. Podobnie jak w Delphi, formularz projektowany w lazarusie wykonuje się wizualnie. Właściwości kontrolek mogą być ustawiane w IDE lub w kodzie programu.

Od czasu gdy kontrolki LCL są dostępne dla wszystkich obsługiwanych platform, opracowane GUI aplikacji na jednej platformie (np. Windows) można skompilować na innej platformie (np. OS X lub Linux) bez dokonywania jakichkolwiek zmian w budowie formularza lub w plikach kodu.

Architektura Lazarusa

Diagram przedstawia architekturę programów napisanych w Lazarusie:

Lazarus App Architecture pl.png

Poniżej przedstawiono architekturę biblioteki komponentów Lazarusa (LCL):

LCL Architecture pl.png

Zobacz także

Tłumaczenie

Na język polski przełożył: --Sławomir Załęcki 11:12, 9 September 2010 (CEST)