Обновить

Комментарии 35

Только чистый Си по заветам старой школы. С89

В старой школе у нас информатика была только в 10-11м классе, и ходили мы на нее в отдельно-стоящее учреждение. 90-е.

Честно говоря, уж коли речь идет о школе, ну или по крайней мере школьных годах обучаемого куда полезней было бы показать нужность и полезность программирования, вместо дидактичности и назидательности. Представьте, что школьников на уроках русского начинали бы учить не с современного русского, а с древнерусского. Ну а что: “будет знать основы - легко выучит потом не только русский, но и белорусский и болгарский”, "русский потом будет лучше понятен - сразу будет видно почему различаются формы “в лесу” и “о лесе”, “без проблем перейдет на церковно-славянский, а он до сих пор используется”, вот только школьник за всем “вельми” и “понеже” нифига не поймет зачем ему вообще все это, и как это связано со способностью в чатике в роблоксе переписываться

Все же отношения между Паскалем и другими языками не такое как между русским и древнерусским, когда одно есть следствие развития другого. В Паскале нет многих фич и возможностей, которые все равно не будут понятны начинающим, но он вполне себе рабочий. В рейтингах языков программирования до сих пор фигурирует 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 изначально написаны на плюсах. То есть если ты уже знаешь дельфи - можно найти ему применение, если только учишься, то почему бы не взять что-то более мейнстримовое? Тем более, что мы опять же о школьниках, на которых практичность влияет очень сильно

Так ведь о том и речь. Паскаль - проще для обучения. Не забивает голову не нужными вещами. А современный Паскаль позволяет и полезные вещи делать. Неужели будет сложно увлечь школьников тем, что они могут очень легко и просто, без глубокого изучения создавать себе на Андроид приложение? Тем более, что в Делфи нет никаких отличий от того, для какой платформы создаётся проект. Переключил платформу и собрал под нужную тут же.

Так и питон не забивает, даже еще лучше чем паскаль не забивает, а распространённость у него на 2 порядка выше. Особенно если мы говорим о делфи

В Питоне больше всего уникальных, нигде более не встречающихся, конструкций. Это не говоря об отсутствующих операторных скобках.

Вы еще Kotlin не видели...

“Си слишком сложно, в питоне много магии, поэтому паскаль” 

Да, если это информатика в средних классах. Но сомнительно в старших или в системе дополнительного образования.

Для общего образования есть такие вещи как "рабочие программы на федеральном уровне", которые подробно расписывают содержание обучения. Там никто не пытается "заинтересовать" чем-то учащихся. Заинтересовывать - проблема учителя. И если почитать эти "программы", то там куда лучше все ложится под Паскаль. Учебник Полякова, перешедший на Python, уже страдает рядом извращений, когда тема вроде бы есть, а ее практической реализации под Python нет.

Если спросить "зачем такие программы", нельзя ли посвободней. Можно. Но учителя в большинстве своем так устроены, что или им дается четкий алгоритм, что учить и где инфа, или они не будут знать что делать вообще.

Ну, конечно, с учетом программ и регламентов - да, хоть что-то пусть преподают, а не эксель с пейнтом, как у нас в школе было. О достоинствах языков для обучения я рассуждал скорее в “общем”, как если бы была программа под каждый язык

Java, кстати упоминается в федеральной программе для 10-11х (тех, что у меня есть, возможно есть другие версии учебных программ):

Странно, что они выкосили Паскаль. В том числе из 7-9х классов. Хотя в ЕГЭ он вроде все еще есть.

Школьный курс информатики это, как по мне, вообще какой-то химерозавр с неясными целями: это толи курс базовой компьютерной грамотности, толи основы программирования, толи база computer science с теоремой Шеннона и всем таким

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

Вопрос в глубине. Ну и можно поспорить: я вот уже 16 лет тружусь разработчиком, а слепым методом печати так и не овладел. Да и с английским непонятно - половина класса ведь обычно немецкий/французский учат

Поэтому в школах победит Python. Есть PyCharm, где автодополнение лучше чем где бы ни было. Синтаксис языка прост. Джаву там не осилить.

Но у Паскаля есть свой шарм. Поймут те, кто его пробовал. Будет жалко если язык будет утерян как используемый хотя бы для обучения.

Джаву там не осилить.

У джавы в минимальной программе много бойлерплейта, который объяснить не сведущему в программировании трудно (человек еще про переменные не в курсе, а ему сразу классы, статические методы), а “это все вам пока не надо, просто запомните” ломают понимание, поэтому, да, вероятно питон

PyCharm без ухищрений уже даже не скачать. Ну и это очень странный тезис. Учить программировать в конкретной IDE? Не профанация ли это обучения?

Если над учителем висит план и необходимость освоить набор знаний и это главное, то зачем делать сложно, если можно просто.

Другое дело дополнительное образование. Тут можно и клавиатурный тренажер в начале занятия вставлять минут на 10 и по 15 минут объяснять английские слова, и почему синтаксис такой, порассуждать о жизни. Да и язык можно взять посложнее, чем Python.

Его наследник, Delphi, вполне актуален и используется много где. В том числе для новых проектов

Скрытый текст

Можете посмотреть мои репозитории, есть и превью у некоторых проектов. Вот один из них
https://github.com/HemulGM/ChatGPT

Я не спорю, что Delphi занимает свою нишу. Однако в образовании вместо его IDE использовался Lazarus. Но он так себе на мой взгляд.

Паскаль дает вам не только указатели, структуры данных, ООП, но и GUI в среде Lazarus, что в добавок позволяет на практике познакомиться с RAD/визуальным программированием

Если смотрим в эти стороны, то не стоит забывать и Pascal.ABC

В Linux среда устанавливается с дополнительным ПО, а при запуске выглядит так себе. Проще пользоваться Free Pascal.

Это печаль для разработчиков Pascal.ABC, если школам навязывается Linux (я только "за"), но они завязались на Windows.

Чем плох go для старта обучения?

  1. Он относительно простой.

  2. Достаточно низкоуровневый если захотеть

  3. Используется в реальной жизни

  4. Богатый тулинг для дальнейшего развития

  5. Переносимые бинарники (можно запустить свою программу у друга)

  6. Позволяет достаточно легко прыгнуть в Си, для желающих копаться "в кишочках", т.к. синтаксически похож, компилируемый и в целом есть unsafe, через который можно сделать "первое прикосновение"

Минусы конечно тоже есть, но по-моему неплохой кандидат.

Может и хорош. Но отсутствует методическая база. Кроме учеников есть еще учителя. Они в большинстве своем не станут работать с неизвестным.

Не то, чтобы я это предлагал совсем всерьёз, всё таки язык укрепивший во втором ряду и пожалуй имеющий репутацию для «гиков» (впрочем первое название намекает)...

Но в общем Nim, семантически явно один из языков семейства Паскаля, говорят на Modula-3 очень похож (сам чего, чего, а третей модулы в руках не держал), с синтаксисом слегка мимикрирующим под Питон.

На модулу не похож.

Для обучения, ну сложноват

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации