Выбрать главу

Отметим, что достоинства платформы .NET многократно перекрывают ее недостатки.

Преимущества PascalABC.NET

Современный язык программирования Object Pascal

Язык PascalABC.NET включает в себя практически весь стандартный язык Паскаль, а также большинство языковых расширений языка Delphi. Однако, этих средств недостаточно для современного программирования. Именно поэтому PascalABC.NET расширен рядом конструкций, а его стандартный модуль - рядом подпрограмм, типов и классов, что позволяет создавать легко читающиеся приложения средней сложности.

Кроме этого, язык PascalABC.NET использует большинство средств, предоставляемых платформой .NET: единая система типов, классы, интерфейсы, исключения, делегаты, перегрузка операций, обобщенные типы (generics), методы расширения, лямбда-выражения.

Стандартный модуль PABCSystem, автоматически подключаемый к любой программе, содержит огромное количество стандартных типов и подпрограмм, позволяющих писать ясные и компактные программы.

В распоряжении PascalABC.NET находятся все средства .NET-библиотек классов, постоянно расширяющихся самыми современными возможностями. Это позволяет легко писать на PascalABC.NET приложения для работы с сетью, Web, XML-документами, использовать регулярные выражения и многое другое.

Язык PascalABC.NET позволяет программировать в классическом процедурном стиле, в объектно-ориентированном стиле и содержит множество элементов для программирования в функциональном стиле. Выбор стиля или комбинации этих стилей - дело вкуса программиста, а при использовании в обучении - методический подход преподавателя.

Сочетание богатых и современных языковых средств, возможностей выбора разных траекторий обучения позволяет рекомендовать PascalABC.NET с одной стороны как язык для обучения программированию (от школьников до студентов младших и средних курсов), с другой - как язык для создания проектов и библиотек средней сложности.

Простая и мощная среда разработки

Интегрированная среда разработки PascalABC.NET ориентирована на создание проектов малой и средней сложности. Она достаточно легковесна и в то же время обеспечивает разработчика всеми необходимыми средствами, такими как встроенный отладчик, средства Intellisense (подсказка по точке, подсказка по параметрам, всплывающая подсказка по имени), переход к определению и реализации подпрограммы, шаблоны кода, автоформатирование кода.

В среду PascalABC.NET встроен также дизайнер форм, позволяющий создавать полноценные оконные приложения в стиле RAD (Rapid Application Development - быстрое создание приложений).

В отличие от многих профессиональных сред, среда разработки PascalABC.NET не имеет громоздкого интерфейса и не создает множество дополнительных вспомогательных файлов на диске при компиляции программы. Для небольших программ это позволяет соблюсти принцип Одна программа - один файл на диске.

В среде PascalABC.NET большое внимание уделено связи запущенной программы с оболочкой: консольная программа, запущенная из-под оболочки, осуществляет ввод-вывод в специальное окно, встроенное в оболочку. Можно также запустить несколько программ одновременно - все они будут контролироваться оболочкой.

Интегрированная среда PascalABC.NET позволяет переключать в настройках русский и английский язык, при этом локализованы не только элементы интерфейса, но и сообщения об ошибках.

Кроме этого, внутренние представления PascalABC.NET позволяют создавать компиляторы других языков программирования и встраивать их в среду разработки с помощью специальных плагинов.

Специализированные модули для обучения

Платформа Microsoft.NET обеспечивает PascalABC.NET стандартной библиотекой, состоящей из огромного количества класссов для решения практически любых задач: от алгоритмических до прикладных. Именно поэтому в PascalABC.NET отсутствует необходимость в разработке большого числа собственных модулей.

Собственные модули, которые имеются в PascalABC.NET, ориентированы именно на начальное обучение программированию.

Для обучения программированию школьников реализованы модули классических школьных исполнителей Робот и Чертежник, содержащие около двухсот автоматически проверяемых заданий на основные конструкции языка программирования.

Кроме этого, среда PascalABC.NET содержит модуль электронного задачника Programming Taskbook (автор Абрамян М.Э.), позволяющий осуществлять автоматическую постановку и проверку заданий. Имеются также модули для преподавателя, позволяющие создавать задания для исполнителей Робот, Чертежник и электронного задачника.

Модуль растровой графики GraphABC и модуль векторных графических объектов ABCObjects могут быть использованы для создания простейших графических. а также интерактивных анимационных приложений, управляемых событиями.

Следует также отметить студенческие модули: модуль Collections упрощенных коллекций, модуль Arrays для простейших операций с динамическими массивами и модуль Forms для ручного создания простых приложений с оконным пользовательским интерфейсом.

Отличия языка PascalABC.NET от Delphi

Добавлено

1. Операции += -= для событий .NET и для процедурных переменных.

2. Операции += -= *= для целых и += -= *= /= для вещественных.

3. Операция += для строк.

4. Подпрограммы с переменным числом параметров.

5. Операция new для вызова конструктора (ident := new type_name(params);).

6. Операция new для создания динамического массива.

7. Операция typeof.

8. Тип sequence of T.

9. Использование uses для подключения пространств имен .NET (реализовано в Delphi Prism).

10. Вид доступа internal (наряду с public, private, protected).

11. Инициализация переменных: var a: integer := 1;

12. Инициализация переменных: var a := 1;

13. Объявление локальных переменных в блоке.

14. Объявление параметра цикла в заголовке цикла: for var i := 1 to 10 do, foreach var x in a do.

15. Оператор lock, обеспечивающий синхронизацию потоков.

16. Методы в записях.

17. Инициализаторы полей в классах и записях.

18. Обобщенные классы (generics).

19. Реализованы типизированные файлы (в отличие от Delphi Prism, где они убраны).

20. Упрощенный синтаксис модулей.

21. Описание методов внутри интерфейса класса или записи.

22. Реализация записью интерфейса.

23. Методы расширения.

24. Лямбда-выражения.

Изменено

1. Только сокращенное вычисление логических выражений.

2. Другой синтаксис foreach.

3. Интерфейсы interface в стиле .NET.

4. Другой синтаксис перегрузки операций.

5. Статические методы классов вместо классовых методов. Отсутствие типа TClass.

6. Деструкторы оставлены лишь для совместимости и не выполняют никаких действий.

7. Тип object - синоним System.Object.

8. Тип exception - синоним System.Exception.

9. Индексация string с 1, директива переключения на индексацию с 0.

10. Процедура write выводит любые типы.

11. Структурная эквивалентность типов для процедурных переменных, динамических массивов, типизированных указателей и множеств (в Delphi Object Pascal - именная эквивалентность типов за исключением открытых массивов).

12. Множества на базе произвольных типов (set of string).

13. Запрет использования указателей на управляемую память.

14. Процедурные переменные (делегаты) вместо procedure of object.