Тут это всё обсуждение вашей книги - я не могу. Я бы только порекомендовал всем в своих сообщениях убрать наиболее яростные высказывания про школьных учителей, пусть и фигуральные. Или чем-то их заменить )
Обсуждение книги Осипова А.В. «PascalABC.NET: Введение в современное программирование»
Питон - нормальный язык и вполне учебный. Плохого в нем ничего нет, есть особенности. Из-за динамический типизации он немного другой - диагностировать, распознавать и исправлять ошибки в нем надо по-другому. С нашей точки зрения это происходит сложнее. Может, кто-то из учителей привык и считает по-другому.
Отступы во все ЯП пришли из паскаля. Если кто-то не форматирует код - сам дурак. Это не слабость ЯП.
Во всех ЯП отступы, фигурные скобки и ключевые слова выполняют одну и ту же функцию - выделить блоки кода. И ТОЛЬКО в паскале это сделано РАЗУМНО. begin - начало блока end - конец Если немного знать английский (а его изучают с первого класса; да и вообще выучить 20-30 английских слов даже для меня не проблема). Фигурные скобки - уже абстракция. Отступы - это вообще виртуальное обозначение блоков.
Вы говорите с позиции взрослого человека, который уже немало знает о программировании. У детей слабо развито абстрактное мышление. Отступы ничего ему не говорят. Фигурные скобки лучше, но это тоже абстракция. Ключевые слова BEGIN-END - это вполне конкретное обозначение начала и конца блока. Для детей это гораздо понятнее, чем отступы и фигурные скобки.
Да, ключевые слова писать дольше, чем просто сделать отступ. Так мы и говорим об УЧЕБНОМ языке, а не об языке, на котором можно быстро разработать прототип будущей серьёзной программы.
В книгах об алгоритмах не используется конкретный ЯП, там алгоритм объясняется не некоем абстрактном ЯП, который весьма похож на паскаль. Почему? - Да потому что паскаль наиболее близок к естественному языку. А естественный язык само собой наиболее понятен детям.
Что такое def, elif? procedure, function, if - else if - else - then - это же человеческие слова. В паскале подпрограммы делятся на процедуры и функции, что логичнее, чем только функции, которые или возвращают, или не возвращают значения.
А динамическая типизация Питона - вот она и учит плохому. Да, в Питоне нельзя не форматировать код. Зато можно лепить переменные где угодно и как угодно. И чему хорошему это учит?
Всё познаётся в сравнении. В каких именно местах школьной программы Питон имеет ощутимые преимущества перед паскалем? В Питоне нет массивов. Зато есть списки - вроде бы не беда. А с двумерными массивами уже беда, потому что нужно создавать списки списков весьма неприятным способом.
И в Питоне, и в паскале есть много хорошего. И плохого тоже немало. Нет в мире ничего идеального. Но если говорить об обучении, то паскаль всегда будет лучше Питона.
END.
Попробуйте детям объяснить что такое void. Мне бы было очень интересно на это посмотреть.
Раз уж в этом замечательном разделе пошла такая болталка по языкам программирования, позволю себе свеженькое:
На самом деле - из Algol-60:
Пример листинга для тех, кто сомневается ))) Это 1960-й год, уважаемые! Почти 60 лет назад!
Да как сказать… беда, но это не Питона беда, это иное. Беда в том, что списки эти школьникам предлагают считать (и называть (!) массивами) - и это несмотря на то, что совсем иные массивы есть в NumPy.
А при изучении Паскаля нет нужды детям объяснять про какой-то void. как и объяснять заморочки вроде
int value = 7;
void *voidPtr = &value;
int *intPtr = static_cast<int*>(voidPtr);