Не вдаваясь в политические и социологические аспекты вопроса, зададим себе вопрос на вопрос: А что надо сделать сейчас, чтобы наступил все же Полдень?
Если мы ограничимся только технологической составляющей, то часть ответа очевидна: программирование – вторая профессия и вторая грамотность. Говоря другим языком, созидающая часть человечества (а в идеале всё человечество) использует компьютеры для решения своих рутинных и творческих задач. Программирование уже нас окружает, люди программируют везде и всегда, хотя нет понимания, что это часть нашей жизни. Часть, которая не уйдет, а вырастет и окрепнет. Люди будут программировать все больше, как это не назови.
Теперь попробуем понять – как они будут программировать? Или о каком программировании мы говорим?
Для ответа на этот вопрос, разделим области программирования на слои, они очевидны:
Еще можно выделить учебное программирование (обучение программированию) и спортивное (олимпиадное) программирование – но это не слои. Обучение программированию относится к каждому слою, а спортивное – это что-то типа подготовки спецназа.
Мы же говорим о программировании для всех, и такое программирование, очевидно, не попадает ни в один из слоев. Скорее, это еще один слой, который можно назвать «бытовым программированием».
Чем бытовое программирование отличается от всех остальных?
Во-первых, отличие в требованиях к результату и способам программирования.
Как уже видно из этого списка, слой бытового программирования явно отличается от других.
Во-вторых, важной особенностью бытового программирования является то, что программы делает не профессиональный программист. Сокращенно можем назвать: M2M (me-to-me).
Бытовое программирование можно определить как программирование человеком своих устройств для решения бытовых (повседневных) задач. Бытовое программирование очевидно распространяется на решения семейных задач и (частично) задач индивидуальных предпринимателей и малых предприятий. К «своим» устройствам я отношу не только гаджеты и компьютеры, а также сервисы и ресурсы (например, Яндекс.Диск), которые могут использоваться для решения повседневных задач.
Требования к инструментам разработки для бытового программирования явно отличаются от требований к инструментам для других уровней.
Рассмотрим бытовое программирование на жизненном примере.
Ребенок идет домой из школы.
Хочу запрограммировать следующее:
Очевидное условие: у ребенка должно быть устройство с GSM/GPS (часы, браслет или телефон)
Что нужно для решения этой задачи бытовому программисту:
Если все это есть, бытовой программист может написать скрипты и расставить триггеры для запуска этих скриптов. Скрипты и триггеры в совокупности и составляют «супер-приложение», решающее задачу.
Набросаем часть решения (то, что нужно запрограммировать):
Очевидна похожесть супер-приложения на программу на визуальном языке Scratch. Программа на Scratch также есть совокупность скриптов, срабатывающих по триггерам, например, триггер начала работы, триггер касания объектов на экране и т.д. Разница в том, что супер-приложение является распределенным и меж-платформенным.
Понятно, что нужно обеспечить бытового программиста инструментами, средой разработки и готовыми сценариями. Об этом мы поговорим в следующих статьях.
Полезные ссылки
Комментарии 1
Очень полезное видение! Потому что полноценное изучение языков программирования всеми - это такая же утопия, как и полноценное изучение всеми обычных иностранных языков или математики на уровне большем, чем школьный курс (да и его то многие забывают уже на уровне алгебры). Поэтому нужны средства программирования бытовой техники и облачных приложений типа C2C, C2B и B2C, позволяющие такие программы "набирать из кубиков".