Переосмысление электронных таблиц: программирование

Является ли использование электронных таблиц таким же, как программирование? Это спорно *.

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

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

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

Как насчет графиков? Они слишком наглядны, чтобы их можно было рассматривать как программирование? Мы подумаем. Чтобы создать диаграмму, вам нужно выбрать данные, которые вы хотите нарисовать. В зависимости от типа диаграммы эти данные могут состоять из одного или нескольких столбцов: они являются входными данными. Затем вы можете настроить метки, форму точек и т. д. Дополнительные входные данные и параметры, влияющие на выходные данные. Разве это не то же самое, что вызвать функцию?

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

  • Беспорядок. В электронной таблице большинство, если не все данные видны на переднем плане и занимают центральное место. Это может сделать навигацию по электронной таблице настоящей проблемой.
  • Ограниченная выразительная сила. Табличные «программы» основаны на конструкциях, предлагаемых в формулах, макросах и предопределенных функциях. Когда они не отвечают всем требованиям, люди находят обходные пути — обычно уродливые. Нижние ссылки показывают, как это можно решить.
  • Состав. Визуальная среда электронной таблицы способствует объединению связанной информации, чего нельзя сказать о макросах и формулах. Даже если формулы предназначены для работы со строками, нет особого смысла давать им имена и повторно использовать их на разных листах.
  • Версии. Части «программы» можно было копировать из одного места в другое без учета синхронизации версий. Кроме того, поскольку офисные документы редко выигрывают от надлежащего управления версиями, более старые версии заканчиваются копиями файла с неправильными именами в нескольких местах.

Каковы мои идеи революционизировать электронные таблицы?

Во-первых, признайте роль приложения для работы с электронными таблицами как визуальной среды программирования. «Электронная таблица» должна состоять из одной или нескольких «программ» в формате, полностью подходящем для управления версиями и структурного программирования. Детали могут быть скрыты от пользователя.

Во-вторых, используйте согласованный язык и набор функций между формулами и программами («макросы»). Они должны составлять единое целое для легкой передачи навыков.

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

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

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

*



https://mgadams.com/want-to-learn-to-code-start-with-excel-4f5902fb1b2f
https://citeseerx.ist.psu.edu/viewdoc/download?doi= 10.1.1.151.6540&rep=rep1&type=pdf

https://thenewstack.io/microsoft-excel-becomes-a-programming-language/
https://www.microsoft.com /en-us/research/blog/lambda-the-ultimatae-excel-worksheet-function/