Минобрнауки направило на рассмотрение в Госдуму законопроект о запрете гражданам России учить Паскаль на уроках информатики и программирования. В ведомстве пояснили, что мера призвана ликвидировать последствия изучения паскаля студентами 90-х годов прошлого столетия и защитить национальные интересы от деградации программистов.
«Если посмотреть на сегодняшнюю политическую ситуацию, то заметно, что её раскачивают люди, изучавшие Паскаль и по различным книгам от Епанешникова, Фролова и прочих. Российское высшее образование - одно из лучших в мире, что подтверждается большим количеством обучающихся у нас иностранных студентов.
Зачем же молодёжь еще до сих пор учит паскаль? Причин несколько: от нехватки интеллекта для изучения 1С в отечественных вузах до непосредственной измены Родине. Поэтому, нечего нашим гражданам учиться паскалю и раскачивать лодку. А кто не смог поступить в вуз, пусть получает профессию 1Сника. Рабочие руки тоже нужны», - заявил министр образования Сергей Кравцов.
Вместе с запретом на обучение паскалю в ведомстве предлагают разработать комплекс мер против нарушителей нового закона. Главным наказанием для них станет лишение российского гражданства.
Напоминаю, что он является автором языка программирования Паскаль.
…а также Модула и Оберон. По мнению самого Вирта Паскаль является устаревшим и в нём много ошибочных решений, вместо него нужно использовать Оберон. Delphi, Object Pascal (Free Pascal Compiler) являются развитием не в ту сторону.
Был один такой в моём чате. Постоянно форсил этот PascalABC.Net. Я его забанил чтобы не создавал негативную атмосферу в чате. А то всё время всем на мозги капал, что, якобы, даже Free Pascal уже не торт когда есть PascalABC.Net.
Кто чем хочет тем и пользуется. Однако, PascalABC.Net основан на виндовом дотнете. Хотя, конечно, есть Mono и тот человек говорил, что, дескать, скоро должна появиться версия и дотнет Паскаля под линуксы. Однако, лично я продолжаю считать, что линуксвею больше соответствует именно стандартный Free Pascal.
И не одной. В книгах Вирта описана вся основа компьютерных технологий от алгоритмов до операционных систем с GUI, компиляторов и архитектуры процессора.
А Брайан Керниган пишет книжки по Go, да и в Си не всё идеально. Ну и что теперь? Нет идеальных языков программирования.
Поэтому каждый просто юзает то, что ему больше нравится. А Модула и Оберон гораздо менее популярны (и с их компиляторами под линуксы проблем больше чем с компилятором той же Ады) чем Паскаль.
Ты в курсе про бородатый мем середины нулевых про выкинутую сгоревшую материнку, из-за неправильно закрытого окна при визуализации множества Мандельброта?
Ну окно студент закрыл по крестику - а программа продолжала работать.
1 апреля 1999 года Вирт вышел на пенсию, достигнув предельного для государственного служащего в Швейцарии возраста 65 лет (ETH — государственный ВУЗ, его работники являются госслужащими и их работа подчиняется соответствующему законодательству).
Только в обучении программированию. Писать что-то серьёзное на паскале это мазохизм.
Что-то системное проще (и комфортнее) написать на сишке, гуйню намного удобнее при должных знаниях делать в Qt
Хотя порог входа в дельфи/лазарус для формошлепания конечно очень низкий, и при незнании плюсовского-сишного бэкграунда они заходят отлично. Как и какой-нибудь гамбас, ахахахаха
и с их компиляторами под линуксы проблем больше чем с компилятором той же Ады
Компиляторы разных Оберонов под Линукс есть, только они обычно не используют типичный для Си механизм сборки, там всё своё. FreePascal насколько я понимаю прогнулся под сишную систему сборки.
Это ещё почему? Хороший язык, мощная стандартная библиотека, более высокоуровневый чем Си (меньше нужно возиться с указателями), есть строковый тип из коробки, можно перезагрузить классические строковые функции юникодными версиями (чего нельзя в Си),... и т.д.
На python нельзя обучить некоторым важным концепциям, поэтому он не годится для первого языка. Java запрещена в школе, и правильно, потому что язык слишком сложен для первого языка и в нем тоже отсутствуют некоторые важные вещи.
Сначала человек должен научиться программировать, а уже потом выбирать язык. Под первый язык годятся только 2 языка – паскаль и си, но си слишком сложен в качестве первого языка.
Видел я код чуваков, которые с Java начинают – там такой кромешный ужас с одними статическими методами, что уж лучше бы они писали это на паскале
Проблема же в том, что новички первоначально и на питончике, и на джаве, семантически будут писать так же, как на паскале. В простом себе императивном стиле (потому что с него обычно и начинают обучать программированию). Проблема в том, что эта императивщина на ту же джаву натягивается как сова на глобус.
Так что уж лучше пусть новички начинают с хорошего и академически спроектированного императивного языка (такого как паскаль), а когда поймут его ограничения и недостатки, дорога им будет везде открыта, хоть в питончег, хоть в джаву
Попробуй объяснить программу hello world либо без отсылок вперед либо без лекции на полтора часа. В паскале ссылок вперед нет вообще, не нужно объяснять на начальных этапах что-либо магией либо фразой «это мы разберем через полгода, а сейчас просто вызубрите».
Дело не только в #include. И uses crt никто на первом уроке не пишет, да и вообще без этого модуля можно прожить всё время обучению паскалю, поэтому «замечание» мимо кассы.
И вообще ты кто такой и какой у сколько лет у тебя опыта в преподавании? Если 0, то иди гуляй, мне твои «советы» не нужны.
Тем, что даже для полного понимания простой программы «считай имя пользователя с клавиатуры и выведи ‘Привет, ${username}’» нужно уже знать про модель памяти и указатели.
Ну и удачи на первой лекции по сишке объяснить ученику, почему число с stdin считавается с амперсантом
scanf("%d", &numVar)
А строка без
scanf("%s", strVar)
А потом ещё объяснять, почему за код выше в реальном приложении по хорошему сразу увольняют с работы.
После чего можно объяснить, зачем там какие-то инклюды, что они на самом деле делают (большинство начинающих студентов почему-то думают, что там «библиотека подключается»). Ну а там и до рассказа про линтер/препроцессор недалеко
Сишку в принципе можно было бы давать в качестве первого языка, если бы самые базовые штуки (такие как строки и массивы) были построены без мозготрахания с указателями (а для начинающего указатели и адресная арифметика это реально тёмный лес). Ну и нормальные модули как в паскале не помешали бы
Еще один. Может быть внимательно посмотришь на Си программу? Что такое int main? Почему именно int? Что такое return 0? … Чтобы это всё объяснить надо на полтора часа лекцию прочитать либо не объяснять и сказать, что «так надо». На второй программе появится scanf(«%d», &i) и опять «так надо».
Ты просто жжешь. Кто ж её закроет? Пока я «крестик» на окне не нажму она не закроется. И вот такие люди смеют учить меня как преподавать и что преподавать. Зачет у меня ты уже не сдал :)
Как идентификатор. У юнитов, вон, тоже указываются имена чтобы их потом подключать. Программа тоже, как бы, юнит, только более главный и к которому подключаются юниты, но который, в свою очередь, никуда больше не подключается.
Это да. Но ведь нет реальной необходимости разбирать такую программу на первом же занятии. Обычно к этому подводят через передачу аргументов по значению и по ссылке.
А потом ещё объяснять, почему за код выше в реальном приложении по хорошему сразу увольняют с работы.
Вот именно, что можно это объяснить потом, а не сразу же.
После чего можно объяснить, зачем там какие-то инклюды
Опять же, чаще всего сначала объясняют общими словами, возможно, как «добавление нужной функциональности», а потом уже пойдут детали когда очередь дойдёт до препроцессора.
построены без мозготрахания с указателями
Возможно, хотя для меня это не было так уже сложно. Может с книжкой повезло. Мне кажется, основные проблемы у начинающего начнутся если он попытается что-то более-менее сложное написать на С. Но это вряд ли произойдёт. Скорее после изучения С будет С++, а потом Java или Python.
Ладно, сразу оговорюсь, что мой опыт с objectpascal был ограничен написанием курсового на ~2k строк, который представлял из себя игру «сокобан» с редактором уровней, загрузкой и конвертированием этих самых уровней из сети.
Но в целом позже сложилось впечатление, что язык очень сильно ограничен. В паскале нет такого хорошего метапрограммирования на шаблонах, как в c++ (и апишка стандартной библиотеки из-за этого выглядит намного топорнее), но и тащить метаданные в рантайм, как тот же питончик/джава, паскаль не может.
Ну а при работе на низком уровне (если писать что-то с сисколами, например), с сишкой тупо удобнее, тебе АПИ сразу поставляют в виде набора *.h файликов, подключай и получай сразу все структуры данных и процедуры для работы с ними. Плюс сишка сама гибче, там многие вещи можно написать короче (паскаль в этом плане слишком академичен и строг к типам), инкремент/декремент/присваивание не являются выражениями, плюс то, что в сишке и массив, и строка в коде преставлены указателем, часто наоборот даёт преимущество при работе на низком уровне.
Ну и объявлять все переменные в var’e вверху это больно, и с моей т.з. некрасиво. Для лабораторной по программированию в универе то норм, но не более :)
объявлять все переменные в var’e вверху это больно
Меня учили, что только так и нужно. Чтобы потом не искать объявления переменных по всему коду. Найти объявление переменной и пофиксить если что-то не так удобнее если все переменные объявлены в одном месте.
При чем тут проводник? Если ты программист, то у тебя в одном окне открыт редактор, а в другом - терминал. Или редактор в терминале. Хорош уже бред выдумывать.