Эссе о разработке игр, мышлении и книгах

Пара слов о GitHub Сopilot

DALL-E: "Vrubel style painting of pair programming Robot + Human. An robot is writing code, a human is reviewing code".

DALL-E: "Vrubel style painting of pair programming Robot + Human. An robot is writing code, a human is reviewing code".

Последние несколько недель использовал GitHub Сopilot, благо для Emacs есть плагин. Поделюсь впечатлениями.

Для справки, я уже лет 15 осознанно не использовал умное автодополнение. Всё моё автодополнение — это DynamicAbbreviations, по сути — дополнение написанного слова на основе словаря из открытых исходников.

Причина отказа такая: используя «умное» автодополнение (например, подсказку аттрибутов/методов объекта) перестаёшь понимать проект. Начинаешь на автомате брать предлагаемые варианты методов/переменных, не разбираясь что они конкретно делают и есть ли альтернатинвые варианты.

В краткосрочной перспективе отказ от автодополнения повышает нагрузку на человека (особенно на память) и замедляет работу, но в доглосрочной даёт глубокое понимание проекта, возможнсоть крутить его в голове как угодно, что с лихвой окупает потери на скорости в моменте. А поскольку я работаю только над долгими проектами, долгосрочная выгода важнее.

С Copilot я, похоже, вернуcь к умному автодополнению, в его более правильном варианте.

Итак, давайте посмотрим чего умеет и не умеет Copilot.

Далее

Feature Programming

Эссе по итогам нырка в Deep Learning, но не о DL и даже не совсем о Machine Learning, а о новой парадигме программирования, которая рождается из него.

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

В следствие выбранной темы, эссе получилось футурологическим и абстрактным. Например, я не буду перечислять области применения DL и достигнутые в них результаты — этим итак всё инфопространство забито.

Оговорка раз: я определённо не эксперт в машинном обучении. Эссе в большей степени отражает мой опыт и картину мира, нежели знания и понимание ML и DL.

Оговорка два: термины «признак», «feature» будут использоваться достаточно вольно.

Далее

Экзокортекс 3.5

Источник: [Pixel Key](https://www.pinterest.com.au/pin/861946816168401342/)

Источник: Pixel Key

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

Для начала отметим несколько банальностей:

  • Экзокортекс — это инструменты для работы именно с информацией. Протез руки или, там, автомобиль — это экзоскелет.
  • Вид экзокортекса определяется компромиссом между потребностями человека и возможностями технологий.

Долгое время — тысячелетия — роль экзокортекса выполняли всевозможные библиотеки, картотеки, архивы. Нельзя сказать, что они были неэффективным и не развивались. Уверен, история библиотечного и архивного дела вещь интересная.

Но из-за технологических ограничений, экзокортекс был удовольствием для богатых. Можно сказать, качественный экзокортекс был недоступен рядовому жителю Земли большую часть нашей истории.

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

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

Поэтому, первое, что слудует отметить: экзокортекс будущего — это софт для управления личной информацией.

Термин «управление» я выбрал специально. Информацию необходимо не только хранить, но и передавать, редактировать, искать — нам приходится организовывать полный жизненный цикл информации, то есть управлять ей.

Под личной информацией я имею в виду информацию, с которой человек уже взаимодействал и счёл её полезной, или его софт счёл её полезной. Управлять всей информацией, само-собой, в обозримом будущем вряд ли получится.

Далее

Композиция vs классификация

Эволюция организации информации.

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

Вопрос не так прост как кажется.

Исторически человечество сильно клонится к классификации. Начиная с ранних лет мы учим детей что классификация — это единственный основной способ организации информации — на неё опирается большинство учебников.

В итоге почти все взрослые люди имеют «урезанную» модель мира и не могут, например, в изобретательство.

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

Заранее прошу прощения у математиков и других формалистов за отсутствие должной строгости в изложении. Свою задачу я вижу не в доказательстве математических свойств композиции и классификации, а в популяризации применения композиции.

Далее

О книге «Алмазный век»

Обложка книги «Алмазный век или букварь для благородных девиц»

Алмазный век или букварь для благородных девиц Нила Стивенсона я взялся читать из-за второй части названия. В статье про электронную книгу для детей на dev.by кто-то упомянул букварь как пример крутой технологии, меняющей общество. А я уж очень соскучился по хорошей «Лемовской» футурологии. Лем-то уже не пишет, по объективным причинам… Ну, думаю, вот оно! Лауреат премии Хьюго ерунду не напишет! Ерунду, конечно, не напишет, но и правдоподобно описывать будущее тоже не обязан :-D

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

Далее