Киберфеодализм или Полдень XXII века?

2

Не вдаваясь в политические и социологические аспекты вопроса, зададим себе вопрос на вопрос: А что надо сделать сейчас, чтобы наступил все же Полдень?

Если мы ограничимся только технологической составляющей, то часть ответа очевидна: программирование – вторая профессия и вторая грамотность. Говоря другим языком, созидающая часть человечества (а в идеале всё человечество) использует компьютеры для решения своих рутинных и творческих задач. Программирование уже нас окружает, люди программируют везде и всегда, хотя нет понимания, что это часть нашей жизни. Часть, которая не уйдет, а вырастет и окрепнет. Люди будут программировать все больше, как это не назови.

Теперь попробуем понять – как они будут программировать? Или о каком программировании мы говорим?

Для ответа на этот вопрос, разделим области программирования на слои, они очевидны:

  • Инфраструктурное или государственное программирование
  • Производственное или корпоративное программирование (B2B)
  • Программирование приложений (B2C)

Еще можно выделить учебное программирование (обучение программированию) и спортивное (олимпиадное) программирование – но это не слои. Обучение программированию относится к каждому слою, а спортивное – это что-то типа подготовки спецназа.

Мы же говорим о программировании для всех, и такое программирование, очевидно, не попадает ни в один из слоев. Скорее, это еще один слой, который можно назвать «бытовым программированием».

Чем бытовое программирование отличается от всех остальных?

Во-первых, отличие в требованиях к результату и способам программирования.

  • Инфраструктурное: Защищенность (безопасность), бесперебойность, надежность, производительность
  • Производственное: Эффективность, производительность, надежность, гибкость
  • Программирование приложений: Конкурентные преимущества, time-to-market
  • Бытовое: Простота (легкость) программирования, наглядность, унифицированный способ работы с разными устройствами, отсутствие необходимости в длительном обучении и чтении руководств

Как уже видно из этого списка, слой бытового программирования явно отличается от других.

Во-вторых, важной особенностью бытового программирования является то, что программы делает не профессиональный программист. Сокращенно можем назвать: M2M (me-to-me).

Бытовое программирование можно определить как программирование человеком своих устройств для решения бытовых (повседневных) задач. Бытовое программирование очевидно распространяется на решения семейных задач и (частично) задач индивидуальных предпринимателей и малых предприятий. К «своим» устройствам я отношу не только гаджеты и компьютеры, а также сервисы и ресурсы (например, Яндекс.Диск), которые могут использоваться для решения повседневных задач.

Требования к инструментам разработки для бытового программирования явно отличаются от требований к инструментам для других уровней.

Рассмотрим бытовое программирование на жизненном примере.

Ребенок идет домой из школы.

Хочу запрограммировать следующее:

  • Получить сигнал, когда он вышел из школы
  • Получить тревожный сигнал, если он вышел не вовремя
  • Посмотреть маршрут движения на карте – онлайн или позже
  • Получить сигнал, что он дошел до дома

Очевидное условие: у ребенка должно быть устройство с GSM/GPS (часы, браслет или телефон)

Что нужно для решения этой задачи бытовому программисту:

  • Расписание уроков (доступное по сети)
  • Гео-локатор в устройстве (доступный по сети)
  • Карта с возможностью изображать маршрут на моем устройстве (смартфон, планшет, десктоп)
  • Сервис для сохранения маршрута (облако, желательно приватное)
  • Сервис, связывающий все компоненты – некий управляющий «диспетчер»

Если все это есть, бытовой программист может написать скрипты и расставить триггеры для запуска этих скриптов. Скрипты и триггеры в совокупности и составляют «супер-приложение», решающее задачу.

Набросаем часть решения (то, что нужно запрограммировать):

  • Диспетчер отслеживает время завершения урока (сервис времени) и подает сигнал тревоги, если через N минут после завершения урока ребенок не вышел из школы;
  • Устройство ребенка посылает сообщение диспетчеру при пересечении границы школы;
  • Получив сигнал от устройства (о пересечении границы), диспетчер проверяет время по расписанию уроков – подает сигнал тревоги (на мое устройство), если не вовремя, или сигнал выхода, если вовремя;
  • Диспетчер подключает поток координат к карте на моем устройстве для показа маршрута;
  • Диспетчер сохраняет маршрут в облаке;

Очевидна похожесть супер-приложения на программу на визуальном языке Scratch. Программа на Scratch также есть совокупность скриптов, срабатывающих по триггерам, например, триггер начала работы, триггер касания объектов на экране и т.д. Разница в том, что супер-приложение является распределенным и меж-платформенным.

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

Полезные ссылки

  1. Визуальный язык Scratch 
  2. Первая статья о бытовом программировании
  3. Попытка прогноза


Читайте также:

 

Комментарии 1

Константин Утолин в 08.07.2019, 15:43

Очень полезное видение! Потому что полноценное изучение языков программирования всеми - это такая же утопия, как и полноценное изучение всеми обычных иностранных языков или математики на уровне большем, чем школьный курс (да и его то многие забывают уже на уровне алгебры). Поэтому нужны средства программирования бытовой техники и облачных приложений типа C2C, C2B и B2C, позволяющие такие программы "набирать из кубиков".

Очень полезное видение! Потому что полноценное изучение языков программирования всеми - это такая же утопия, как и полноценное изучение всеми обычных иностранных языков или математики на уровне большем, чем школьный курс (да и его то многие забывают уже на уровне алгебры). Поэтому нужны средства программирования бытовой техники и облачных приложений типа C2C, C2B и B2C, позволяющие такие программы "набирать из кубиков".
Уже зарегистрированы? Войти на сайт
10.10.2024

Подождите минутку, пока генерируется календарь