LINUX.ORG.RU

История изменений

Исправление liksys, (текущая версия) :

Паскаль тоже может подойти

Паскаль объективно мертв и бесполезен. На нем почти нет живых развивающихся проектов, за единичными исключениями. Питон же обеспечивает возможности и для обучения, и реального применения, что очень полезно. У MIT курс обучения программированию построен на питоне. Я бы вообще включал задания в духе «решить проблему популярного проекта на гитхабе» в качестве курсовой работы для студентов 3-4 курса.

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

Я насмотрелся на студентов, которые «знают» дофига языков - и все по чуть-чуть, и в итоге писать не могут ни на чем. Подтверждение моих слов - курсы по программированию от компаний типа яндекса, и стажировки у них же. Это способ получить годных программистов, а не академщиков типа столярова, которые два маллока без утечки не в состоянии сделать.

Ну в ссылке, по-моему, предоставлен хороший повод не называть Си низкоуровневым.

Чел выдает желаемое за действительное. Совершенно не важно, что там у процессора или компилятора скрыто и наоптимизировано. Си - это буквально синтаксический сахар над ассемблером. Можно сделать простейший компилятор с тем же сишным синтаксисом, который будет напрямую транслировать код прямо в дубовый асм. Главное достоинство си (он же - недостаток для сложных проектов) - это прямая работа с памятью и указатели. На их примере ты можешь показать, что никаких строк и бигинтов на самом деле в машине нет, а есть только регионы памяти и инструкции для работы с ними. После того, как показать студенту, как в памяти конкатенируются строки, он быстро поймет, что в высокоуровневых языках тоже надо думать над оптимизацией, и «интерпретатор не стерпит».

У меня тут на столе лежит дисплей от боинга, в нем стоит полноценный Motorola 68k, на котором можно линукс запустить. Прошивка написана на ручном ассемблере, но с помощью Ghidra его можно дизассемблировать в сишный код, почистить, расковырять, что-нибудь поменять и собрать обратно. Так что да, сам по себе си - низкоуровневый. То, что в его компиляторах и процах понакручивали - совершенно не важно. Ты в любом случае работаешь с максимально возможным низким уровнем, ниже уже только ассемблерные вставки, которые делают только в крайних случаях.

Исходная версия liksys, :

Паскаль тоже может подойти

Паскаль объективно мертв и бесполезен. На нем почти нет живых развивающихся проектов, за единичным исключением. Питон обеспечивает возможности и для обучения, и реального применения, что очень полезно. У MIT курс обучения программированию построен на питоне. Я бы вообще включал задания в духе «решить проблему популярного проекта на гитхабе» в качестве курсовой работы для студентов 3-4 курса.

Проблема паскаля и его фанбоев в том, что обучение на нем оторвано от реальности. В реальности код пишут не так, как в академических учебниках, и проекты строятся иначе. Учебные часы ограничены, и вместо траты их на бесполезный язык, можно сразу учить актуальный, а оставшееся время потратить на что-то более полезное. Я насмотрелся на студентов, которые «знают» дофига языков - и все по чуть-чуть, и в итоге писать не могут ни на чем.

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

Ну в ссылке, по-моему, предоставлен хороший повод не называть Си низкоуровневым.

Чел выдает желаемое за действительное. Совершенно не важно, что там у процессора или компилятора скрыто и наоптимизировано. Си - это буквально синтаксический сахар над ассемблером. Можно сделать простейший компилятор с тем же сишным синтаксисом, который будет напрямую транслировать код прямо в дубовый асм. Главное достоинство си (он же - недостаток для сложных проектов) - это прямая работа с памятью и указатели. На их примере ты можешь показать, что никаких строк и бигинтов на самом деле в машине нет, а есть только регионы памяти и инструкции для работы с ними. После того, как показать студенту, как в памяти конкатенируются строки, он быстро поймет, что в высокоуровневых языках тоже надо думать над оптимизацией, и «интерпретатор не стерпит».

У меня тут на столе лежит дисплей от боинга, в нем стоит полноценный Motorola 68k, на котором можно линукс запустить. Прошивка написана на ручном ассемблере, но с помощью Ghidra его можно дизассемблировать в сишный код, почистить, расковырять, что-нибудь поменять и собрать обратно. Так что да, сам по себе си - низкоуровневый. То, что в его компиляторах и процах понакручивали - совершенно не важно. Ты в любом случае работаешь с максимально возможным низким уровнем, ниже уже только ассемблерные вставки, которые делают только в крайних случаях.