
Комментарии 35
Только чистый Си по заветам старой школы. С89
Честно говоря, уж коли речь идет о школе, ну или по крайней мере школьных годах обучаемого куда полезней было бы показать нужность и полезность программирования, вместо дидактичности и назидательности. Представьте, что школьников на уроках русского начинали бы учить не с современного русского, а с древнерусского. Ну а что: “будет знать основы - легко выучит потом не только русский, но и белорусский и болгарский”, "русский потом будет лучше понятен - сразу будет видно почему различаются формы “в лесу” и “о лесе”, “без проблем перейдет на церковно-славянский, а он до сих пор используется”, вот только школьник за всем “вельми” и “понеже” нифига не поймет зачем ему вообще все это, и как это связано со способностью в чатике в роблоксе переписываться
Все же отношения между Паскалем и другими языками не такое как между русским и древнерусским, когда одно есть следствие развития другого. В Паскале нет многих фич и возможностей, которые все равно не будут понятны начинающим, но он вполне себе рабочий. В рейтингах языков программирования до сих пор фигурирует Delphi, даже ближе к топу.
Чтобы объяснить "нужность и полезность" программирования нужны наглядные практические примеры. Их не так просто придумать, а сложно адаптировать под восприятие малолетних. Был случай, когда один начал возмущаться: "зачем все эти примеры, что из этого, где во всем этом настоящее программирование". Подтекст там читался: "на чем уже там рубят бабло, не на этой же фигне из примеров". Единственное что пришло в голову на тот момент сказать, что реальные программные разработки сложны, высоко детализированы и зачастую представляют собой коммерческую тайну.
Да примерно такое же отношение - сам он давно не используется, есть некое применение у наследника (Delphi - церковно-славянский), ну и в таком духе.
Чтобы объяснить “нужность и полезность” программирования нужны наглядные практические примеры. Их не так просто придумать
Да в принципе и не так сложно - если абстрагироваться от паскаля и взять питон/джаву то на них пишутся моды к игрушкам, на сях (на плюсах конечно, но в рамках обучение вполне можно сишным подмножество на 99% обходиться) программируется ардуинка. Этим и плох паскаль - тем что он как-то в современном мире почти не используется, не тем, что он сам плох. Он хорош, наверное, для обучения “а-ля-университет”, где 4 года пляшем “от печки” прежде чем что-то по специальности узнаем, зато все основательно, однако я уверен, что бОльшая часть пришедших в программирование через хобби начали кодить чтобы решать какие-то свои не учебные задачи
Тех, кто начинает кодить самостоятельно, единицы. А преподать надо всем. В добавок уровень педагогов не такой, чтобы они легко и просто на сях и ардуинках. Я подозреваю, что инициативы Яндекс.Лицея в регионах сдулись. Потому что, несмотря на то что открылось много IT-центров и там засели стада методистов, тех, кто может что-то реально дать детям, нет или не за эти деньги.
Ну тут и вопрос - что преподать и зачем. Речь, как я понимаю, вовсе не о студентах факультета прикладной математики, а об обычных школьниках, которые еще и всем этим не шибко интересуются. Учить их с паскаля это как учить их математике с римских цифр (или наоборот с введения поля действительных чисел и определения операции сложения над ним). Тем более си в базе своей не сильно сложнее паскаля
Учить Паскалю - ничем не отличается от обучения чистому Си. Паскаль в чистом виде не существует уже пару десятков лет. Вообще. Нигде. ТурбоПаскаль - это не чистый Паскаль.
Если и говорить о параллелях, то Си - Паскаль, С++ - Delphi. Потому что как и C++, Delphi развивается и изменяется с момент своего появления и до сих пор.
А помимо Delphi, как наследника синтаксиса языка Паскаль, этот синтаксис много где используется, например, PL/SQL, GameMaker, PascalScript и несколько промышленных проектов для программирования микроконтроллеров (например, mikroPascal).
Или же использовать напрямую Delphi. В чем проблема или может ограничения? Это по сути единственный конкурент Qt-комбайну. Больше нет ни одного удобного в разработке (да и Qt далеко не верх совершенства) инструмента, для создания нативных приложений под разные платформы. Delphi, позволяет создавать приложения с GUI и без, под любые платформы, с одной кодовой базой. С нативным и не нативным GUI.
Покажи это студентам и пусть делают себе что угодно.
У автора тезис - “Си слишком сложно, в питоне много магии, поэтому паскаль” - очевидно речь идет о каких-то достаточно ванильных, хотя, может и осовремененных версиях. Если юзать delphi то там “магии” уже будет не меньше, чем в питоне, и указатели как в сях тоже есть, то есть основное преимущество теряется, можно тогда сразу Jave или шарпу учить. Как ни крути Delphi намного меньше распространен, по сравнению, с упомянутым вами Qt, или даже, простихосспаде, электроном
Если говорить о "магии", как о синт. сахаре, то де, не меньше. Сахара в Delphi тоже давно завезли. Но если говорить, о "магии", как о том, что конструкции языковые слишком много на себя берут, то нет, Delphi в этом плане так же прост, как и Pascal.
Delphi как и Паскаль полностью позволяет обойтись без указателей при написании любых алгоритмов. При этом алгоритм остается легко читаем и именно в этом я вижу смысл статьи. Каждая конструкция и оператор явно показывает что он делает, а если не понимаешь, то достаточно перевести слово с англ. на русский и понять смысл конструкции.
Т.е., если брать только Delphi. То это выглядит так:
1. Базово простой синтаксис Паскаля.
2. Создавать можно что угодно
3. Если нужно, можно обучить и указателям и низкоуровневым операциям (выделение/освобождение памяти), pointer math, работа с числами как с битами.
4. Можно и GUI создавать очень просто, в дизайнере, а можно создавать кодом, для непосредственного обучения.
И всё это в одной программе (среде разработки), без настройки компилятора, линтера, линкера, сборщика и т.д.
Если Delphi и меньше распространен, то это как раз следствие того, что ему мало обучают. Будут больше обучать, именно Delphi, а не старому консольному ТрубоПаскалю или PascalABC, то и спрос будет выше.
Если мы говорим об гуишном приложении, то все что делает VCL внутри это магия ну хуже какого-нибудь range-based for, с другой стороны и в питоне никто этим пользоваться не заставляет. На уровне “разверните строку задом наперед” и паскаль и питон и си будут выглядеть плюс-минус одинаково. Ну и IDE где ничего настраивать не надо есть и для плюсов и для питона и для го.
Если Delphi и меньше распространен, то это как раз следствие того, что ему мало обучают.
Можно поспорить: “немецкий распространен меньше английского и испанского потому что ему меньше учат” - но это двусторонняя связь больше учат то, что больше распространено. У Delphi несколько ограниченная ниша - микросервисы на нем не пишут, как скриптовый язык в движок типа юнити его тоже не завезли, кучи либ на все случаи жизни для быстрого прототипирования как у питона у него тоже нет. Вот, кстати, портировать на него ардуино может быть и зашло
В VCL нет никакой магии. Тем более, что всё это открыто для чтения. Магия именно в конструкциях, которые на самом деле разворачиваются в очень большой код. И не только VCL в Delphi есть.
Пишут на Delphi и микросервисы и даже фуллстек или только фронтенд решения (Horse, TMS WebCore, MARS, mORMot, DMVC, dext). И как скриптовый язык он используется (Game Maker Studio именно Pascal-синтаксис использует), либо же RayLib, GLXScene, SDL. И кучи готовых библиотек на Делфи тоже хватает. Всё что хочешь есть
Мы ведь о новичках, даже школьниках, не студентах. Им VCL, даже если они ее прочтут будут такой же магией как и range в питоне. Тем более, когда выяснится, что оно гдето зовет CreateWindowExW.
Пишут, но сильно меньше, чем на мейнстримовых языках, тем более “использует синтаксис” - ну тогда движок Godot использует Python-синтаксис. RayLib, SDL изначально написаны на плюсах. То есть если ты уже знаешь дельфи - можно найти ему применение, если только учишься, то почему бы не взять что-то более мейнстримовое? Тем более, что мы опять же о школьниках, на которых практичность влияет очень сильно
Так ведь о том и речь. Паскаль - проще для обучения. Не забивает голову не нужными вещами. А современный Паскаль позволяет и полезные вещи делать. Неужели будет сложно увлечь школьников тем, что они могут очень легко и просто, без глубокого изучения создавать себе на Андроид приложение? Тем более, что в Делфи нет никаких отличий от того, для какой платформы создаётся проект. Переключил платформу и собрал под нужную тут же.
“Си слишком сложно, в питоне много магии, поэтому паскаль”
Да, если это информатика в средних классах. Но сомнительно в старших или в системе дополнительного образования.
Для общего образования есть такие вещи как "рабочие программы на федеральном уровне", которые подробно расписывают содержание обучения. Там никто не пытается "заинтересовать" чем-то учащихся. Заинтересовывать - проблема учителя. И если почитать эти "программы", то там куда лучше все ложится под Паскаль. Учебник Полякова, перешедший на Python, уже страдает рядом извращений, когда тема вроде бы есть, а ее практической реализации под Python нет.
Если спросить "зачем такие программы", нельзя ли посвободней. Можно. Но учителя в большинстве своем так устроены, что или им дается четкий алгоритм, что учить и где инфа, или они не будут знать что делать вообще.
Ну, конечно, с учетом программ и регламентов - да, хоть что-то пусть преподают, а не эксель с пейнтом, как у нас в школе было. О достоинствах языков для обучения я рассуждал скорее в “общем”, как если бы была программа под каждый язык
Java, кстати упоминается в федеральной программе для 10-11х (тех, что у меня есть, возможно есть другие версии учебных программ):

Странно, что они выкосили Паскаль. В том числе из 7-9х классов. Хотя в ЕГЭ он вроде все еще есть.
Школьный курс информатики это, как по мне, вообще какой-то химерозавр с неясными целями: это толи курс базовой компьютерной грамотности, толи основы программирования, толи база computer science с теоремой Шеннона и всем таким
Программировать без компьютерной грамотности почти невозможно. Слепой метод печати, начальный английский и пользователь ПК уже должны быть в навыках.
Вопрос в глубине. Ну и можно поспорить: я вот уже 16 лет тружусь разработчиком, а слепым методом печати так и не овладел. Да и с английским непонятно - половина класса ведь обычно немецкий/французский учат
Поэтому в школах победит Python. Есть PyCharm, где автодополнение лучше чем где бы ни было. Синтаксис языка прост. Джаву там не осилить.
Но у Паскаля есть свой шарм. Поймут те, кто его пробовал. Будет жалко если язык будет утерян как используемый хотя бы для обучения.
Джаву там не осилить.
У джавы в минимальной программе много бойлерплейта, который объяснить не сведущему в программировании трудно (человек еще про переменные не в курсе, а ему сразу классы, статические методы), а “это все вам пока не надо, просто запомните” ломают понимание, поэтому, да, вероятно питон
PyCharm без ухищрений уже даже не скачать. Ну и это очень странный тезис. Учить программировать в конкретной IDE? Не профанация ли это обучения?
Если над учителем висит план и необходимость освоить набор знаний и это главное, то зачем делать сложно, если можно просто.
Другое дело дополнительное образование. Тут можно и клавиатурный тренажер в начале занятия вставлять минут на 10 и по 15 минут объяснять английские слова, и почему синтаксис такой, порассуждать о жизни. Да и язык можно взять посложнее, чем Python.
Его наследник, Delphi, вполне актуален и используется много где. В том числе для новых проектов
Скрытый текст
Можете посмотреть мои репозитории, есть и превью у некоторых проектов. Вот один из них
https://github.com/HemulGM/ChatGPT
Паскаль дает вам не только указатели, структуры данных, ООП, но и GUI в среде Lazarus, что в добавок позволяет на практике познакомиться с RAD/визуальным программированием
Если смотрим в эти стороны, то не стоит забывать и Pascal.ABC
Чем плох go для старта обучения?
Он относительно простой.
Достаточно низкоуровневый если захотеть
Используется в реальной жизни
Богатый тулинг для дальнейшего развития
Переносимые бинарники (можно запустить свою программу у друга)
Позволяет достаточно легко прыгнуть в Си, для желающих копаться "в кишочках", т.к. синтаксически похож, компилируемый и в целом есть unsafe, через который можно сделать "первое прикосновение"
Минусы конечно тоже есть, но по-моему неплохой кандидат.
Не то, чтобы я это предлагал совсем всерьёз, всё таки язык укрепивший во втором ряду и пожалуй имеющий репутацию для «гиков» (впрочем первое название намекает)...
Но в общем Nim, семантически явно один из языков семейства Паскаля, говорят на Modula-3 очень похож (сам чего, чего, а третей модулы в руках не держал), с синтаксисом слегка мимикрирующим под Питон.
Место Питона, Си и Паскаля в образовательном процессе