Добавить комментарий

Питон, как реинкарнация Бейсика

Любители в софтостроении появились давно, а сегодня их число только растет, по разным оценкам приближаясь уже к половине программистского поголовья.

Почему возник язык Бейсик, на котором выросло целое поколение не только любителей, но и профессионалов, включая Билла Гейтса? Разработка на Фортране и чуть более поздних языках (COBOL, PL/1) не была интерактивной. Тогда как цель любителя, совершенно естественная - побыстрее решить свою прикладную задачу и отвалить от монитора (тогда - от перфоратора и машинисток), не прибегая к помощи профессиональных программистов.

Но Фортран жив по сей день и неплохо себя чувствует, его пользователи еще простудятся на похоронах очередного корпоративного монстра-фреймворка. А вот Бейсик начал загибаться в 1980-е. Как интерактивный скриптовый язык он застрял в развитии на уровне реализаций под MS DOS, а его реинкарнация Visual Basic уже имела мало общего с потребностями любителей: набросать несколько десятков строк кода, отладить и пользоваться, делясь с коллегами.

Эту нишу уверенно занял Питон - усовершенствованная реинкарнация Бейсика для любителей, сохраняющая все его изначальные преимущества: простоту, интерактивность и наплевательское отношение к типам и структуре программы. Кладезь для научных работников, не желающих или не имеющих возможности использовать Фортран или Си. Неплохой заменитель shell-скриптов для операционных систем.

Знаю, что некоторые преподаватели информатики в школе с успехом применяют Питон для обучения. Хочется надеяться, что они не ограничиваются в этом деле лишь Питоном, потому что прививается односторонняя культура программирования без намека на базовые инженерные аспекты: повторное использование, зависимости и развертывание очередных "нетленок".

Преобладание любительского подхода к софтостроению в любой ситуации (не только питоновой) обнаруживается прежде всего в упомянутых инженерных аспектах. Как только придет нужда использовать что-то более сложное, чем собственноручно написанный скрипт из сотен строк. Вот пример манипуляций, который нужно произвести, чтобы просто запустить примеры из пакета "xrt" под Windows.

Справедливости ради надо сказать, что под Linux весь этот бордель выглядит гораздо пристойнее, потому что профессиональные разработчики постарались и добавили пакеты в депо соответствующих версий операционной системы. Поэтому в Debian все ограничивается парой команд apt-get install.

Но дело не заканчивается пакетами и зависимостями. В списке присутствует несколько установочных программ, специфичных для версии Windows (scipy, matplotlib).

Почему?

Потому что Питон - интерпретатор, скорость его работы во многих случаях недостаточна. И требуется интегрироваться с модулями, написанными на Си, Фортране и других языках, генерирующих двоичный код процессора. Или делать вставки (т.н. встроенный или внедренный код) на Си прямо в теле питоновских скриптов.

Чтобы затем использовать такие пакеты непосредственно из исходников, вам, соответственно, потребуется устанавливать на компьютер профессиональные инструменты и среды типа Visual Studio. Задача усложняется на порядок.

Проблема? Проблема...

Решений этой проблемы не просматривается со времен первых версий Бейсика, как бы не называли потом его реинкарнации. Точнее, теоретическое решение есть, но практически оно устраивает далеко не всех. Это специфичные для решения прикладных задач пакеты, от МатЛаба до MS Office. Обросших любительскими надстройками не хуже Питона.

Любителям нужен инструмент для решения прикладных задач. Быстрый, простой, интерактивный. Профессионалам - возможность максимально просто использовать прежние наработки, развертывая исполняемые модули с минимальными затратами. В идеале - копированием одного файла.

Когда-нибудь эти миры встретятся.

P.S. Поучительная история о "защите", сделанной программистами-любителями на Питоне (автор - А. Воробей).

Я уже много лет покупаю электронные книги в Амазоне на киндл. Обычно они приходят на ридер с защитой от копирования (DRM), но я немедленно снимаю с них DRM с помощью плагина для программы calibre, это очень просто (первая ссылка в гугле на поиск calibre drm removal, если кому надо). Любой продвинутый юзер может установить такой плагин и снимать DRM с купленных книг. Недавно мне попалась книга, которую можно было только арендовать на время - Амазон начал давать такую возможность на киндле год или два назад. Купить ее было нельзя. Будучи арендованной, она сидит на ридере в виде файла, как и обычные покупки. Я попробовал снять DRM с этого файла и получил ошибку от плагина: "Снятие DRM с арендованных книг не поддерживается".

Бонус программиста: поскольку я знаю, как устроен DRM, мне совершенно очевидно, что для арендованных книг он ломается так же легко, как для купленных. Более того, сразу очевидно, что плагин не то чтобы не может, он не хочет снять DRM с арендованной книги. В принципе могла бы быть ситуация, при которой Амазон придумал для книг в аренду совершенно другой новый формат с новым видом защиты и хакерам было бы лень или недосуг его ломать, но шансы 10:1 что это не так и что в плагине стоит тупая заглушка. Далее, я знаю, что плагины для calibre пишутся на Питоне, и я знаю этот язык. Через несколько минут я нахожу код заглушки в плагине ("если книга такого-то типа, выдай сообщение об ошибке и не пытайся даже ее читать"), и удаляю его, еще через минуту у меня готовая расшифрованная книга с снесенным DRMом.