Turbo Pascal в XXI веке
Oct. 9th, 2014 10:31 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Вчера дочка одной хорошей знакомой написала мне письмо с просьбой помочь найти дистрибутив Turbo Pascal. Оказывается, школьников до сих пор учат программировать в этой среде.
Какая жуть! Нет, я ничего не имею против языка Pascal вообще, и его борландовского диалекта в частности, хотя на мой взгляд, для первоначального обучения он немножко слишком низкоуровневый.
Но досовский компилятор 20-летней давности! Во-первых, запустить его в современных Windows близко к невозможному, нужен эмулятор dos, dosbox какой-нибудь. Во-вторых почто в эпоху, когда даже нетбуки 64-битные, мучить детей 16-битными моделями паияти? (конечно у Турбо Паскаля модель памяти собственная. и она существенно лучше, чем все что поддерживали 20 лет назад 16-битные компиляторы C для MS-DOS. но все же).
Это при том, что есть Free Pascal, который поддерживает все современные операционные системы и процессоры, генерирует нормальный 32-битный или 64-битный код, имеет нормальные интерфейсные библиотеки и IDE с современным интерфейсом.
Нет ведь, надо засунуть детей в досбокс, чтобы ни поуправлять каким-нибудь USB-шным гаджетом, ни написать бота к любимому чатику или форуму, преобразовать скачанную с телефона фотографию или сделать ещё что-то, имеющее отношение к их внеучебной (реальной или виртуальной) жизни было нельзя.
А уж учить на этом работе с графикой... Даже тогда, в 1993 году казалось очень странным решение Borland не включать в дистрибутив поддержку 256-цветного режима VGA 320x200. А уж сейчас в эпоху FullHD дисплеев когда слова PseudoColor Visual не помнят даже программисты со стажем, учить графике на примере 16-цветных режимов VGA.. Слов нет, даже матерных.
Конечно, я поделюсь с девочкой сохранившимся в старых запасах SVGA256.bgi , и уверен, что dosbox, основноне назначение которого - запуск старых игрушек, потянет 1024x768x256. Но это тоже PseudoColor. То есть то, что в реальности уже умерло навсегда. А настоящего TrueColor там, увы, не будет. API под него не заточен.
Кстати, ссылка на то, где взять дистрибутив Turbo Pascal вместе с досбоксом, пригодный для установки в современные 32 и 64-битные системы есть в английской википедии. Из чего я делаю вывод, что данное издевательство над детьми не особенность российского менталитета или постсоветской системы образования. Но детей уже защитили от информации так хорошо, что поискать в этом месте им не приходит в голову.
Лучше бы, блин, латынь учили, если так хочется мертвые языки преподавать. Там хотя бы написаны грамотные тексты, на примере которых можно учиться выражению своих мыслей, стилю и т.д.
Массива общедоступных качественных текстов на Turbo Pascal нет. Любой другой язык взять - хоть Java, хоть Python, хоть даже новомодный Хаскель, количество серьезного production code, доступного для чтения и изучения будет больше. Поскольку в те времена, когда production code писали на Turbo Pascal (я этим вообще-то десять лет занимался) и в той среде где это было применимо, принципы Free Software (Open Source тогда еще не изобрели, а вот Столлман свой манифест уже написал) был не слишком популярны.
Какая жуть! Нет, я ничего не имею против языка Pascal вообще, и его борландовского диалекта в частности, хотя на мой взгляд, для первоначального обучения он немножко слишком низкоуровневый.
Но досовский компилятор 20-летней давности! Во-первых, запустить его в современных Windows близко к невозможному, нужен эмулятор dos, dosbox какой-нибудь. Во-вторых почто в эпоху, когда даже нетбуки 64-битные, мучить детей 16-битными моделями паияти? (конечно у Турбо Паскаля модель памяти собственная. и она существенно лучше, чем все что поддерживали 20 лет назад 16-битные компиляторы C для MS-DOS. но все же).
Это при том, что есть Free Pascal, который поддерживает все современные операционные системы и процессоры, генерирует нормальный 32-битный или 64-битный код, имеет нормальные интерфейсные библиотеки и IDE с современным интерфейсом.
Нет ведь, надо засунуть детей в досбокс, чтобы ни поуправлять каким-нибудь USB-шным гаджетом, ни написать бота к любимому чатику или форуму, преобразовать скачанную с телефона фотографию или сделать ещё что-то, имеющее отношение к их внеучебной (реальной или виртуальной) жизни было нельзя.
А уж учить на этом работе с графикой... Даже тогда, в 1993 году казалось очень странным решение Borland не включать в дистрибутив поддержку 256-цветного режима VGA 320x200. А уж сейчас в эпоху FullHD дисплеев когда слова PseudoColor Visual не помнят даже программисты со стажем, учить графике на примере 16-цветных режимов VGA.. Слов нет, даже матерных.
Конечно, я поделюсь с девочкой сохранившимся в старых запасах SVGA256.bgi , и уверен, что dosbox, основноне назначение которого - запуск старых игрушек, потянет 1024x768x256. Но это тоже PseudoColor. То есть то, что в реальности уже умерло навсегда. А настоящего TrueColor там, увы, не будет. API под него не заточен.
Кстати, ссылка на то, где взять дистрибутив Turbo Pascal вместе с досбоксом, пригодный для установки в современные 32 и 64-битные системы есть в английской википедии. Из чего я делаю вывод, что данное издевательство над детьми не особенность российского менталитета или постсоветской системы образования. Но детей уже защитили от информации так хорошо, что поискать в этом месте им не приходит в голову.
Лучше бы, блин, латынь учили, если так хочется мертвые языки преподавать. Там хотя бы написаны грамотные тексты, на примере которых можно учиться выражению своих мыслей, стилю и т.д.
Массива общедоступных качественных текстов на Turbo Pascal нет. Любой другой язык взять - хоть Java, хоть Python, хоть даже новомодный Хаскель, количество серьезного production code, доступного для чтения и изучения будет больше. Поскольку в те времена, когда production code писали на Turbo Pascal (я этим вообще-то десять лет занимался) и в той среде где это было применимо, принципы Free Software (Open Source тогда еще не изобрели, а вот Столлман свой манифест уже написал) был не слишком популярны.
no subject
Date: 2014-10-09 07:47 am (UTC)Турбопаскаль и 20 лет назад был не тем инструментом, на котором писали настоящие приложения (да и вообще паскаль, в общем-то). dosbox - не проблема.
Когда уровень дойдёт до моделей памяти и GUI, турбопаскаль, конечно, нужно менять на что-то более современное. А чтобы понять азы - вполне подходит. Удобно пройти пошагово, посмотреть значения переменных, поставить breakpoint, посмотреть контекстный help... Современные IDE, позволяющие делать то же самое, монстроидальны и расчитаны на большие проекты, их нужно отдельно и долго изучать.
Впрочем, возможно, я просто не знаю, что есть не менее простое и удобное для обучения (и бесплатное).
Или вот multiedit - древний текстовый редактор под msdos, но разве есть сейчас что-нибудь подобное? Про vim/emax вспоминать необязательно - они из той же эпохи (или даже раньше), под другую платформу и с другой идеологией.
no subject
Date: 2014-10-09 07:55 am (UTC)А мультиэдит это кривой и порт емакса под DOS. Кстати, в мультиедите в районе версии 6.0 отказались от паскальподобного языка и перешли на си-подобный.
Собственно аналогов мультиедиту в виндах нет и не может быть потому, что все, чей образ мышления требует использования подобных инструментов работают на той платформе где vim/emacs. Опять же эти два редактора портированы в Win32. Поэтому кому надо редактор с развитыми макросредствами, но при этом по каким-то причинам нет возможности использовать нормальную операционку, ставит себе емакс в винды и не парится.
no subject
Date: 2014-10-09 08:41 am (UTC)Я соглашусь, что редактирование файлов произвольного размера без отжирания соответствующего количества виртуальной памяти сейчас не так актуально (хотя иногда было бы полезно).
Компилятор макросов, хоть и делает более удобной диагностику ошибок и позволяет создавать макросы большего размера, но тоже не так актуален - скорость позволяет интерпретировать.
Но более удобная работа с окнами (в т.ч. частично перекрывающимися и изменяемыми мышкой), настройка keyboard shortcuts, простое подключение произвольного отладчика (td, masm и пр)...
Можно сказать, что вывод сообщений в 2-3 строки отдельным всплывающим окошком - не unix-way, что у кого руки не из жопы, тот сможет и perl debugger (например) подключить, да и вообще, отладка пошаговым прохождением сейчас применима нечасто...
Только всё равно меня не покидает ощущение, что редактор типа multiedit сделал бы мою работу (под юниксом) эффективнее.
no subject
Date: 2014-10-09 09:47 am (UTC)Что только народ не придумает, чтоб не изучать emacs.
no subject
Date: 2014-10-09 10:14 am (UTC)Записал себе в todo изучить и настроить emacs, раз он так хорош. :)
no subject
Date: 2014-10-09 10:32 am (UTC)Вообще у меня уже была идея прикрутить к vim-у siod или guile в качестве скриптового языка, чтобы вгонять емаксеров в тяжелый когнитивный диссонанс - текстовый редактор, на лиспе и не emacs.
no subject
Date: 2014-10-09 02:06 pm (UTC)no subject
Date: 2014-10-09 03:50 pm (UTC)Но вообще я сам тоже (уже который год) запинываю себя изучить емакс. Потому что репозиторий плагинов для вима (в отличие от емакса) -- это не есть правильный путь. Вим не для такого стиля использования.
Оффтопик, откуда-то с опеннета:
-- Ну и как я тебе тёток за 50 пересажу на емакс?
-- Тёток за 50 как раз легко: скажу им, что это как лексикон, только лучше.
И знаешь, мне кажется, что это не только прикол. Есть в этой идее какая-то глубокая сермяжная правда. :-)
... Железо нужно всем! ...
no subject
Date: 2014-10-09 01:24 pm (UTC)садился пару раз, вот не идёт оно у меня почему-то...
no subject
Date: 2014-10-09 11:43 pm (UTC)> без поддержки Ctrl+Key, Fn, arrow keys, а иногда даже ansi.
Что, где-то существуют еще живые терминалы? И именно поэтому я в MC должен нажимать что-то вроде ESC-Shift-? (две клавиши руками,а эскейп - ногой)
no subject
Date: 2014-10-10 04:35 am (UTC)Тут дело в том, что всё общение между стороной пользователя и стороной, где это выполняется, должно происходить одним потоком байт (двунаправленным), даже если всё происходит на локальной машине. Причём обычный текст должен передаваться в виде обычного текста (без дополнительного кодирования), а всё остальное (позиционирование, раскраска, мышка, Ctrl+Key, Fn, стрелочки) - специальными Esc-последовательностями. С одной стороны это даёт возможность запускать приложения через терминал где угодно, на любой удалённой машине через ssh, а с другой - вносит свои ограничения. Возможных способов кодирования много, и не всегда представления о том, что как кодируется, совпадают.
Пикантность добавляет то, что кодирование спец.функций начинается не со специального управляющего символа, а с обычной клавиши Escape, из-за чего её саму приходится обрабатывать с задержкой (и теоретически возможно случайно с клавиатуры набрать управляющую команду).
Вторая пикантность в том, что когда отказались от правила "обычный текст выводится без обработки" и перешли на utf8, управляющие последовательности по-прежнему кодируют через Esc вместо того, чтобы взять для них символы unicode.
Извините, если рассказал банальные и общеизвестные истины.
no subject
Date: 2014-10-12 02:13 am (UTC)no subject
Date: 2014-10-09 11:22 am (UTC)no subject
Date: 2014-10-09 10:58 pm (UTC)no subject
Date: 2014-10-10 03:22 am (UTC)no subject
Date: 2014-10-10 05:05 am (UTC)Я же не говорю, что он чего-то не умел. Я говорю, что он был уныл. Разумеется, я сейчас не вспомню, каких именно фич мне в нём не хватило 20 лет назад.
Просто осталось неформализуемое субъективное ощущение уровня «выглядят как настоящие, но радости от них никакой». Может быть, перенос UI из ограниченного текстового режима в свободный графический делает это с программами. Может быть, в те времена не было нормальных моноширинных TTF-шрифтов (а битмэпные досовские имели столь простой формат, что каждый мог написать редактор). Не знаю.
no subject
Date: 2014-10-09 07:56 am (UTC)Зависит от требуемой степени подобия.
Ищите fte, efte.
no subject
Date: 2014-10-09 08:00 am (UTC)no subject
Date: 2014-10-09 08:01 am (UTC)no subject
Date: 2014-10-09 08:12 am (UTC)До сих пор помню, как перевернулся мир после открытия команды make.
Оказалось, что 20 минут ждать компиляции прожекта (на 386 машине) совершенно необязательно.
no subject
Date: 2014-10-09 08:32 am (UTC)no subject
Date: 2014-10-09 08:36 am (UTC)Просто так совпало в моей жизни. Сначала был TurboC, а потом Clipper, и я никак не мог приспособиться жить без IDE. А потом оказалось, что ME - вполне себе IDE, только построенная на других принципах.
no subject
Date: 2014-10-09 08:38 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2014-10-09 08:13 am (UTC)no subject
Date: 2014-10-09 09:20 am (UTC)Порог въезжания в простые действия минимален.
Бесплатная лицензия есть, под win/lin/mac работает.