Иванов-Петров Александр (ivanov_petrov) wrote,
Иванов-Петров Александр
ivanov_petrov

Почему мало программ и мало ли

Я задал вопрос. У меня было мнение, что многообразие программных продуктов недостаточно большое - не "нет хороших программ", а "беднее многообразие, чем, казалось бы, должно было быть". Конкретнее, я спросил - отчего так медленно развивается программное обеспечение по сравнению с хардом.
Собственно, не думаю, что мои соображения настолько интересны, что стоит их повторять. Но в тот пост http://ivanov-petrov.livejournal.com/1855762.html пришли профессионалы, которые взяли на себя труд сказать, как им видится развитие всей этой отрасли - компьютерного программирования. Это уже интересно. Комментов оказалось много, и меня попросили сделать выборку ответов - я сначала отказывался, а когда попросили в который-то раз, решил, что раз просят - значит, надо. Читать всё скучно, так вот - ниже подборка тех, которые мне показались наиболее важными и интересными, независимо от того, согласен я или нет и независимо от моих ответов. Свои реплики я убрал, цитирую только мнение тех, кто разбирается в вопросе, и кто написал длинный, развернутый ответ. Если я кого забыл или не заметил - пожалуйста, извините, либо невнимательность, либо я не разобрался и не понял всей серьезности вашего мнения. При желании можно идти и читать все комменты


vsh
http://ivanov-petrov.livejournal.com/1855762.html?thread=95995154#t95995154
Есть такая ситуация, что железо вы меряете в измеримых величинах (мегагерцы... миллиампер-часы...), а программы в новых смыслах. Потому и выходит такая диспропорция. Если мерить все в новых смыслах, то ситуация получается симметричная. "Любой может придумать еще сто пятьсот важнейших устройств, которых нет. Сделать их, ну конечно, можно. Почему их и тысяч других - нет?"
Настоящие прорывы в железной архитектуре - вещь не такая уж частая. Или, точнее, частая, но вполне сравнимая по частоте с настоящими прорывами в ПО.
По иллюстрациям-примерам могу бегло пройтись, там не все так просто - надо или нет?

http://ivanov-petrov.livejournal.com/1855762.html?thread=96041234#t96041234
Я не уверен, что в посте есть что опровергать по большому счету, кроме эмоций. Мелкие неточности есть: например, мобильный Google translate вроде умеет переводить с картинки (не проверял, насколько это вообще эффективно, но фича заявлена). А графические редакторы "под живопись существуют, но у профессионалов в области CG не очень-то популярны, видимо, это очевидная, но тупиковая ветвь развития.
Но в целом факты даны верно: действительно, емкость аккумуляторов растет и растет, а текстовый процессор уже годами примерно один и тот же (впрочем, и тут есть оговорки - в конце 90-х начался важный и большой прогресс в области совместного создания текстов: wiki, cvs+markdown, google docs и т.п.)

Я могу рассказать, как за последние лет 15 поменялось ПО для разработки, а вы уж делайте выводы.
Огромный пусть прошли визульные среды разработки: от неповоротливых и тормозных монстров без особых преимуществ перед старым добрым текстовым редакоторов до подсветки синтаксиса, интеграции с практически всем инструментарием разработчика (дебаггер, контроль версий, юнит-тесты, статический и динамический анализ кода, базы данных, система развертывания и все-все-все), визуальных редакторов окошечек. Небо и земля.
Большое развитие было в области сопутствующих методов: системы контроля версий, тестировочные библиотеки, профайлеры, статические анализаторы, системы постоянной интеграции, issue-трекеры и прочие такие штуки. Стандартный процесс разработки за 15 лет поменялся очень значительно благодаря новому ПО (и наборот, куча нового ПО появилась, потому что менялся процесс разработки).

gouriev
http://ivanov-petrov.livejournal.com/1855762.html?thread=96037906#t96037906
ну, получилось, что я не спорил. ну и хорошо. хотя можно и поспорить :)

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

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

Успех инновации и быстрой победы сродни чуду. Нужно действительно новое, для которого общество пользователей
созрело. Угадать это - отдельный талант. Или вопрос сказочного везения. Зналы бы прикуп - жил бы в Сочи.
Вот Джобс умел. Гейтс умеет чуть хуже. Иногда люди случайно попадают в струю, как Киркпатрик, придумавший
ЖЖ.

Я знаком с одной командой, занимающейся вводом рукописного текста. У них все хорошо. Сначала они делали
ввод пером для одного из ранних наладонников, потом переключились на обработку рукописного текста
для почтового
ведомства США. Еще одна команда специализируется на вводе древних шрифтов и алфавитов и работает
для архивистов ФРГ. У них тоже все тип-топ. Почему этого нет на массовом рынке? Вопрос, конечно, интересный.
Но, думаю, соображения общего характера, насчет платежеспособного спроса (или слишком осторожных оценок
этого спроса), как раз все объясняют. А способ ввода все же должен быть удобным. Ввод и преобразование
в символьный вид рукописей - это одно, человеко-машинный интерфейс - совсем другое. Да, ни один из этих
проектов не ориентирован на русский язык. Тут Вы правы. Мне кажется, это вопрос экономический. Вы никогда
не использовали нелицензионный софт? А исследователи алгоритмов и программисты тоже хотят жить,
растить детей, ездить в отпуск, и т.п.

http://ivanov-petrov.livejournal.com/1855762.html?thread=96071186#t96071186
Вопрос "художественных" программ, согласен, имеет второе дно, кроме очевидного экономического. Возможно, даже это второе дно принципиальное. Насколько хорошо компьютер может имитировать настоящие, материальные предменты и технологии? Но здесь, мне кажется, дело не только в программах, но и в устройствах. Все же мышь и джойстик - это не кисть с упругостью, весом, гигроскопичностью. Я не спец. в изобразительном искусстве, поэтому приведу пример из музыки. Казалось бы, электронным инструментам доступны любые тембры, высоты и скачки звука. Однако широкого распространения эта музыка не получила. (Наоборот, синтезаторы считается тем лучше, чем лучше они имитируют натуральное.) Я долго думал, почему, и объяснил себе это с позиций теории информации. Все дело в ширине канала управления, тупо в битах :) . Скрипач может и покачать ноту рукой, и сыграть ее чуть ниже или выше нормы, и так провести смычкном, и эдак. Сколько нужно кнопок, чтобы передать все эти нюансы электронному инструменту?! (Или сколько часов программирования при предварительной подготовке фонограммы?) А без таких нюансов электронная музыка проигрывает естественной просто потому, что более скучна. Несмотря на потенциально неограниченные возможности синтеза звука. Это к вопросу об аппаратной части человеко-машинных интерфейсов :) На истину в конечно инстанции не претендую.

Простых программ даже переизбыток. Вот иллюстрация: дочь решила учиться на гитаре, попросила в подарок тюнер (прибор для настройки). А у самой 2 крутых телефона - iphone и htc. Я конечно, не отказался, но говорю: давай проверим, нет ли таких программ для твоих телефонов? (У каждого из произволителей есть магазин для загрузки платных и бесплатных программ.) Проверили. Для одной модели - 50 вариантов, для другой - 150. Вопрос решен.
Хотя, мне как пользователю, тестировать столько вариантов чтобы выбрать лучший совсем ни к чему.

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

tilimilitram
http://ivanov-petrov.livejournal.com/1855762.html?thread=95999250#t95999250
А где, к примеру, позвольте спросить, в массовой культуре те высокие достижения, что нам были обещаны? Нету их. Или есть в видах каких-то странных, дистрофических.

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

С другой стороны, в тех областях, что у вас названы появилась устойчивость после фазы бурного роста. Эта фаза не может долго длиться -- теперь растет в других местах. А мы настолько привыкли к экспоненциальному росту, что не замечаете, что сорок лет в истории миг краткий. Не говоря о считанных годах массового спроса на планшеты. Да и в тот краткий миг прогресс солидный весьма -- эппловская Siri от программ 1972 года очень далеко отстоит.

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

http://ivanov-petrov.livejournal.com/1855762.html?thread=96021010#t96021010
Основная мысль в уподоблении массового софта другим массовым продуктам. Рядовому-то пользователю-то много чего нужно, но он сам не знает чего именно. И соотношение доходность/(риск*сроки) максимизируется по рыночным причинам для того пользователя весьма неудачно -- рынок штука весьма несовершенная. И так же дела в самых разных областях обстоят.

Андрей Гаврилов
http://ivanov-petrov.livejournal.com/1855762.html?thread=96014098#t96014098
я не буду отвечать на ваше "Кто виноват?" "почему", я лучше расскажу "Что делать" как, и когда все изменится.

Вот сделают "машинку", которая по набору ф-ций будет примерно равна GPS (General Problem Solver) 1959-го года, то, с чего работы по слабому ИИ в рамках нисходящего подхода начинались. Такую же, только обходящую проблему комбинаторного взрыва (более "естественно" ищущую решения).
Т.е. машину, способную опознать в постановке задачи задачу, которую уже знает как решать, либо произвести декомпозицию на задачи которые умеет решать, и которые не умеет решать, для задач же, которые не умеет решать - узнать у человека, как их следует решать (т.е. как использовать те инструменты, которыми система владеет, для решения такой задачи).
И приспособят ее, эту "машинку" ("Решатель") под задачу написания программ. Со складыванием приемов/ решений/ ходов в общую "вики".

И все, ваши "сто цветов" расцветут. Во-первых, все имеющиеся решения (код) будут достаточно быстро "охвачены" такой системой, ибо программирование с такой машиной будет давать конкурентное преимущество (да и полуавтоматизировать процесс "перевода" рано или поздно можно будет). Ну а далее - все, любые ваши "пожелалки" вы сможете получить за полчаса/день "разговоров" с системой/ "указанием пальцем" на варианты, которые больше похожи на то, что вам надо. Максимум, куски, которых в системе нет (если вдруг какая-либо подзадача в вашей задаче окажется настолько уникальной (что чем дальше, тем маловероятнее будет)), вам какие-нить фрилансеры допишут платно (возможно - без каких-либо телодвижений с вашей стороны, например, система формулировки подзадач на какой-нибудь бирже задач вывесит)... или бесплатно.

Ну а мир, в котором каждый _так_ творить сможет, - ну оооочень сильно от мира нынешнего будет отличаться. Это вообще новый тип жизни знаний в обществе/ культуре будет. Следующий шаг.
(c) А.Г.
P,S, и я подозреваю, появится такое достаточно скоро.

66george
http://ivanov-petrov.livejournal.com/1855762.html?thread=96029202#t96029202
Объём написанных программ растёт гораздо медленнее, чем мощность компьютеров. Очень быстро растут убытки от ошибок программистов (программы используются гораздо чаще). Потому что программы пишут и отлаживают кустарно, как в Средние века. Давно уже идёт некая научная деятельность "как правильно писать и отлаживать программы", но пока она больше обогащает математику, чем программирование. Самый заметный результат -- введение типов в в языки программирования. На форуме по теории типов уныние "глупые программисты ничего не понимают, что мы тут изобрели".

http://ivanov-petrov.livejournal.com/1855762.html?thread=96031250#t96031250
Я сам не программист и могу ошибаться. Попытки "писать программы без ошибок" начались давно (в 70-е были такие "логики Хоара", на русском языке есть книга Грис "Наука программирования"), затем привлекли более серьёзную математику. В результате получилось что-то интересное для математики
http://ivanov-petrov.livejournal.com/1855228.html?thread=95914748#t95914748
а программируют по-прежнему кустарно. Возможно, со временем программисты подтянутся, а может, вся затея безнадёжная.

http://ivanov-petrov.livejournal.com/1855762.html?thread=96032786#t96032786
Ну, опять же, я не программист и рассуждаю с точки зрения математика. Математическая идея такая: специалисты хорошо знают, что доказательства и алгоритмы -- вещи близко родственные. Если мы доказываем "у двух натуральных чисел есть наибольший общий делитель", прямо из доказательства можно извлечь программу (алгоритм Евклида), это делается автоматически. Вот идея в том, что так и надо программировать. Но реально ли научить этому широкие массы программистов -- это вопрос.
Тут упирается не в экономику, а в ограничения человеческой природы, возможно.

Sergey Lysak
http://ivanov-petrov.livejournal.com/1855762.html?thread=96030738#t96030738
Для того чтобы появлялись такие программы для избранных, вопреки экономике, их авторы должны быть в два раза более избранными, особенными. кроме того что прийти в ах от идеи указанных программ, они должны уметь хорошо программировать.

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

Второй момент - программисты - вовсе не психологи. А скорей наоборот, свойства профессии обычно лишают программиста и остатков понимания других людей. Поэтому, когда программисты создают продукт сами - интерфейс у него будет ну полный 3.14ец. Чтобы он получился хоть каким-то - над программистом должны стоять менеджеры, юайдизайнеры, маркетологи, эксперты в предметной области. А успех будет когда джобс какой-нить будет постоянно требовать от программистов подчинения дизайнерам.
То есть - программисты, сами по себе - не умеют писать программы приятные пользователю. Себе - могут. Выйдет правда Emacs :) Поэтому даже если б задумал какой программист потратить пару лет (живя на скопленные деньги) на великую и красивую программу - выйдет у него кособокое и кривое. потому что красота для программиста - это соооовсем другое чем описано в типике.

третий момент
а сами пользователи, даже продвинутые, не могут сформулировать весь набор требований к программе, чтобы она была приятной, цельной. не какие-то там фичи, "краска чтобы текла", а вот - конечный продукт которым удобно пользоваться. У программистов на это даше шутка есть - сделайте нам кнопку "Чтобы все было хорошо!". Вот вы пишите - где "программы сочинающие мне музыку?" Отлично, давайте я вам напишу такую программу, забесплатно. Только вы мне вначале объясните, формализуйте - а что для вас - музыка, а что шум и какафония? какая музыка для вас плохая, а какая - хорошая? Опишите свои музыкальные пристрастия - инженерно-математически.
генерирование ландшафта - тоже самое - я в ландшафтах ничего не смыслю. и врядли вы найдете программиста который смыслит в ландшафтах.
который смыслит в "рельефная, сухой иглой, офорт, акватинта"
а кто может описать?

Это убого.
Да, правильно. И будет все оставаться убогим до тех пор, пока пользователи, потребители компьютерных программ:
1. не познают себя
2. не научаться формализовывать сами свои требования.

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

http://ivanov-petrov.livejournal.com/1855762.html?thread=96056594#t96056594
насчет быстрой смены условий, да, согласен. надо было конечно сразу написать и про это:
изменение свойств железа приводит к переписыванию существующего софта. не потому что старый не будет работать (хотя и такое нередкость), а потому что выглядеть нужно свежо, по новому.
особенно та самая - видимая часть постоянно переписывается. на моей программерской памяти три таких мощных повторения предыдущего софта в новой упаковке -

1. переход от текстового режима к графическому (причем в одной торговой сети до сих пор вижу на мониторах продавцов текстовое приложение в окошке)
2. переход к веб интерефейсам и распределенным в интернете, по структуре, программам.
3. из-за мобильных платформ - возвращаемся к локально работающему ПО с вкраплениями веба и распределенности.

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

происходит некая перезагрузка, и начинается все с начала - создаем простенькое, по фукнционалу ПО, проще предыдущего поколения, но сложнее внутренне. учимся, и наращиваем богатство функционала до следующего reset'а
подумалось, для сравнения - интерфейс Xerox Ventura Publisher под MS-DOS, сложнее и богаче интерфейсными элементами чем подавляющее большинство веб и мобильных прилолжений. А уж если сравнить упомянутый Адобе Фотошоп, или (программисты знают) IDE типа Visual Studio или Eclipse - то веб-приложения - это просто тотальное убожество. Причем настолько, что в ближайшие годы ничего на вебе подобного не будет. То есть сброс произошел очень сильный - распространение интернета вынудило.

boroda
http://ivanov-petrov.livejournal.com/1855762.html?thread=96041490#t96041490
А можно оспорить исходный тезис (железо развивается, а софт нет)? Оба компонента развиваются в основном количественно, много ли качественных скачков было за последние 20 лет? Процессор, который работает в планшете или смартфоне недалеко ушел от 80386, просто он стал во много раз меньше и быстрее. Тактильные экраны, пожалуй, сильно понизили порог вхождения. Сужу по четырехлетнему сыну, который уже год как рисует на планшете в свое удовольствие.

Конкретные примеры из вашего поста в основном из области "дьявола в деталях". Они требуют огромного труда и могут превосходить доступные аппаратные ресурсы.

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

хорошие конструкторы... деревянные и жидкие, стеклянные и металлические, пластмассовые, бумажные - физику моделировать надо, да и геометрия тоже не сахар Лего в этом смысле очень простая и легко формализуемая система. А вы готовы платить за такой конструктор сотни-тысячи долларов, как за CAD систему?

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

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

http://ivanov-petrov.livejournal.com/1855762.html?thread=96047634#t96047634
Видите ли, пользователь с вашими запросами - это не пользователь, а заказчик. Поэтому то, что подается - подается не вам. С таким стилем мышления вы отлично бы смотрелись в роли вице-президента софтверной компании, по ту сторону рекламы.

И еще одно замечание. Веб- браузер, в который мы оба смотрим, тоже не сильно изменился за 20 лет (а сетевые протоколы и того старше). А вот интернет стал другим. Блоги, социальные сети, Википедия... количественные изменения вызвали инфаструктурную революцию. Да и текстовый редактор, пожалуй, вытеснил пишмашинку.

till_j
http://ivanov-petrov.livejournal.com/1855762.html?thread=96041746#t96041746
Вкратце. Железо двигает рынок развлечений. Программисты специальных программ разбалованы железом и в основном интегрируют куски (как Вы правильно заметили) внося новшества в основном в интерфейс и переносимость. Кроме этого, патентование(даже если хочешь создать всеядный и шустрый редактор, сначала получи разрешение на работу с форматами). В общем, раньше продукт определяли:
1. Удобство и скорость использования.
2. Скорость разработки.
3. Нересурсоёмкость.

В этих координатах, если нет оговорок по ним, чем ближе к кубику, тем лучше.

Сейчас другие оси:
1. Покупательский спрос.
2. Скорость разработки (выхода на рынок)
3. Удобство пользователя.
(скорость использования и нересурсоёмкость сбрасываются на развитие железа)

tolko_ne
http://ivanov-petrov.livejournal.com/1855762.html?thread=96042514#t96042514
Мне кажется, ваши ощущения ошибочны.

Говоря о фактической стороне дела, стоимость и сложность софта растут быстрее, чем стоимость железа под него. По сути, софт берет на себя все больше очень нетривиальных решений и оптимизаций. Реально именно софт сегодня управляет железом, скажем, и в телефоне, и в автомобиле, и далее везде. Именно от постоянной real-time оптимизации идет основная часть экономии энергии и прироста произвидительности.

Два простых примера: за последние десять лет появились революционные алгоритмы в решении логических ограничений (satisfiability solvers). Это позволило не только стоить более мощные, умные и устойчивые чипы и программы, но и решать многие трудные реальные задачи вроде оптимизации расписаний и перевозок. Кстати, основа популярной программы Siri из iPhone -- тоже satisfiability solver.

Другой прорыв в софте и алгоритмах -- анализ изображения или сигнал по случайному подмножеству, sparse sensing. Уже позволил сократить продолжительность и стоимость медицинского MRI во много раз, меняет весь наш подход к вычислительной оптике и "глазам" наших приборов.

Если попросите, Вам приведут массу пользы мы уже извлекаем из Big Data. Все это (как и примеры ниже), в основном результат развития именно software; (при этом появление нового hardware часто являлось необходимым условием, триггером, для всего процесса).

Если позволите, чуть-чуть житейской философии. "Правильный" прогресс сам ложиться в руку, да так, что кажется, что его достижения были с нами всю жизнь. Мы совсем перестали удивляться, скажем, сервису "Яндекс-пробки" (Google-Traffic). А он совершенно невозможен без смартфонов, кот. все время находятся в Интернете (их сигналы и запросы используются, чтобы мерять скорости потоков машин). При этом Интернету всего 20 лет, смартфону меньше 10, а всеобщей завязанности и массовому мобильному интернету -- порядка 5. Т.е. за считанные годы -- полный переворот в нашем потреблении информации, и при этом произошедший почти неосознанно.

Другой пример такого же масштаба (но лет на 5 старше) -- это интернет-банкинг и коммерция. В 1996 году почти никто в Америке не мог заплатить по счету с домашнего компьютера, а в 2001 это делали почти все. Это был гигантский и турбулентный проект, почти полностью на уровне software. Помимо прочего, всеобщая inter-connectivity банков (примерно с 2000 года) привела к невиданной раньше ликвидности, текучести денежных потоков. Один из результатов -- снижение ставок кредита более чем вдвое во всем развитом мире. Это означает гораздо большую доступность кредита (т.е. жилья, машин и т.д.) для огромного числа людей. (Разумеется, такие масштабные перемены идут со складками в виде bubbles, но усредненный процесс, по-моему, налицо). И опять-таки, мы почти не заметили перемену, которая произошла, и, поэтому, вероятно, недооцениваем количество вложенного в процесс труда.

Резюмируя, никакого застоя в software нет, паровоз так несется, что уже почти взлетает. Но, вероятно, с точки зрения пассажира, можно было бы и побыстрее. Принято, постараемся.

http://ivanov-petrov.livejournal.com/1855762.html?thread=96048146#t96048146
Бурный экспоненциальный рост идет повсюду, в том числе и в областях кот. вы упомянули.

Скажем, качество автоматического перевода (и даже спелл-чекера в телефоне) отнюдь не остается постоянным. Оно быстро улучшается на основе нескольких процессов: 1) анализ все бOльших массивов текстов (Big Data + открытость информации) дает более точную статистику и семантику в целом; мы теперь гораздо лучше знаем, какие слова идут вместе, как часто, и что они могут означать в контексте; 2) поскольку все больше Ваших персональных записок есть в сети и доступно, скажем, Вашему телефону или компу, софт улучшает предсказание следующего слова или смысла индивидуально для Вас; 3) все это, конечно, было бы невозможно без возросшей связности и гораздо более быстрого железа (не столько у Вас в руках, сколько в датацентре Гугла).

Однако, поскольку этот прогресс не мгновенный, мы его почти не замечаем, по-привычке посмеиваемся над ошибками автоматического перевода (а они, тем временем, почти исчезли, т.е. из, условно, 25% ошибок превратились в 0.25%).

http://ivanov-petrov.livejournal.com/1855762.html?thread=96048658#t96048658
Т.е. главный мой пойнт: мы движемся очень быстро, а кажущаяся медленной смена пейзажа -- это потому, что Вы смотрите в даль (и это прекрасно).

http://ivanov-petrov.livejournal.com/1855762.html?thread=96069650#t96069650
Это действительно очень правильные вопросы: а как померить улучшение софта? Конечно, все, что можно сделать измеримым, quantify, это делают, по-крайней мере в сегменте "business-to-business", где агенты в среднем более рациональны. Несомненно, качество перевода вполне можно оценить в цифрах. На худой конец, всегда можно посадить 100 экспертов и собрать рейтинги с них. Уверен, все это делается постоянно, скажем внутри Яндекса.

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

Попробую пояснить. Представьте, что мы создаем шахматную программу, первая версия уже умеет считать на 4 хода вперед. Далее мы ее ускорили в 5 раз, получили новое железо, кот. дало еще фактор 4 и установили этого железа в 10 раз больше (практически за те же деньги, что и 5 лет назад). В итоге формальная производительность нашей системы выросла в 200 раз -- гигантский рост за 5 лет. Теперь мы можем рассчитывать не на 4, а на 5 ходов вперед, ура! Т.е. с точки зрения потребителя наш прогресс ползет как черепаха, едва 20% за 5 лет. И потребитель по-своему прав!

И это очень типичная картина. Почти все наши "оптимизационные" задачи они такой же природы сложности, как шахматы или хуже (в отличие от шахмат, очень часто информация не доступна или лежит в будущем или хаотична, как погода).

http://ivanov-petrov.livejournal.com/1855762.html?thread=96048914#t96048914
И еще позвольте повернуть под другим углом те ответы, кот. многие уже озвучили: "нет рынка, нет выгоды в разработке тех програм кот. Вы перечислили".

Понимаете, Вы предложили хорошие, интересные программы. Их не сделаешь за выходной на коленке, или же выйдет неинтересный уродец, не закрывающий тему.

Т.е. нужны крепкие мастеровитые программисты, часто и с художественным вкусом. Их безумно не хватает! Среди крепких программистов безработица близка к нулю, в Америке, в Европе, в России, в Индии -- они все заняты, и им всюду довольно прилично платят, и таки нужны немалые усилия и финансы их оттащить на другие задачи. При этом и число программистов и их производительность в среднем тоже быстро растут (т.к. огромные куски уже написаны и могут быть заново использованы).

Что это значит? Что наши ожидания растут еще быстрее, чем наши достижения (и это, наверное, тоже хорошо). Поскольку мы не всегда осознаем этот рост ожиданий, мы преуменьшаем и скорость прогресса.

http://ivanov-petrov.livejournal.com/1855762.html?thread=96070674#t96070674
Да, это очень хорошее наблюдение, спасибо. Я бы продолжил эту биологическую аналогию: программы "мутируют" (не сами, конечно, а в виде новых версий), и сохраняются те мутации, кот. улучшают шанс выжить. Как и в биологии, наверное, можно измерить стоимость мутации (как сумму истраченных ресурсов) и сравнить ее с полезностью (повышение вероятности, что за программу заплатят).

При этом один из самых дорогих ресурсов -- это "user learning curve". Почти невозможно добавить новую функцию (как подтек краски по холсту), если это требует от юзера больше 3 лишних кликов.

Обычно гораздо проще использовать то, что юзер уже выучил/одобрил на конкурирующей программе. В итоге, как и в биологии, идет очень быстрый процесс заимствования полезных свойств, такой конвергенции. Именно поэтому есть всего с десяток популярных текстовых редакторов, и они все очень похожи по набору утилит. При этом таки существуют и появляются тысячи текстовых редакторов (такую разработку нередко берут как master thesis in computer science), но они же постоянно вымирают.

(Величие Джобса, скажем, в том, что он умел найти и выбрать новую парадигму интерфейса без steep learning curve и тем самым сделать возможной сразу много новой функциональности).

shamanov
http://ivanov-petrov.livejournal.com/1855762.html?thread=96071698#t96071698
Вопрос достаточно сложный и хочется отделить «объективные» - т.е. независящие от отрасли составляющие, от «субъективных» - привнесенных самими участниками.
Начнем с «объективных»: большинство участвующих в обсуждении упоминают экономическую составляющую и она играет достаточно важную роль.
Однако, кроме экономической составляющей, связанной с продвижением продукты «в широкие массы пользователей» (с) существует задача предложить автоматизацию более удобную, чем существующий ручной вариант. Рассмотрим на примере редакторов для рисования с эффектами, потеками, наклонами кистей и прочим. Я сам был уверен, что не существует подобных редакторов пока не купил планшет для рисования и не познакомился с ArtRage. Посмотрев функционал, понял что без специального устройства-пера многое не получается сделать удобно (типа наклона текущего и прочего).
Поскольку сам занимаюсь автоматизацией, то ситуация: «а давайте не будем ничего делать – сейчас проще на коленке посчитать» возникает достаточно регулярно. Автоматизация всегда рассматривается с двух сторон «результат vs стоимость владения». Под стоимостью владения я имею в виду в данном случае даже не стоимость лицензий и компа, а временные затраты на обучение пользователей, поддержание актуальности данных и прочее.
По поводу «маленьких» задач типа калейдоскопа: существует много энтузиастов, разрабатывающие подобные вещи для себя и радующиеся им. Но обеспечить дистрибуцию таких программ для пользователей некому. Существующая и известная пользователям инфраструктура требует усилий со стороны разработчика на продвижение. Причем, что характерно усилий в тех областях, которые кажутся большинству из них скучными (ну, а из других разработчиков получаются менеджеры, которые быстро начинают считать деньги и тут на сцене появляются экономические расчеты рентабельности производства).

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

Субъективные причины неким образом перекликаются со сложностью решаемой задачи, однако, данные факторы созданы самими участниками процесса.
В отрасли отсутствуют институты и механизмы накопления, тиражирования и обобщения опыта по развитию интерфейсов и способов взаимодействия с пользователями. Некие профессиональные стандарты для работы аналитиков (специалистов, ориентированных на решение этого класса задач) пока еще не сформированы окончательны. В Business Analysis Body of Knowledge предлагается даже не стандарт, а некие рекомендации по работе аналитика и набор техник, которые тот может использовать. При этом важно, что первое издание стандарта появилось только в 2005 году (здесь должен быть риторический вопрос – а сколько лет отрасли?).
А без организации сообщества, постоянного диалога и проверки на прочность новых идей быстрое развитие возможно только за счет усилий отдельных «продвинутых» личностей или коллективов. Хотя никогда не слышал (может действительно не слышал а оно есть и массово?) о отделах или группах аналитиков как самостоятельных подразделений со своими целями и задачами. Как правило аналитики «раскиданы» по проектным группам и обеспечивают описание предметной области для программистов, которые уже сами придумывают интерфейсы и прочее.

Отрасль идет в этом направлении, но медленно. Описание и попытки обобщения есть, например, в книге А.Купера «Об интерфейсе».
Tags: tech
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 51 comments