Несколько ссылок на мои статьи в КТ, которые по тем или иным причинам являются "программными" (излагают принципиальные для меня идеи или являются результатом серьезных исследований). Поскольку предыдущий опыт демонстрации статей читающей публике сильно поуменьшил иллюзии касательно умения людей читать, здесь же происходит акт невиданной доброты - объяснение "что же хотел сказать автор". Порядок статей - хронологический.
Незваный гость на пиру воображенияСтатья о том, что привычные способы взаимодействия с реальностью в инфо-пространстве не работаю. О том, что попытки насильственно воплотить привычные физические законы в информационном мире порождают множество уродств, к которым мы уже привыкли (от копирайта до "software is provided AS IS"). Некоторые темы рассмотрены подробнее в последующих статьях - проблема копирования в
"Ctrl+C против муракамской кошки", а другие подходы к надежности софта - в
"Кое-что о раскулачивании колхозов" (аннотацию см.ниже).
Главное свойство ЭТОЙ реальности - отсутствие закона сохранения чего бы то ни было. Ты воспитан в культуре "если где-то чего-то убыло, то где-то в другом месте чего-то другого прибыло". Забудь.
Информация может возникать из ниоткуда. Журналист, с мясом выдирающий из себя буквочки; владелец цифрового фотоаппарата [...]; студия звукозаписи - наполняют винчестеры, дискеты, диски и сети тем, чего раньше не было; и при этом ничего нигде не убыло (с точки зрения цифровой реальности). И поэтому информации, в отличие от вещества, становится больше. Это нужно принять, чтобы двигаться дальше.
...А серебряной пули все еще нетНе очередное подтверждение правоты Брукса, а попытка взглянуть на прогресс индустрии софтостроения, дать обзор и некоторые предсказания на будущее, через призму поисков этой самой "серебряной пули" - магического средства, которое позволит радикально ускорить/упростить создание программ. Рассматриваются следующие направления и тенденции развития (из форматирования заголовков в КТ, которые все стали одного уровня, это неочевидно):
* Увеличение вероятности достижения результата: ставка на эффективность (новые языки, революции в способах разработки и т.п.) vs. ставка на надежность (в смысле "гарантированного производства заданного объема работы в заданные сроки" - методологии, фреймворки, платформы)
* Улучшение отклика от пользователей - гибкие процессы разработки, новые методы "доставки" приложений (увеличивающие скорость выхода новых версий - читай веб-приложения и иже с ними).
Возможно, из статьи это неочевидно, но автор считает все три вектора развития равно-важными и равно требующими учтения при прогнозировании будущего индустрии.
Предположим, мы начинаем амбициозный софтверный проект. Что нужно, чтобы быть уверенным в [достижении результата] том, что проект будет успешно завершен? Ответ здесь зависит от того, кто такие «мы» - маленький стартап из трех студентов или большой Микрософт? В первом случае «успешно завершен» означает «мы допишем его до того, как нам надоест; и сделаем все настолько cool, чтобы разом уесть всех возможных конкурентов», во втором - «проект не завалится под собственной тяжестью и будет закончен хоть когда-нибудь». Другими словами, первых куда больше интересует эффективность используемых инструментов-технологий-подходов, а вторых - надежность (при этом первые готовы пойти на некоторые компромиссы в области надежности, а вторые - пожертвовать некоторой эффективностью).
Кое-что о раскулачивании колхозовАнализ изменения "распределения сил" среди профессиональных и непрофессиональных программистов (обычных пользователей, которые "кое-что автоматизируют"). Прогноз развития ситуации в сторону дальнейшего расслоения - на производителей надежных платформ, работающих в стиле "производства" (интенсивное проектирование и тестирование, формализованные процессы) и "вольных художников" - создателей мелкого прикладного софта, работающих в стиле "творчества". Рассматриваются разные технологии "пользовательского программирования" (веб, десктопные виджеты, простые языки).
Представляется, что "десктопная система будущего" - это всего несколько "программ" в старом смысле слова (серьезных систем, написанных на эффективных языках подготовленными командами профессионалов), населенных бессчетными мелкими "штучками на все случаи жизни" и тесно переплетенных с десятками веб-приложений [Веб при этом может разделиться на два разных "Веба"- старый (тексты, связанные ссылками) и новый (программы, активно работающие и на сервере, и на клиенте). Кое-кто даже предлагает ввести новый протокол HATP (HyperApplication Transfer Protocol в пику HyperText Transfer Protocol)].
NB: Название статье дано редактором. Оригинальное название - "Кое-что о цирковых зайцах, миллионе леммингов и обезьяне с пишущей машинкой" мне нравится куда больше, но не вписывалось ни в тему номера, ни в верстку журнала.
Органичное строительствоМелкая, но симпатичная (мне) заметка о том, какая метафора могла бы лучше всего описать нашу (программистскую работу).
Как бы то ни было, почти любая попытка определить деятельность разработчиков ПО приводит к тому или иному компромиссу между производством (production) и творчеством (creation) [На научные же методы, как основу процесса разработки, мало надежды осталось со времен краха автоматизированных средств написания и верификации программ]. Соответственным образом выглядит и большинство современных средств разработки: как среда для созидания с множеством возможностей анализа структуры и процесса, а также использования "типовых решений".
NB: Авторское название статьи "Будь органичным!" (и подзаголовок "(Разработчик в поисках метафоры)")
NB2: В КТ сбита нумерация ссылок/источников в конце статьи (из-за чего цифры в тексте теряют смысл). Вот правильный список с сохраненной нумерацией:
1. O.Imbusch, F.Lanhammer, G.von Walter, «Ercatons and Organic Programming»,
http://www.oopsla.org/2005/ShowEvent.do?id=602.
http://www.organic-computing.org/3.
http://web.archive.org/web/20050412193622/http://www.carc.aist.go.jp/gaea/4. Cees de Groot, «Towards Organic Software»,
http://www.cdegroot.com/articles/1999-organic-software/ Обалдеть, завтра дайте три!Предновогодняя статья с обзором вариантов, которые предсказываются различными заинтересованными лицами для грядущего "Web 3.0". Простенько и ценно лишь недавностью написания (собирает всякие рассуждения "из Интернетов" в одном месте).
NB: В оригинале называлась, конечно же, "Обалдеть, дайте три!". Понятия не имею, зачем редакция сделала ЭТО с названием.
Все пока. Рассмотрение моей любимой работы - темы номера о генезисе и развитии языков программирования, - сделаю как-нито отдельным постом.
Ну и, да - это далеко не все статьи, написанные мной для КТ. Это, скажем так, те, которые я хотел бы популяризовать и обсуждать.