Тут это всё обсуждение вашей книги - я не могу. Я бы только порекомендовал всем в своих сообщениях убрать наиболее яростные высказывания про школьных учителей, пусть и фигуральные. Или чем-то их заменить )
Питон - нормальный язык и вполне учебный. Плохого в нем ничего нет, есть особенности. Из-за динамический типизации он немного другой - диагностировать, распознавать и исправлять ошибки в нем надо по-другому. С нашей точки зрения это происходит сложнее. Может, кто-то из учителей привык и считает по-другому.
Отступы во все ЯП пришли из паскаля. Если кто-то не форматирует код - сам дурак. Это не слабость ЯП.
Во всех ЯП отступы, фигурные скобки и ключевые слова выполняют одну и ту же функцию - выделить блоки кода. И ТОЛЬКО в паскале это сделано РАЗУМНО. begin - начало блока end - конец Если немного знать английский (а его изучают с первого класса; да и вообще выучить 20-30 английских слов даже для меня не проблема). Фигурные скобки - уже абстракция. Отступы - это вообще виртуальное обозначение блоков.
Вы говорите с позиции взрослого человека, который уже немало знает о программировании. У детей слабо развито абстрактное мышление. Отступы ничего ему не говорят. Фигурные скобки лучше, но это тоже абстракция. Ключевые слова BEGIN-END - это вполне конкретное обозначение начала и конца блока. Для детей это гораздо понятнее, чем отступы и фигурные скобки.
Да, ключевые слова писать дольше, чем просто сделать отступ. Так мы и говорим об УЧЕБНОМ языке, а не об языке, на котором можно быстро разработать прототип будущей серьёзной программы.
В книгах об алгоритмах не используется конкретный ЯП, там алгоритм объясняется не некоем абстрактном ЯП, который весьма похож на паскаль. Почему? - Да потому что паскаль наиболее близок к естественному языку. А естественный язык само собой наиболее понятен детям.
Что такое def, elif? procedure, function, if - else if - else - then - это же человеческие слова. В паскале подпрограммы делятся на процедуры и функции, что логичнее, чем только функции, которые или возвращают, или не возвращают значения.
А динамическая типизация Питона - вот она и учит плохому. Да, в Питоне нельзя не форматировать код. Зато можно лепить переменные где угодно и как угодно. И чему хорошему это учит?
Всё познаётся в сравнении. В каких именно местах школьной программы Питон имеет ощутимые преимущества перед паскалем? В Питоне нет массивов. Зато есть списки - вроде бы не беда. А с двумерными массивами уже беда, потому что нужно создавать списки списков весьма неприятным способом.
И в Питоне, и в паскале есть много хорошего. И плохого тоже немало. Нет в мире ничего идеального. Но если говорить об обучении, то паскаль всегда будет лучше Питона.
END.
Попробуйте детям объяснить что такое void. Мне бы было очень интересно на это посмотреть.
Раз уж в этом замечательном разделе пошла такая болталка по языкам программирования, позволю себе свеженькое:
Везде есть разумные люди. Так что трагедия с ЯП вполне себе оптимистическая.
BEGIN!
На самом деле - из Algol-60:
Пример листинга для тех, кто сомневается ))) Это 1960-й год, уважаемые! Почти 60 лет назад!
Да как сказать… беда, но это не Питона беда, это иное. Беда в том, что списки эти школьникам предлагают считать (и называть (!) массивами) - и это несмотря на то, что совсем иные массивы есть в NumPy.
А при изучении Паскаля нет нужды детям объяснять про какой-то void. как и объяснять заморочки вроде
int value = 7;
void *voidPtr = &value;
int *intPtr = static_cast<int*>(voidPtr);
Это и плюс Паскалю.
В связи с изменением нумерации в текстах всех приведенных в книге программ, весь материал был перевыложен 03.03.2019. Также, внесены изменения и дополнения, связанные с пересмотром разработчиками имен и особенностей некоторых функций и расширений. В части 5 добавлено упущенное мной описание расширения .SelectMany.
В связи с добавлением функционала в метод расширения .foreach для массивов, добавлен подраздел 5.3.3.2 и раздел 8.1.8, что повлекло изменения в последующей нумерации. Обновлены части 5, 6, 8 и сводное оглавление.
Странно, у меня последняя версия и я не вижу ничего нового.
И, по крайней мере, в пункте 5.3.3.2 тоже не вижу ничего нового.
Файлы были помещены несколько часов назад, даты на них пока что указаны старые (03.03.19). Если у Вас действительно последняя версия, то стр. 149 начинается подразделом, которого прежде не было:
5.3.3.2 Перебор элементов массива (.ForEach)
Возможно мы друг друга не поняли… Следующую фразу:
Я понимаю как добавление функционала в PABCSystem
, которое я не заметил.
После того как написал вчера написал - я ещё посмотрел через лог черепахи гита. И в изменениях PABCSystem
за последний месяц - нет ничего про .ForEach
.
Та фраза означала что то другое?
Фраза приведена в теме, касающейся не программного продукта, а материала, описывающего этот продукт. Посему, конечно же, подобные фразы могут относиться лишь к описанию, а не к функционалу. Иными словами, речь шла о добавлении материала к содержимому книги. Прежде в ней не было сказано ничего об использовании метода .foreach
с одномерными массивами и матрицами.
Я еще раз вынужден напомнить, что все материалы, касающиеся функционала PascalABC.NЕТ, берутся либо на основе Справки, либо на основе информации, полученной непосредственно от разработчиков. Изучение текcтов c Github сюда не входит. В данном случае, соответствующие сведения были найдены в Справке и после уточнения у разработчиков были добавлены в книгу.
Перевыложена “Часть 3. Логика в программе”. Сделаны незначительные редакционные правки.
Выложена “Часть 9. Файлы”.
Выложена “Часть 10. Стандартные коллекции”.
Выложена “Часть 11. Модули и библиотеки”.
11.1.1.6:
uses имя in путь_к_файлу\имя.pas;
Интересно, а это вы откуда достали? Я вроде за всем слежу внимательно, но о таком уровне технологий и не подозревал)))