Программирование: с чего начать, или Незаменимый бейсик
Я всегда тепло вспоминаю свой первый язык программирования. Как, полагаю, многие из увлечённых компьютерами в 80-х и ранних 90-х, я выучил его ещё до того, как прикоснуться к клавиатуре (тем более — к клавиатуре собственного компьютера!), и не по учебникам, не на спецкурсах: по распечаткам программ в популярных журналах. Синтаксически простой, семантически схожий с английским языком, с суперкомпактным набором команд, позволяющий писать сразу, с ходу, не задумываясь об инициализациях и прочем подобном, он был идеальным решением для тех, кто ничего не смыслит в программировании, но хочет разобраться. Мне даже нет нужды называть его имя, вы и так его узнали, потому что вариант только один. А случившееся на днях заставило задуматься: а правда ли век его прошёл? Правда ли он «был», но не остаётся?
Событием, которое подтолкнуло к рассуждениям о вроде бы давно забытом предмете, стал выпуск компанией Google программы Coder. Попросту говоря, это инструмент для начинающих веб-программистов, работающий в том числе (и в первую очередь) на сверхдешёвом Raspberry Pi. Десять минут на установку — и вот вы уже в среде, готовой к созданию полноценных HTML5-проектов (классическая связка HTML+Javascript+CSS). В некотором роде это современная реализация идеи восьмибитных машин: дешёвых, предельно простых, максимально открытых для изучения и девелопмента. Одна проблема, Javascript и CSS и даже современный HTML (который совсем не тот, что был пятнадцать лет назад!) ещё нужно освоить. А уж тут распечатками не обойдёшься, понадобятся минимум справочники, скорее всего, учебники, а хорошо бы ещё и знающего человека для ответов на глупые вопросы! В результате современному двенадцатилетнему пацану, решившему начать обучение с Coder’a, потребуется приложить значительно больше усилий, чем прикладывали в своё время мы, начиная с BASIC’а.
|
BASIC — творение 1964 года, рассветных лет компьютерной эпохи. Американцы Джон Кемени и Томас Куртц написали его, чтобы облегчить знакомство с вычислительной техникой своим студентам (в те годы как раз началось распространение терминалов, и доступ к ВТ перестал быть уделом только лишь атомщиков и ракетчиков), но язык быстро зажил самостоятельной жизнью. В 70-х, с началом эры персональных компьютеров, BASIC немедленно стал стандартом де-факто в качестве основного языка программирования, и даже больше того — пользовательской оболочкой, средой, из которой управляли машинами. Не случайно и Гейтс с Алленом для «Альтаира» и Возняк для Apple I первым делом писали именно BASIC!
Сегодня, в век графических интерфейсов, применение языка программирования в качестве основы рабочего стола кажется диким, но ещё двадцать лет назад это было не просто удобно, а и естественно — из-за ограниченных ресурсов домашних ПК. Лишь с середины 90-х, когда офисные машины захватили дом, этой моде пришёл конец. Но не бейсику (боюсь, литредактор сделает мне выговор, поскольку правильно брать название в кавычки — но рука не поднимается закавычить имя почти что друга, столько лет служившего верой и правдой)! Уже к тому моменту язык был модифицирован сотнями вендоров, которые крутили им как хотели — что, кстати, тоже было следствием того же главного достоинства, которое и обеспечило BASIC’у взлёт. А сегодня для одного только перечисления всех бейсиковских диалектов придётся занять больше дюжины страниц (если интересно, вот полный список в Википедии).
|
А что обеспечило ему взлёт? Простота. Абсолютная, непревзойдённая, интуитивная простота. Там, где другие языки требуют выстраивания многоэтажных конструкций, бейсик просит только номер строки. Другие требуют редактора, компилятора, операционной системы — BASIC замкнут на себя (первый вариант был компилируемым, но впоследствии его чаще выполняли в виде интерпретатора). Его структура такова, что программа в большинстве случаев работает сразу, а если не работает, то ошибка конкретна, её легко найти и понять. Да, он слаб («Слабый, легковесный язык», — говорил Возняк), но именно в этом его сила! Вообще, бейсиковская «немощь» — феномен, который заслуживает отдельной книги. Она делает язык уникальным, она помогла ему пережить несчётное множество архитектур и платформ.
Ведь как развиваются языки программирования? Усложняясь, обрастая новыми свойствами. BASIC живёт по другим законам. Его эволюционное древо прямое, как стрела: попытки привить ему новые свойства в лучшем случае обособились в отдельные проекты, никак не повлияв на популярность главного (самого простого) диалекта. Больше того, за десятилетия эволюции он отбросил словно шелуху и ту лишнюю небольшую сложность, которую изначально предусмотрели в нём авторы (к примеру, избавившись от функций матричных вычислений). Неспособный противостоять «серьёзным» языкам программирования, он нашёл себе постоянного поклонника в лице вечно молодого компьютерного новичка.
Суметь понять решающее значение «слабости», признать его — совсем не шутка. Рискну утверждать, что даже Куртц и Кемени так до конца и не поняли главной фишки созданного ими языка. В середине 80-х они попытались продавить на рынок своё новое детище, True BASIC, основав под него компанию. Как коммерческий продукт он ещё существует, но как замена BASIC’у бесстыдно провалился, ибо оказался более сложным.
|
Говоря о BASIC как лучшем языке для начинающих, я конечно имею в виду не исправленных до неузнаваемости ублюдков вроде Visual Basic или Openoffice.org BASIC, где от оригинала осталось почти одно лишь название, а тот базовый, универсальный для всех минимум из двух десятков команд, на котором писали уже полвека назад. Сегодня его так же легко отыскать на любой платформе для любой архитектуры — и так же просто, как и десять, и двадцать, и сорок лет назад, применить для решения несложных задач. Помнится, совсем недавно, когда жена усомнилась в справедливости парадокса Монти Холла, я за пять минут набросал программку, демонстрировавшую его практически. И использовал не любимый C, не скриптовые языки, а старину BASIC — писать на котором можно, не задумываясь о собственно программировании.
Однако времена меняются. Интернет и Веб перекроили персоналку. Компьютер сегодня — это Сеть, а оригинальный бейсик о сетях ничегошеньки не знает. Так что же, пора заменить «лучший язык для новичков» новым, более современным, более приспособленным к технике и технологиям нового столетия? Давно пора, считают многие — и предлагают наперебой варианты, чаще всего останавливаясь на Python (который даже называют «бейсиком XXI века») и Javascript. Они разные, но роднит их сравнительная простота и лёгкость в обращении с интернет-механизмами. И человек, начавший своё компьютерное образование с них, конечно, сумеет потом применить полученные знания для серьёзных дел. Вот только есть одна нестыковочка: они и близко не так просты, как BASIC!
Пусть он примитивен, пусть неспешен. Но он недостижимо прост — а значит, уже в первые полчаса — да что там, в первые десять минут! — новичок, для которого компьютер до сих пор был магическим артефактом, сможет сделать что-то своими руками. Сможет сам заставить машину сделать что-нибудь для него! Вы помните свой первый раз? Помните восторг, который испытали, когда ваши первые бейсиковские строки заставили компьютер подчиниться вашей воле? И разве вы, начиная, преследовали цель обучиться конкретным технологиям? Рискну предположить, вы начинали программировать даже не для того, чтобы понять, как работает машина, а просто чтобы получить удовольствие от управления ею!
Ну а заставив машину прокатить вас, усвоив базовые концепции программирования (для чего BASIC так же хорош, как и любой другой язык), можно спрыгнуть куда угодно. Моё поколение уходило в машинные коды и ассемблер (вот, кстати, продолжение лично моей истории: «Мой первый стартап: Россия, 94-й»). Сегодня, вероятно, разумным выбором будет Python или Javascript.
Но — начинать? Руки прочь от святыни! BASIC ещё послужит.
Оставить комментарий
Ваш комментарий будет опубликован после модерации.