Помнится, именно так называлась переводная статья, опубликованная в 1993 году в PC Magazine Russian Edition, которая в американском оригинале имела заголовок “Lost your BASIC instinct? It's time to remember!”. Как нетрудно догадаться речь в ней шла не о вышедшем за год до этого знаменитом фильме, а об ИТ. Это был обзор состояния дел на рынке — средств разных поставщиков — языка BASIC (потому и в переводе были использованы заглавные буквы), переживавшего в те годы свою “третью” молодость. За прошедшие с тех пор почти уже два десятилетия этот язык пережил сначала долгий этап роста популярности, а затем период явного, хотя и плавного спада.
Но возможно, как раз сейчас Basic (правила написания названий языков сменились в начале 1990-х) опять начнет увеличивать число пользователей: в июле 2011-го корпорация Microsoft объявила о выпуске первой версии новой системы программирования — Small Basic 1.0. То, что об этом “основном программистском инстинкте” вспомнила именно Microsoft, является вполне естественным: развитие Basic за последнюю четверть века напрямую связано с именем этой компании.
Small Basic позиционируется его автором как компактная, простая и бесплатная “ученическая” система программирования, которой смогут воспользоваться все — и дети, и взрослые, делающие первые шаги в программировании. Трудно сказать, каковы реальные стратегические планы Microsoft в отношении этого продукта, но даже сейчас, в момент рыночного старта этого инструмента, можно предположить, что Small Basic может ожидать, причем в недалеком будущем, весьма радужные перспективы, которые могут выйти далеко за пределы “ученического программирования”. Дело в том, что эта система способна закрыть собой очень большую нишу на рынке средств программирования, образовавшуюся за последние десять лет в результате явно неудовлетворенного спроса на подобные инструменты со стороны миллионов (эта цифра, возможно, даже занижена) программистов-любителей. Причем появление такого нового рыночного сегмента может повлечь за собой интерес к нему и профессиональных разработчиков ПО. Чтобы разъяснить этот тезис-прогноз, нужно посмотреть на ситуацию на рынке средств программирования с коротким экскурсом в историю Basic.
Немного истории
BASIC был придуман в 1963 г. профессорами Дартмутского колледжа Томасом Курцем и Джоном Кемени для обучения студентов программированию. Его назначение точно было отражено в названии — Beginner’s All-purpose Symbolic Instruction Code (универсальный код символических инструкций для начинающих). Для создания сколько-нибудь серьезных программ он явно не годился, но при этом в нем был реализован ряд революционных по тем временам идей, которые с ростом мощностей вычислительной техники позволили языку стать настоящей инновацией в сфере профессиональной разработки ПО. Достаточно сказать, что фактически именно в том примитивном BASIC'е была впервые реализована схема быстрой разработки ПО в интерактивном режиме, исполнения программ в управляемом режиме и ряд других инноваций.
Именно этот потенциал языка был раскрыт с появлением и массовым распространением ПК в середине 1980-х, для которых BASIC превратился в инструмент профессиональной разработки ПО, которым в то же время могли пользоваться широкие слои специалистов-предметников. Примечательно, что именно резкое расширение круга программистов за счет “любителей” послужило основой для зарождения тогда качественного нового сегмента ИТ-рынка — вспомогательных средств программирования третьих фирм.
Вторая половина 1980-х характеризовалась также резким обострением борьбы за рынок средств разработки, которая на уровне ПК велась в основном между Borland и Microsoft. Тогда и произошло негласное разделение сфер влияния: Borland отказалась от развития своего TurboBASIC, а Microsoft — QuickPASCAL. Обсуждая тогда причины такого размежевания, наблюдатели отмечали два момента: ряд действительно революционных на тот момент победившего в этой гонке Microsoft QuickBASIC и личные пристрастия Билла Гейтса, который, как известно, начинал профессиональную карьеру как разработчик BASIC-систем и продолжавшего лично руководить развитием этой системы фактически до окончания работы на посту руководителя корпорации.
А с 1991-го началась эпоха Visual Basic, который сыграл решающую роль в продвижении новых идей разработки Windows-приложений. Тут ситуация опять во многом характеризовалась конкуренцией Microsoft и Borland (Delphi), которая в целом завершилась лидерством Microsoft. Правда, сразу же обозначился новый грозный соперник — Java. Но тут нужно отметить, что и Java была изначально построена на реализации моделей программирования, отработанных за предыдущие десятилетия как раз на BASIC.
Пик популярности Visual Basic пришелся на его версию 6.0, выпущенную в 1998 г., при этом нужно также отметить широкое применение и профессионалами, и любителями системы Visual Basic for Applications. А дальше наступила пора .NET, с которой звезда BASIC явно пошла к закату, уступая место своему собрату C#.
Нужно сказать, что направление средств разработки постоянно развивается и серьезно меняется, что хорошо видно, если провести даже не очень глубокий ретроспективный анализ. Эта отрасль сегодня совсем не та, какой она была 10 и тем более 20 или 30 лет назад. Но при этом фундаментальные основы и проблемы остаются теми же. Одна из таких проблем — необходимость изучения и использования средств программирования на массовом уровне. Обратим внимание: речь идет не подготовке профессиональных разработчиков ПО, а о поддержке массовой ИТ-культуры, которая во многом является основой развития ИТ-отрасли. Из разряда всем известных истин типа Ломоносовской “Математику уже затем учить следует, что она ум в порядок приводит”. Не говоря уже о том, что программирование — это не только полезная вещь для решения многих “любительских” задач, но и просто очень увлекательная штука, захватывающая порой сильнее любой крутой компьютерной игрушки.
Так вот очевидной проблемой развития средств разработки последнего десятилетия оказалось как раз то, что стали “страшно далеки они от народа”. Например, Microsoft Visual Studio уже давно превратился в монстра, разобраться с возможностями которого — сложная задача даже для опытного разработчика. Даже относительно простые скриптовые интернет-языки, также уже совсем не просты в изучении и использовании, не говоря уже о том, что они не очень годятся для “настольного” программирования.
Small Basic как средство преодоления разрыва
Microsoft в целом очень хорошо понимает проблему работы с программистами-любителями и одна из немногих на рынке постоянно занимается ее решением, выпуская, в частности, облегченные бесплатные версии своих инструментов, в первую очередь Visual Studio. Но тут уже много лет видна очевидная трудность: из монстроподобного пакета, архитектурно ориентированного на решение задачи создания сложных корпоративных приложений, невозможно сделать легкий, простой инструмент. В общем-то это давно стало понятно и самим создателями Visual Studio (этот вопрос обсуждался, в частности, во время российского запуска Visual Studio 2010 в апреле прошлого года).
Возвращаясь теперь к Small Basic можно сказать, что весь этот проект (а это не только собственно язык и инструмент, но и информационно-социальная среда вокруг них) нацелен именно на решение проблемы сокращения разрыва между профессиональной и любительской разработкой ПО. По своей сути и целевой аудитории он фактически представляет собой .NET-реализацию DOS'овской системы QBasic (сильно упрощенный вариант QiuckBASIC 4.5, входивший в состав поставки MS DOS, начиная с версии 5.0). На этот момент надо обратить внимание: в Small Basic реализована сейчас именно традиционная DOS'овская (а не Visual Basic 1.0) концепция программирования, когда разработка ведется от кода, а не от оконного интерфейса. В то же время синтаксис языка построен на базе Visual Basic .NET с использование идей объектно-ориентированного программирования. Для работы нужна Windows XP или более поздняя версия с установленной средой .NET Framework 3.5.
Продукт включает очень простую среду разработки с текстовым редактором и поддержкой многофункциональной подсказки. На панели управления — всего лишь несколько кнопок для редактирования текста и запуска программ. В составе самого языка всего 20 ключевых слов, но этого уже сейчас достаточно для решения многих задач. В среду разработки встроена контекстная документация по всем элементам языка. Принципиально важно то, что в Small Basic реализована возможность расширения его компонентов, включения дополнительного функционала. Независимые разработчики могут создавать внешние библиотеки, легко интегрирующиеся в систему (это сообщество, в том числе с профессиональным деловым подходом уже формируется). Возможности интеграции могут быть также очень интересно использованы, например, для разработки онлайновых сервисов в сочетании собственных разработок и средств третьих фирм. Например, в поставке продукта уже сейчас имеется интеграция со службами Flickr (работа с фото и видеоконтентом).
Несмотря на номер версии 1.0, проект Small Basic имеет уже свою историю и весьма приличный круг пользователей, поскольку он уже два года был представлен на рынке в виде публичного предварительного варианта. Его версия 0.5 была анонсирована в июне 2009-го, причем уже тогда весь API был переведен на русский язык. Спустя четыре месяца вышел вариант 0.7, в котором появилась функция портирования программ из Small Basic в Visual Basic .NET. 11 июня 2010 г. Microsoft сообщила, что число загрузок Small Basic преодолело рубеж в 300 тыс. Официальная же версия 1.0 появилась 12 июля 2011-го, причем сразу на 20 языках, в том числе и русском. Российское отделение Microsoft хорошо подготовилось к выпуску русской версии Small Basic — созданы соответствующие разделы в “Центре начинающего разработчика”, функционирует русскоязычное интернет-сообщество, есть книга.
В целом можно сказать, что Small Basic — это очень интересный и перспективный проект, за развитием которого нужно будет следить. Он имеет потенциал выйти далеко за рамки программирования для начинающих и может быть интересным и для ИТ-профессионалов. Что же касается детского программирования, то нужно сказать, что Microsoft предлагает также Kodu —визуальный язык программирования, предназначенный для создания игр самыми маленькими разработчиками. В настоящее время доступна только его англоязычная версия языка, но Microsoft обещает выпустить русский вариант в самое ближайшее время.