Прошло тридцать лет, а QBasic по-прежнему лучший

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Моему старшему сыну Ноа три месяца назад исполнилось семь лет. Если бы он мог обменять всю свою семью на два часа игры в Minecraft, то сделал бы это без раздумий. Ещё одна любовь всей его жизни — это Super Mario Maker. У меня бегали мурашки, когда я видел, как он играет в уровни, которые я проходил в его возрасте. Примерно пять месяцев назад я покинул свою семью ради ежегодного паломничества на ludum dare: соревнование разработчиков игр, во время которого мы запираемся в квартире с друзьями, возвращаемся в состояние пещерного человека, не спим 48 часов и создаём с нуля готовую игру. Когда я гордо демонстрировал свою революционную игру уровня AAA своей жене, Ноа, разумеется, заинтересовался. Поэтому я познакомил его с миром кода, показал, как из простых слов (он только что научился читать) можно создать настоящую игру. С того самого дня Ноа постоянно просил меня научить делать собственные видеоигры. И в течение следующих пяти месяцев я искал Святой Грааль языка/IDE для детей в надежде превратить эту искру интереса в запоминающийся опыт…

Мои поиски приводили меня на бесконечные форумы, благодаря которым я попробовал бесчисленное множество рекомендуемых языков и платформ: SmallBasic, Pico-8, Smalltalk, Scratch и т.д. Я даже задавал вопросы великим оракулам StackOverflow, но тщетно. Спустя пять месяцев я пришёл к разочаровывающему выводу: ничто и близко не сравнимо с тем, что было у меня в мои годы. 30 лет спустя QBasic по-прежнему остаётся лучшим языком для новичков в программировании.

«Боже, пожалуйста, не учи его пользоваться GOTO!»

10 PRINT "О НЕТ, ЧТО ЖЕ ТЫ ДЕЛАЕШЬ?!”
20 GOTO 10

Да, QBasic — ужасный процедурный язык. Он знакомит с концепцией, которая большинством считается вредной, использует неудобный синтаксис для неявных объявлений, он не регистрозависим, индексы в нём начинаются не с нуля, и так далее, список бесконечен… При развитии навыка гораздо лучше нарабатывать правильные рефлексы с самого начала, чем исправлять годы неверной практики. Если последовать этому совету, то мне, вероятно, стоило бы начать с основ языка Ruby, который я люблю. Тем не менее, несмотря на то, что большинство этих концепций QBasic большинство считает «красными флагами», в то время они имели свою цель: сохранение простоты и доступности языка; от этого принципа все остальные языки отказались в пользу гибкости, сложности и логики.

Сегодня я установил QBasic на 11-дюймовый HP Stream сына, установку пришлось выполнять вручную через DOSBox. Он дважды нажал на значок рабочего стола и спустя долю секунды мы уже увидели IDE, приветствовавшей нас вводным экраном, который вызвал у меня кучу воспоминаний:


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

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


Мы изучили ещё пару команд: CLS, COLOR, PLAY, INPUT и IF. Ничего не нужно было объяснять: никакой сложности, никаких неуклюжих операторов, никаких абстрактных концепций, никакой документации, которую необходимо изучать, никаких концепций объектов/классов/методов, не требовалась установка никаких фреймворков, нет кучи меню и кнопок в IDE, никаких специальных ключевых слов или скобок. Это был код во всей его чистейшей простоте и форме.

Спустя менее часа он написал собственную программу — интерактивное и невероятно изощрённое приложение, сообщающее о том, что думает о вас компьютер:


… которое Ноа с искренней гордостью запустил для своего двоюродного брата и лучшего друга Кристиана:


… после чего он легко объяснил, как оно работает и что делает код!


То есть всего за один час мой семилетний сын не только смог написать свою первую текстовую игру, но и ощутил удовольствие и трепет, возникающие при создании, компилировании и запуске собственной программы. Дополнительные очки за то, что она умещается на одной странице блокнота:


Я был так рад, что он понял, почему я постоянно говорю, что у меня лучшая работа в мире.

Единственное, о чём я сейчас сожалению, так это о том, что за тридцать с лишним лет мы не смогли придумать для детей чего-то лучшего: Qbasic имеет ограниченное множество простых ключевых слов (вся справка умещается на одном экране, вызываемом по F1, и дополнена простыми примерами!), не отвлекает кодера визуальными артефактами, обладает очень компактной и уютной средой разработки, сразу же указывает на ошибки, компилирует и исполняет код за доли секунды нажатием одной клавиши, и к тому же чрезвычайно прост. Мы создали более надёжные и сложные языки/фреймворки/IDE (которые, разумеется, необходимы для любого практичного приложения), но никогда не придумывали более простого способа получить прямой доступ к удовольствию от программирования, чем QBasic. Даже запуск QBasic сегодня стал пугающей задачей для новичков, работающих на современной машине Mac/PC/Linux, хотя раньше для этого достаточно было просто вставить 3,5-дюймовую дискету в дисковод A:\…

Но, впрочем, хватит проповедей, сегодня ведь нужно праздновать знакомство ещё одного человека с радостями и красотой программирования!

Ура!



На правах рекламы


Наша компания предлагает современные серверы в аренду для любых проектов. Создайте собсвенный тарифный план в пару кликов, максимальная конфигурация бьёт рекорды — 128 ядер CPU, 512 ГБ RAM, 4000 ГБ NVMe!

Присоединяйтесь к нашему чату в Telegram.

Источник: https://habr.com/ru/company/vdsina/blog/560830/


Интересные статьи

Интересные статьи

Если взять за основу работы школы Павлова, то в гипнозе как в редком, и отсюда возможно интересном феномене, мало чего удивительного. Обычная ультра парадоксальная стадия...
Решения для больших компаний обычно должны выдерживать высокие нагрузки. Когда в штате много десятков тысяч человек, и значительная доля из них ежедневно пользуются ...
На новогодних праздниках ваша дорогая редакция совмещала приятное с полезным и читала интервью, которые выходили на Хабре за последние годы. Отобрали 30 штук, а теперь делимся с вами — это пр...
Дрозофилы, или плодовые мушки — отличный материал для исследований. Просто потому, что они очень быстро размножаются, давая потомство, и эволюционные изменения можно отслеживать в течение нед...
Существует традиция, долго и дорого разрабатывать интернет-магазин. :-) Лакировать все детали, придумывать, внедрять и полировать «фишечки» и делать это все до открытия магазина.