Андрей
Высший разум
(483682)
7 лет назад
Pascal - маленький язык, созданный в 1972 году. В силу своего размера и логичности стандартный Pascal хорошо подходит для начального обучения программированию (впрочем, Modula-2 и Oberon-07 для этого подходят лучше).
Но в практическом программировании "чистый" Pascal не применяется - только расширенные дополнительными возможностями диалекты разной степени извращённости.
Delphi - очень сильно расширенный и достаточно уродливый диалект Pascal, предназначенный для быстрого создания GUI. Для обучения программированию подходит очень плохо - из диалектов Pascal в этом отношении хуже Delphi только PascalABC.Net.
Высший разум
(1271064)
7 лет назад
Delphi - расширенный паскаль. На Delphi можно делать окошечки =) На Delphi можно писать проги на Pascal, обратно нельзя. Pascal разрабатывался под DOS изначально, современный Delphi может компилировать под Win32/64, Linux, MacOS, iOS, Android.
Вопрос слишком общий, чтобы ответить на него односложно.
...
Гений
(84997)
7 лет назад
Вопрос из разряда чем отличается машина от конкретной модели скажем BMW =).
Диалектов Pascal много и соотв. отличий много.
В Delphi прежде всего есть VCL (своя библиотека визуальных компонентов).
Да в каком-то смысле её частично содрали в Lazarus (LCL)
В Pascal ABC.NET идеология другая и ООП тяготеет к тому, что принято в C#, VB.NET, соотв. по полной используются компоненты .NET платформы, имеет много от функционального языка (лямбды, Linq...), которые не встречал ещё ни в одной версии Pascal. В этом смысле развит даже больше чем C#.
Lazarus (IDE + LCL библиотеки) - попытка сделать бесплатный, открытый и кросплатформенный Delphi (сначала Delphi мог компилировать только под Windows). С виду всё неплохо и похоже на Delphi, но чем дальше в лес тем заметнее различия.
В Free Pascal (его компилятор использует Lazarus) тоже свои функции, ближе к "классическому" Object Pascal, но умеет кроссплатформенно компилировать, описаны вызовы WinAPI функций и прочие плюшки.
Pascal ABC - Разрабатывался по большому счету для учебы. Такой гаденький утёнок вышел. И не совсем "классический" Pascal и не совсем современный. Поэтому помер и ничуть не жалко =)
P.S: Не трогал TMT Pascal (некогда довольно популярный), Pascal под ZX Spectrum и прочие совсем давние трупы.
...Гений (84997)
7 лет назад
Хотел ещё дописать по поводу Delphi, но время ответа вышло, а в комментах лень =)
Jurijus Zaksas
Искусственный Интеллект
(474725)
7 лет назад
Из чисто языковых - прежде всего автоматическое разыменование объектов. До кучи: поддержка дженериков, интерфейсов, анонимных методов, классов-расширений, цикла foreach (для классов, реализующих IEnumerable), возможность создания и использования динамических библиотек, инлайн-методы, статические методы, записи с методами и конструкторами. Проиллюстрирую:
SomeObject := SomeClass.Create();
SomeObject^.Foo(); //Pascal
SomeObject.Foo(); //Delphi
procedure Foo< T >(Param: T); //Only in Delphi
Foo(begin Boo(); end;); //Only in Delphi
type
TStringHelper = record helper for string; //Only in Delphi
foreach Element in SomeList; //Only in Delphi
library Boo; //Only in Delphi
procedure Foo(); external 'Boo.dll'; //Only in Delphi
procedure Foo; inline; //In Delphi - code is inserted upon call without using stack etc.
strict private procedure Foo(); //Only in Delphi
type
SomeRec = record
private //Only in Delphi
a: integer;
public //Only in Delphi
constructor Create(_a: integer); //Only in Delphi
end;