Jan 20, 2009 16:37
Сразу предупреждаю - говорю обо всех офисах вообще, как таковых, чтобы не было обычной вони `в вашем (с каких пор он мой?) опен офисе всё ещё хуже`.
Начнём с постулатов, которые будут разжёваны ниже.
P1. Офисы не нужны. Нет задач, которые офис будет делать эффективнее, чем более другие тулзы.
P2. Офисы вредны. На решение типичных задач в офисах уходит в разы больше времени, чем в более других тулзах. При этом результат получается хуже.
Почему офисы используются? Тут всего одна причина:
Маркетинг, который убедил многих что офис позволяет решать сложные задачи минимальными усилиями, без обучения. Это утверждение, как минимум, ложно. Чтобы решить любую сложную задачу всегда требуется обучение. Нет автомобилей, которые позволяют кому угодно, не обучаясь, сесть и поехать, нельзя сразу заговорить на иностранном языке, итд.
Пройдёмся по пакетам.
1. Текстовый Процессор
Основная задача - набор текстов для представления либо на мониторе, либо на бумаге. Да, пользователь может набрать текст не обучаясь - это просто. Но этот текст поплывёт при смене шрифта, при печати. С ним будут проблемы при редактировании, невозможно будет вставить автооглавление, и прочая и прочая. Все встречались с текстами, набранными без обучения, все в курсе. Следовательно, придётся затрачивать время на изучение стилей, приёмов использования невидимых таблиц. Обязательно. При этом всё равно отсанется некоторое количество проблем при распечатке и переносе документа на другой компьютер.
Решение? LaTeX (возможно вкупе с LyX). Для освоение LaTeXа требуется изначально потратить некоторое время (около дня, что МЕНЬШЕ времени необходимого для изучения текстового процессора). При этом исчезают все проблемы с переносимостью и распечаткой. Личный опыт и наблюдение за набором различных текстов в текстовых процессорах и в LaTeXе показали, что в последнем скорость набора примерно в 2-3 раза выше. В случае научных текстов с большим количеством формул разница может измеряться уже порядками а не разами.
Если мы готовим не одноразовый документ, работа над которым ведётся продолжительный срок, то пользы от LaTeXа ещё больше. Plain textовые файлы удобно хранить в RCS, при этом имеем бонусную возможность коллективной работы над документом и избегаем хаоса.
2. Презентации
Тут всё близко к тому что сказано о текстовых процессорах, может чуть менее плохо. Никогда не видели как презенташки плыли при показе, не влазили в экран итд? Ну вот. Что типично, решение тоже - LaTeX.
3. Табличные Процессоры
А вот тут всё чуть-чуть сложнее чем с пунктами 1 и 2. Основная проблема с таблицами - это перемешивание данных и бизнес логики. Да, очень просто сделать суммирование колонки, но в случае даже простейшего рассчёта налогов на ИП - жопппппппа. При необходимости внести малейшее изменение - проще переписать. Неаккуратное движение руки при вставке дополнительного столбца - все формулы перестают работать (домашнее задание - попробуйте вставить столбец в середину сохранив все формулы (на других листах в том числе)). При этом если ошибка была сразу незамечена - начинается лихорадочное перерывание бэкапов (если они есть, ага). Сравнить бэкап и текущую версию что бы выявить ошибку - невозможно - бизнес логику мы не видим вообще, только данные. Про невозможность юнит тестирования я промолчу. Кошмар, кошмар, кошмар. В принципе, можно продолжать бесконечно, но каждый может додумать сам.
Решение тут чуть посложнее. Необходимо освоить какой нибудь скриптоязык. Руби - хороший вариант. Данные - в CSV, скриптик на руби их обрабатывает, генерит по шаблонам LaTeX документ... Графики и прочая - тоже не проблема. Единственный минус - существенное время (неделя?) на освоение. Программистов, использующих табличные процессоры просто пристрелить, как безнадёжно тупых (им то и осваивать ничего не надо, бери и экономь своё время и деньги).
4. Базы Данных
Я три разы пытался сформулировать мысли по базам данных в составе офисного пакета, но что то все три варианта содержали больше 50% мата. Кто видел ЭТО, тот меня и так поймёт, кто не видел, тому это и не надо.
5. Автоматизация И Прочая
Я по долгу службы писал что на VBA что на StarBasic. Это наркотики. Писать на этом невозможно. Берём например VBA. Часть фунок надо вызывать как Func(1, 2), часть как Func A := 1, B := 2, часть как Func 1, 2... Приличное количество примеров из стандартной документации не работает в принципе. Стандартная либа убога, ... Выход? Тот же руби, освоенный в пункте 3 :)
Комменты? Опровержения?
PS. Коменты по поводу описок, запятых и написания `чтобов` будут безжалостно уничтожаться. Если найду время и силы - вечером поправлю.