Закон увеличения сложности?
От: FR  
Дата: 23.08.09 13:50
Оценка: -3
Так как тема "Закон сохранения сложности" ушла совсем в оффтоп, решил завести новую, и поставить вопрос еще жестче, все-таки реально действует не закон сохранения сложности, а закон увеличения сложности, любой развивающийся проект это практическая иллюстрация, чем дальше, тем сложнее его подерживать и сложнее развивать. На очень хорошую иллюстрацию этого я наткнулся здесь — http://alex-semenov.livejournal.com/10361.html#cutid1 .
Иллюстрация очень простая, наш проект можно представить как двухмерную фигуру, ну скажем для начала круг, мы его равиваем расширяя его границы, но по мере развития границы начинают принимать форму фрактала, то есть их длина (соответствующая сложности и эквивалентная приложенным усилиям) очень быстро растет, при этом рост площади фигуры (а площадь это функциональность программы) стремится к нулю.
Re: Закон увеличения сложности?
От: Sinix  
Дата: 24.08.09 00:15
Оценка:
Здравствуйте, FR, Вы писали:

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


Новое определение энтропии?
Так и будет, если её не сдерживать, например так, чтобы новые модули не увеличивали общую сложность системы.
Re[2]: Закон увеличения сложности?
От: FR  
Дата: 24.08.09 02:27
Оценка:
Здравствуйте, Sinix, Вы писали:

S>Новое определение энтропии?


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

S>Так и будет, если её не сдерживать, например так, чтобы новые модули не увеличивали общую сложность системы.


Нет никакие ухищрения в конечном счете не помогут, если есть объективный рост колмогоровой сложности, то программа становится "несжимаемой" то есть такого рода сложность объективна и упрощение невозможно.
Re[3]: Закон увеличения сложности?
От: Sinix  
Дата: 24.08.09 03:31
Оценка:
Здравствуйте, FR

FR>Нет никакие ухищрения в конечном счете не помогут, если есть объективный рост колмогоровой сложности, то программа становится "несжимаемой" то есть такого рода сложность объективна и упрощение невозможно.


У вас какя-то произвольная трактовка роста сложности: сложность растёт, эффективность постоянная. Это бывает ближе к концу ЖЦ, когда "Изя уже всё". Что в этом настолько необычного чтоб заводить топик — хз. Тем более что тема ближе к задаче управления долгоживущими проектами.

Меня слегка удивляет обсуждение "закона увеличения сложности" с применением довольно сложных систем. И довольно долгоживущих систем

P.S. В последнее время всякие нехорошие люди (явно вас не читавшие) взяли привычку выпекать по крупному релизу раз в 2 года. Тут внедрить как следует не успеваешь, а они... гады!
Re[4]: Закон увеличения сложности?
От: FR  
Дата: 24.08.09 04:05
Оценка:
Здравствуйте, Sinix, Вы писали:

S>У вас какя-то произвольная трактовка роста сложности: сложность растёт, эффективность постоянная. Это бывает ближе к концу ЖЦ, когда "Изя уже всё". Что в этом настолько необычного чтоб заводить топик — хз. Тем более что тема ближе к задаче управления долгоживущими проектами.


Меня рассуждение по ссылке впечатлило, ну все прямо про нас

S>Меня слегка удивляет обсуждение "закона увеличения сложности" с применением довольно сложных систем. И довольно долгоживущих систем


Меня удивляет наоборот вера в то что можно бесконечно упрощать сложные системы.

S>P.S. В последнее время всякие нехорошие люди (явно вас не читавшие) взяли привычку выпекать по крупному релизу раз в 2 года. Тут внедрить как следует не успеваешь, а они... гады!


Это недолго Во вражеском лагере вон замыкания ввести боятся
Re[5]: Закон увеличения сложности?
От: Sinix  
Дата: 24.08.09 04:53
Оценка:
FR>Меня рассуждение по ссылке впечатлило, ну все прямо про нас
Не надо вестись — любой опытный философ ещё и не так вам нарассуждает при помощи поверхностных аналогий.
Нате вам: стоит предположить что периметр — это функционал программы (что логично — это же интерфейс ), а площадь — объём работ по реализации — и у нас соовсем другая картина. И тоже прямо про нас

FR>Меня удивляет наоборот вера в то что можно бесконечно упрощать сложные системы.

Не совсем. Можно повышать уровень абстракции, снижая взаимосвязанность отдельных компонент. До отдельного предела
Всякие декларативные описания BPML/UBL etc к нему и приблизились "сверху", т.к. уже больше похожи на скрипты по сложности, а фреймворки — снизу — число штатных велосипедиков уже слегка неприлично выросло.
Вопросик на засыпку: сколько нынче в .net штатных механизмов сериализации?
А ещё и DSL сюда подбираются... В общем есть ещё куда усложнять простое.

FR>Это недолго Во вражеском лагере вон замыкания ввести боятся

Оптимист
Re[6]: Закон увеличения сложности?
От: FR  
Дата: 24.08.09 05:01
Оценка:
Здравствуйте, Sinix, Вы писали:

FR>>Меня рассуждение по ссылке впечатлило, ну все прямо про нас


S>Не надо вестись — любой опытный философ ещё и не так вам нарассуждает при помощи поверхностных аналогий.


Это да, но его аналогия по моему на разработку ПО ложится очень хорошо.

S>Нате вам: стоит предположить что периметр — это функционал программы (что логично — это же интерфейс ), а площадь — объём работ по реализации — и у нас соовсем другая картина. И тоже прямо про нас


Ну сразу видно что ты как и я неопытный философ, так как абсолютно не сходится

FR>>Меня удивляет наоборот вера в то что можно бесконечно упрощать сложные системы.

S>Не совсем. Можно повышать уровень абстракции, снижая взаимосвязанность отдельных компонент. До отдельного предела

Угу и придел приходит гораздо быстрее чем хочется.

S>Всякие декларативные описания BPML/UBL etc к нему и приблизились "сверху", т.к. уже больше похожи на скрипты по сложности, а фреймворки — снизу — число штатных велосипедиков уже слегка неприлично выросло.


Ну и мощные языки еще больше приблизились.

S>Вопросик на засыпку: сколько нынче в .net штатных механизмов сериализации?


Ну я из еще более вражеского лагеря так что не в курсе

S>А ещё и DSL сюда подбираются... В общем есть ещё куда усложнять простое.


Зато с упрощением сложного не очень выходит.
Re: Закон увеличения сложности?
От: Pavel Dvorkin Россия  
Дата: 24.08.09 07:54
Оценка: 9 (2) +4
Здравствуйте, FR, Вы писали:

FR>Так как тема "Закон сохранения сложности" ушла совсем в оффтоп, решил завести новую, и поставить вопрос еще жестче, все-таки реально действует не закон сохранения сложности, а закон увеличения сложности, любой развивающийся проект это практическая иллюстрация, чем дальше, тем сложнее его подерживать и сложнее развивать. На очень хорошую иллюстрацию этого я наткнулся здесь — http://alex-semenov.livejournal.com/10361.html#cutid1 .

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

Двумерные фигуры оставлю в покое, а по поводу сложности развивающихся проектов выскажусь.

Исходное состояние. Задуман некий новый проект. Делать его будет весьма грамотная команда разработчиков (вариант с неграмотной не рассматриваю). Они знают все, что нужно для реализации этого проекта. Поэтому они выбирают наилучшую архитектуру, реализуют наилучшим способом. Продукт получается стройным и логичным как по своей внутренней архитектуре, так и по внешним интерфесам. Его ждет успех (если не ждет — тоже не рассматриваю). Он завоевывает свою часть рынка.
Состояние 2. Продукт весьма популярен, но время идет. У пользователей появляется желание иметь новые возможности. Команда разработчиков должна их реализовать. В идеале она должна была еще на стадии "исходное состояние" предусмотреть добавление этих возможностей без того, чтобы нарушить внутреннюю архитектуру. В реальности... если бы так. Предсказать, что через несколько лет потребуется, да еще в ИТ-сфере — для этого надо господом богом быть. Поэтому приходится в текущую архитектуру внедрять новые возможности.
Кое-что внедряется легко и просто, логичность архитектуры не страдает. Кое-что не внедряется, приходится изменять архитектуру, но измененная архитектура все равно остается логичной и стройной — молодцы, все же предусмотрели. А вот кое-что совершенно не лезет. А добавить надо. Приходится делать заплату, то есть жертвовать стройностью архитектуры во имя того, чтобы продукт соответствовал новым потребностям. Вот здесь сложность действительно начинает расти — из-за потери логической ясности и стройности. Лишние связи — больше сложности.
Состояние 3. Заплаты множатся. Архитектура уже довольно-таки расплывчатая, исходные принципы ее если и вспоминаются, то на фоне массы заплат, которые фактически убили эту исходную ясность. Собственно говоря, уже не вполне ясно, где тут базовая архитектура — заплаты не менее важны, чем основные, когда-то заложенные принципы. Проект движется к своему упадку.
Состояние 4. Если фирма вовремя осознала, что происходит, то она начинает новый проект с той же функциональностью — goto "Состояние 1". Если не осознала — это сделают другие.

Примеры успешных замен

1. MS-DOS — Windows 3.1 — Windows 9x. К счастью, MS вовремя осознала это и начала создавать новую версию с нуля — Windows NT.
2. Netscape Navigator и Mail. Тоже успешная замена, тоже с нуля.

А вот что ИМХО на стадии 3

MS Office
Internet Explorer.

И в заключение — небольшой прогноз.

ИМХО сейчас критический момент для Windows. XP — бесспорная удача, Vista — скорее нет. Если Windows 7 постигнет успех, и ей удастся вытеснить предыдущте версии, значит, до состояния 3 еще дело не дошло. Если нет — нас ждет состояние 4. Выяснится это в течение 1-2 лет.
With best regards
Pavel Dvorkin
Re[2]: Закон увеличения сложности?
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 24.08.09 10:33
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>И в заключение — небольшой прогноз.

PD>ИМХО сейчас критический момент для Windows. XP — бесспорная удача, Vista — скорее нет. Если Windows 7 постигнет успех, и ей удастся вытеснить предыдущте версии, значит, до состояния 3 еще дело не дошло. Если нет — нас ждет состояние 4. Выяснится это в течение 1-2 лет.

По-моему, семерка лучше висты, но сколь бы хороши ни были новые версии, вытеснить ХР без применения силы им почти нереально, просто потому что ХР была good enough — пользователям просто незачем тратиться на новую версию. Переход может произойти постепенно за счет предустановленных копий на новых компах и ноутах, т.к. их люди все же меняют.
Re[5]: Закон увеличения сложности?
От: Silver_s Ниоткуда  
Дата: 24.08.09 10:33
Оценка:
Здравствуйте, FR, Вы писали:

FR>Здравствуйте, Sinix, Вы писали:


S>>У вас какя-то произвольная трактовка роста сложности: сложность растёт, эффективность постоянная. Это бывает ближе к концу ЖЦ, когда "Изя уже всё". Что в этом настолько необычного чтоб заводить топик — хз. Тем более что тема ближе к задаче управления долгоживущими проектами.


FR>Меня рассуждение по ссылке впечатлило, ну все прямо про нас


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

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

Увеличивается объем того что надо сначала изучить написаного другими, прежде чем что-то полезное сделать.
Re[3]: Закон увеличения сложности?
От: Pavel Dvorkin Россия  
Дата: 24.08.09 10:42
Оценка: +2
Здравствуйте, D. Mon, Вы писали:

DM>По-моему, семерка лучше висты, но сколь бы хороши ни были новые версии, вытеснить ХР без применения силы им почти нереально, просто потому что ХР была good enough — пользователям просто незачем тратиться на новую версию.


Мы дошли до состояния "дальше развиваться уже незачем ? " (утрирую, конечно). Любопытная мысль.

Вообще-то раньше или позже любая отрасль до этого состояния доходит. Это не значит, что вообще развитие останавливается, но до тех пор, пока не появится какая-то революционная идея или технология, изменения идут более косметические. Иными словами, "выход на плато". Но мне что-то кажется, что для ПО это время еще не наступило.
With best regards
Pavel Dvorkin
Re[3]: Закон увеличения сложности?
От: Sinclair Россия http://corp.ingrammicro.com/Solutions/Cloud.aspx
Дата: 25.08.09 03:53
Оценка: +4
Здравствуйте, D. Mon, Вы писали:

DM>По-моему, семерка лучше висты, но сколь бы хороши ни были новые версии, вытеснить ХР без применения силы им почти нереально, просто потому что ХР была good enough — пользователям просто незачем тратиться на новую версию.

Это иллюзия. Никакого apply more violence не надо, достаточно проводить "мягкую забастовку".
Годы идут — железо изнашивается. Купить 4хскоростной CD-ROM сейчас можно только в антикварном магазине. Производители не шибко заинтересованы в бэкпортинге новых фич в драйвера для XP. Вот, к примеру, Nvidia (шайтан её побери) уже пару лет последовательно откручивает фичи в обновлениях XP-шных драйверов. Раньше редирект видеопотока на второй монитор работал, теперь это не поддерживается.
Нормального Bluetooth-стека для XP как не было, так и нет. И теперь уже никогда не будет.
Windows Media Center попользовать охота? Упс, в XP его нет.

DM>Переход может произойти постепенно за счет предустановленных копий на новых компах и ноутах, т.к. их люди все же меняют.

Аргументы в пользу миграции постепенно накапливаются. Когда их накопится критическая масса, переход станет лавинообразным.

Тут еще такой момент: с вистой получился эффект "отложенного спроса". То есть в висту включили много приятных штук, которые в целом привлекали людей, но значительное количество проблем сдерживали естественное желание поставить "новое и классное". Теперь выходит семёрка, которая "виста, как она должна была быть с самого начала". В итоге основной поток миграции будет с XP сразу на 7 (как тут кто-то по соседству написал: "висту я как-то пропустил"), и семёрка будет иметь двойной набор бенефитов — в него войдут нововведения и из Vista, и из 7.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
http://rsdn.org/File/5743/rsdnaddict.GIF
Re[6]: Закон увеличения сложности?
От: FR  
Дата: 25.08.09 04:01
Оценка:
Здравствуйте, Silver_s, Вы писали:

S_> По ссылке там больше про историческое накопление сложности. Последующим поколениям сначала приходится изучать то что наворотили предыдущие.


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

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


И как следствие выхлоп стал очень маленьким.

S_> Наверное в IT похожие тенденции...во времена ZX Spectrum все проще было. А еще пораньше ... с паяльником, из транзисторов умельцы чего-то полезное могли собирать ... теперь это занятие бесполезное.


S_> Увеличивается объем того что надо сначала изучить написаного другими, прежде чем что-то полезное сделать.


Я не про IT в целом, я про эволюцию отдельного продукта.
Re[6]: Закон увеличения сложности?
От: Sinclair Россия http://corp.ingrammicro.com/Solutions/Cloud.aspx
Дата: 25.08.09 04:27
Оценка: +4 :)
Здравствуйте, Silver_s, Вы писали:

S_> По ссылке там больше про историческое накопление сложности. Последующим поколениям сначала приходится изучать то что наворотили предыдущие.

S_>Автор там, грубо говоря, жалуется что не может закрыться в гараже, похимичить, и за пару часов сделать "вечный двигатель".
Нет. Как раз на это он не жалуется — это, собственно неизбежное следствие общедоступности "опытов".

S_>Физика стала нынче сложная,корпоративная. Все простое фундаментальное уже сделали до нас, осталось только очень сложное и прикладное.

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

Так и тут — ну выясним мы, что за трансурановыми элементами нет никакого "острова стабильности", потому что есть еще какой-то фактор, запрещающий тяжёлые ядра.
И так далее.
S_>Энтузиастам осталось только псевдонаукой заниматься. Повысилась сложность, соответственно порог вхождения, и как следствие усилилась специализация.
Тут как бы две стороны медали: не только порог вхождения (хотя прямо в наших форумах пасётся полно народу, которые пойти на физфак поленились, а про тонкие материи порассуждать охота), но и глобальность проблем. То есть классическая физика, к примеру, тебе говорит: "торсионные поля — это оксюморон. Нет известного нам взаимодействия, которое бы передавало момент импульса без самого импульса. Шансы на то, что есть пятое, неизвестное нам взаимодействие, есть, но его энергия гарантированно будет на многие порядки меньше, чем у известных — иначе бы мы его давно обнаружили".
И предлагает: "занимайтесь лучше уточнением констант в нелинейном приближении расчёта яркости тёмных переходов в слабонасыщенном гелии — это крайне интересная и малоисследованная тема".
А лженаука говорит: "да это всё хрень неинтересная, а вот с помощью торсионных полей можно победить гравитацию и внушать мысли людям!"

Я, кстати, тут придерживаюсь мнения "деревенских дурачков". Мне по-прежнему кажется, что есть макроэффекты, которые нам пока что недоступны.
Опять приведу свой любимый пример — квантовая механика находится далеко за пределами "бытовых представлений" о физике. Связано это напрямую с тем, что её характерные проявления находятся далеко за пределами "бытовых областей применения". Казалось бы, какое отношение к повседневной жизни, наблюдаемой невооружённым глазом, могут иметь процессы с характерной энергетикой типа постоянной Планка? Ан нет, творчески применяем зонную теорию проводимости — и получаем полупроводник, демонстрирующий вполне себе макроскопические эффекты.
Я веду к тому, что, возможно, есть еще всякие неоткрытые штуки, которые позволят нам добиться чего-нибудь неожиданного. Ну, пусть не будет антигравитации — зато будут сверхкомпактные и безопасные источники энергии (а с ними и антигравитация, в общем-то, не нужна — имея избыток энергии, построить какой-нибудь персональный махолёт, в обшем-то, не проблема). Или там предметы, которые адаптируются к окружающей среде. Да мало ли что!

S_> Наверное в IT похожие тенденции...во времена ZX Spectrum все проще было. А еще пораньше ... с паяльником, из транзисторов умельцы чего-то полезное могли собирать ... теперь это занятие бесполезное.

Вот тут вопрос кагбэ непонятный. С одной стороны, собрать конкурента BlueRay в гараже реально не выйдет.
С другой стороны, в IT есть софтная составляющая; а порог вхождения в неё, наоборот, — снизился на порядки.
Тридцать лет назад вполне реально было прочитать все книги про программирование; получение доступа к реальной машине для своих экспериментов было невероятной удачей.
А сейчас за смешные деньги можно купить ноут, подключится к инету, и развернуть на нём кластер из виртуальных машинок, эквивалентный по топологии типичной ентерпрайз-архитектуре начала девяностых. Можно за смешные деньги арендовать на амазоне эквивалент Крея по терафлопсам для численных экспериментов.
Можно дома, по вечерам, сварганить Программу Мечты и немедленно начать продавать её, получив доступ к миллионной аудитории.
Если что-то непонятно, то не нужно в седьмой раз медитировать над распечаткой фрагмента из книги Шилдта при свете масляной лампы — можно задать вопрос на форумах. А на стековерфлоу ответы уже поступают раньше, чем ты закончишь вопрос.

На мой взгляд, мы живём в софтостроительном раю. Единственная проблема — в том, что "программа мечты" теперь должна делать что-то поумнее, чем простой hello world.
S_> Увеличивается объем того что надо сначала изучить написаного другими, прежде чем что-то полезное сделать.
Зато увеличивается скорость доступа к этому объему. Главное — не бояться изучать. А то тут есть люди, которые тратят по полгода на форумах на флеймы о том "нужны ли мне датасеты" или, наоборот "нужен ли мне линк". Да за это время детишки половину квантов успевают изучить, что там какой-то линк!
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
http://rsdn.org/File/5743/rsdnaddict.GIF
Re[7]: Закон увеличения сложности?
От: drol  
Дата: 25.08.09 05:40
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Я, кстати, тут придерживаюсь мнения "деревенских дурачков". Мне по-прежнему кажется, что есть макроэффекты, которые нам пока что недоступны.


Конечно есть. И их всё больше и больше будет открываться с каждым годом. Вон из недавнего: выхлоп могучего потока рентгеновского излучения при раскрутке 3M'овского скотча в вакууме.

Я не знаю для чего этим гвардейцам потребовался скотч в вакууме (отрабатывали способ починки БАК'а ), но побочный эффект просто отменный. Область применения огромная: портативные копеечные рентгеновские аппараты для медицины, неразрушающего контроля и ещё чёрт знает чего...
Re: Закон увеличения сложности?
От: LaptevVV Россия  
Дата: 25.08.09 10:49
Оценка: 11 (3)
Здравствуйте, FR, Вы писали:

FR>Так как тема "Закон сохранения сложности" ушла совсем в оффтоп, решил завести новую, и поставить вопрос еще жестче, все-таки реально действует не закон сохранения сложности, а закон увеличения сложности, любой развивающийся проект это практическая иллюстрация, чем дальше, тем сложнее его подерживать и сложнее развивать. На очень хорошую иллюстрацию этого я наткнулся здесь — http://alex-semenov.livejournal.com/10361.html#cutid1 .

FR>Иллюстрация очень простая, наш проект можно представить как двухмерную фигуру, ну скажем для начала круг, мы его равиваем расширяя его границы, но по мере развития границы начинают принимать форму фрактала, то есть их длина (соответствующая сложности и эквивалентная приложенным усилиям) очень быстро растет, при этом рост площади фигуры (а площадь это функциональность программы) стремится к нулю.
Тут еще хочется обратить внимание уважаемых коллег на то, что написал Роберт Гласс в своей книжке "Креативное программирование".
Из рецензии Архипенкова:

В книге приводятся результаты десятков исследований. Вот лишь некоторые выводы из них. Отношение интеллектуальных задач и канцелярских в разработке ПО, примерно, равно 80% к 20%. Сложность задач, решаемых в программировании, увеличивается в 50 раз каждые 10 лет. На каждые 25% увеличения сложности решаемой задачи на 100% возрастает сложность программы, которая должна ее решать.

Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: Закон увеличения сложности?
От: Pavel Dvorkin Россия  
Дата: 25.08.09 11:09
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, D. Mon, Вы писали:


S>Вот, к примеру, Nvidia (шайтан её побери)


насчет шайтана согласен

S>уже пару лет последовательно откручивает фичи в обновлениях XP-шных драйверов.


У меня лично иное впечатление. CUDA под XP мне работать удалось заставить, а под Vista — нет. Правда, было это в декабре прошлого года. Там бог знает что творилось, я на форуме по CUDA об этом написал и никто ничего внятного сказать не мог.

S>Тут еще такой момент: с вистой получился эффект "отложенного спроса". То есть в висту включили много приятных штук, которые в целом привлекали людей, но значительное количество проблем сдерживали естественное желание поставить "новое и классное". Теперь выходит семёрка, которая "виста, как она должна была быть с самого начала". В итоге основной поток миграции будет с XP сразу на 7 (как тут кто-то по соседству написал: "висту я как-то пропустил"), и семёрка будет иметь двойной набор бенефитов — в него войдут нововведения и из Vista, и из 7.


Кстати.

http://rsdn.ru/poll/2423.aspx
Автор: Pavel Dvorkin
Дата: 24.08.09
Вопрос: Будете переходить ?


48% имеют XP и собираются перейти на W7. RSDN, конечно, не является репрезентативной выборкой и все же...

P.S. Я тоже собираюсь
With best regards
Pavel Dvorkin
Re: Закон увеличения сложности?
От: borisman3 Канада http://paskoboris.blogspot.com/
Дата: 25.08.09 12:27
Оценка: +2
Здравствуйте, FR, Вы писали:

FR> На очень хорошую иллюстрацию этого я наткнулся здесь — http://alex-semenov.livejournal.com/10361.html#cutid1 .


Однако, статья более чем спорная. Одно только утверждение:

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


чего стоит. Однако так говорили и 100 лет назад, и 200 лет назад, и 300 лет назад. И таки оказывалось что не так уж "основные теории уже созданы" и не так чтобы "осталось их уточнить".
Re[2]: Закон увеличения сложности?
От: FR  
Дата: 25.08.09 12:59
Оценка:
Здравствуйте, borisman3, Вы писали:

B>чего стоит. Однако так говорили и 100 лет назад, и 200 лет назад, и 300 лет назад. И таки оказывалось что не так уж "основные теории уже созданы" и не так чтобы "осталось их уточнить".


Да согласен, зато на программные продукты его рассуждения пости идеально ложатся.
Re[4]: Закон увеличения сложности?
От: FDSC Россия consp11.github.io блог
Дата: 26.08.09 08:35
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Вообще-то раньше или позже любая отрасль до этого состояния доходит. Это не значит, что вообще развитие останавливается, но до тех пор, пока не появится какая-то революционная идея или технология, изменения идут более косметические. Иными словами, "выход на плато". Но мне что-то кажется, что для ПО это время еще не наступило.


По-моему, D. Mon не об этом говорил
Re[2]: Закон увеличения сложности?
От: Pavel Dvorkin Россия  
Дата: 26.08.09 11:03
Оценка:
Здравствуйте, borisman3, Вы писали:

B>Однако, статья более чем спорная. Одно только утверждение:


B>

B>Речь идет о том, что фундаментальные проблемы в основном уже решены. Все основные теории уже созданы. Осталось их уточнить. То есть за последние 300 лет наука прошла в некотором смысле почни до горизонта познания. Современная научная картина мира в основных чертах прорисована. Науке осталось только без конца уточнять детали этой картины.


B>чего стоит. Однако так говорили и 100 лет назад, и 200 лет назад, и 300 лет назад. И таки оказывалось что не так уж "основные теории уже созданы" и не так чтобы "осталось их уточнить".


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

Так что что нас еще ждет — никто не знает.
With best regards
Pavel Dvorkin
Re[5]: Закон увеличения сложности?
От: Шахтер Интернет  
Дата: 26.08.09 15:55
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Здравствуйте, Sinclair, Вы писали:


S>>Здравствуйте, D. Mon, Вы писали:


S>>Вот, к примеру, Nvidia (шайтан её побери)


PD>насчет шайтана согласен


S>>уже пару лет последовательно откручивает фичи в обновлениях XP-шных драйверов.


PD>У меня лично иное впечатление. CUDA под XP мне работать удалось заставить, а под Vista — нет.


У меня работает.
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[5]: Закон увеличения сложности?
От: Sinclair Россия http://corp.ingrammicro.com/Solutions/Cloud.aspx
Дата: 27.08.09 04:35
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>У меня лично иное впечатление. CUDA под XP мне работать удалось заставить, а под Vista — нет. Правда, было это в декабре прошлого года. Там бог знает что творилось, я на форуме по CUDA об этом написал и никто ничего внятного сказать не мог.

Возможны исключения. Но, опять же — насколько CUDA является пользовательской фичей?
Сравни количество людей, которые скорее примут решение о переходе с учётом возможности крутить full-screen видео, а сколько — с учётом КУДЫ?

PD>http://rsdn.ru/poll/2423.aspx
Автор: Pavel Dvorkin
Дата: 24.08.09
Вопрос: Будете переходить ?


PD>48% имеют XP и собираются перейти на W7. RSDN, конечно, не является репрезентативной выборкой и все же...

Не смог попасть в голосование — нет пункта "уже перешёл на 7"
Хотя на самом деле у меня статистика такая:
рабочая машина — XP (апгрейдить не планирую до принятия корпоративного решения)
домашняя машина — XP (планирую проапгрейдить после апгрейда железа)
ноутбук — 7 (проапгрейдил со штатной висты сразу после покупки)
планирую купить для HTPC — буду апгрейдить с vista на 7 в день покупки.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
http://rsdn.org/File/5743/rsdnaddict.GIF
Re[3]: Закон увеличения сложности?
От: Sinclair Россия http://corp.ingrammicro.com/Solutions/Cloud.aspx
Дата: 27.08.09 04:35
Оценка: +1
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Напомню одно хрестоматийное заявление , если не ошибаюсь, М. Планка, о том, что физика практически создана, остались только два небольших облачка — отрицательный результат в опыте Майкельсона-Морли и т.н. ультрафиолетовая катастрофа. Из первого облачка получилась теория относительности, из второго — квантовая физика.

Насколько я помню, это сказал не сам Планк, а сказали ему, когда он выбирал направление для post-graduate education. Ему порекомендовали бросить идею заниматься теоретической физикой, потому что "она скоро закончится". Весь юмор как раз в том, что Макс всё же решил "добить" одну из двух оставшихся мелких проблемок, и навсегда оставил своё имя в учебниках.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
http://rsdn.org/File/5743/rsdnaddict.GIF
Re[2]: Закон увеличения сложности?
От: Sinclair Россия http://corp.ingrammicro.com/Solutions/Cloud.aspx
Дата: 27.08.09 04:35
Оценка:
Здравствуйте, borisman3, Вы писали:

B>чего стоит. Однако так говорили и 100 лет назад, и 200 лет назад, и 300 лет назад. И таки оказывалось что не так уж "основные теории уже созданы" и не так чтобы "осталось их уточнить".

На ваш комментарий уже есть ответ в статье. Она как раз про то, что в этот раз (в отличие от начала 20го века) стоит воспринимать ожидание окончания физики всерьёз.
Тех, кто считает "поскольку в прошлый раз нас обманули, то и теперь наверняка есть что-то ещё", автор называет "деревенскими дурачками", которые не могут отличить свадьбу от похорон.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
http://rsdn.org/File/5743/rsdnaddict.GIF
Re[6]: Закон увеличения сложности?
От: Mamut Швеция http://dmitriid.com
Дата: 27.08.09 11:12
Оценка:
S> PD>У меня лично иное впечатление. CUDA под XP мне работать удалось заставить, а под Vista — нет. Правда, было это в декабре прошлого года. Там бог знает что творилось, я на форуме по CUDA об этом написал и никто ничего внятного сказать не мог.

S> Возможны исключения. Но, опять же — насколько CUDA является пользовательской фичей?

S> Сравни количество людей, которые скорее примут решение о переходе с учётом возможности крутить full-screen видео, а сколько — с учётом КУДЫ?

В тему:

http://imgs.xkcd.com/comics/supported_features.png

avalon 1.0rc2 rev 295, zlib 1.2.3 (01.08.2009 02:47:12 EEST :z)(Qt 4.5.1)


dmitriid.comGitHubLinkedIn
Re[6]: Закон увеличения сложности?
От: Pavel Dvorkin Россия  
Дата: 27.08.09 12:16
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Возможны исключения. Но, опять же — насколько CUDA является пользовательской фичей?


Не более, чем процессор x86 или, скажем, DMA. Отличие лишь одно — без CUDA можно обойтись, без них — нет

S>Сравни количество людей, которые скорее примут решение о переходе с учётом возможности крутить full-screen видео, а сколько — с учётом КУДЫ?


Ты действительно думаешь, что я писал под CUDA какое-то видео ?

PD>>http://rsdn.ru/poll/2423.aspx
Автор: Pavel Dvorkin
Дата: 24.08.09
Вопрос: Будете переходить ?


PD>>48% имеют XP и собираются перейти на W7. RSDN, конечно, не является репрезентативной выборкой и все же...

S>Не смог попасть в голосование — нет пункта "уже перешёл на 7"

Я считал, что время тут ни при чем, существенен лишь сам факт перехода или отказа. Так что можешь проголосовать
With best regards
Pavel Dvorkin
Re[6]: Закон увеличения сложности?
От: Pavel Dvorkin Россия  
Дата: 27.08.09 12:21
Оценка:
Здравствуйте, Шахтер, Вы писали:

Ш>У меня работает.


Я это дело закончил в декабре прошлого года, с тех пор не возвращался. Проблемы были с выделением pinned memory. Да, забыл еще сказать — Vista 64
Если хочешь, посмотри вот это

http://forums.nvidia.com/index.php?showtopic=83123
With best regards
Pavel Dvorkin
Re[4]: Закон увеличения сложности?
От: Pavel Dvorkin Россия  
Дата: 27.08.09 12:25
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Насколько я помню, это сказал не сам Планк, а сказали ему, когда он выбирал направление для post-graduate education.


Да. ты прав. В общем, писал по принципу "то ли он украл, то ли у него украли".
With best regards
Pavel Dvorkin
Re[2]: Закон увеличения сложности?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 27.08.09 13:24
Оценка: +1
Здравствуйте, Pavel Dvorkin, Вы писали:

Вменяемые фирмы не новый проект начинают, а регулярно рефакторят существующий, поддерживая количество заплат на приемлемом уровне. А "перепишем все нафик" это детство какое то.
... << RSDN@Home 1.2.0 alpha 4 rev. 1237 on Windows 7 6.1.7100.0>>
AVK Blog
Re[2]: Закон увеличения сложности?
От: WFrag США  
Дата: 27.08.09 15:43
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Примеры успешных замен


PD>1. MS-DOS — Windows 3.1 — Windows 9x. К счастью, MS вовремя осознала это и начала создавать новую версию с нуля — Windows NT.


Вот только линейка NT появилась раньше 9x
Re[7]: Закон увеличения сложности?
От: Sinclair Россия http://corp.ingrammicro.com/Solutions/Cloud.aspx
Дата: 28.08.09 02:47
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Не более, чем процессор x86 или, скажем, DMA. Отличие лишь одно — без CUDA можно обойтись, без них — нет
Вот я об этом и говорю. Пользовательская фича — это что-то такое, что даёт конкретный осязаемый бенефит.
Ну вот, скажем, лично мне — всё равно, какие там шейдеры в моей видеокарте. А вот если бы я играл во что-то современно-динамичное, то наверняка бы точно знал, сколько должно быть конвееров, каких, и какие тесты обязан проходить драйвер.

PD>Ты действительно думаешь, что я писал под CUDA какое-то видео ?

Я думаю, что проблемы с full-screen video, которые NVidia начала внедрять в свои драйвера с 2007-го, подстегнут к переходу гораздо больше народу, чем отпугнут проблемы с CUDA.

PD>Я считал, что время тут ни при чем, существенен лишь сам факт перехода или отказа. Так что можешь проголосовать

... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
http://rsdn.org/File/5743/rsdnaddict.GIF
Re[3]: Закон увеличения сложности?
От: Pavel Dvorkin Россия  
Дата: 01.09.09 12:47
Оценка: -2
Здравствуйте, WFrag, Вы писали:

WF>Вот только линейка NT появилась раньше 9x


Нет. 9x — продолжение линии 16-битной 3.x, на ее ядре.
With best regards
Pavel Dvorkin
Re[3]: Закон увеличения сложности?
От: Pavel Dvorkin Россия  
Дата: 01.09.09 12:48
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Вменяемые фирмы не новый проект начинают, а регулярно рефакторят существующий, поддерживая количество заплат на приемлемом уровне. А "перепишем все нафик" это детство какое то.


То есть Netscape/Mozilla невменяема ?
With best regards
Pavel Dvorkin
Re[4]: Закон увеличения сложности?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 01.09.09 13:16
Оценка: :)
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>То есть Netscape/Mozilla невменяема ?


В какой то мере да.
... << RSDN@Home 1.2.0 alpha 4 rev. 1237 on Windows 7 6.1.7100.0>>
AVK Blog
Re[3]: Закон увеличения сложности?
От: Cyberax Марс  
Дата: 01.09.09 13:27
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Вменяемые фирмы не новый проект начинают, а регулярно рефакторят существующий, поддерживая количество заплат на приемлемом уровне. А "перепишем все нафик" это детство какое то.

Или как вариант делают постадийное переписывание. Упомянутая Мозилла так и делается, кстати.
Sapienti sat!
Re[4]: Закон увеличения сложности?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 01.09.09 13:41
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Или как вариант делают постадийное переписывание. Упомянутая Мозилла так и делается, кстати.


Постадийное переписывание это рефакторинг и есть
... << RSDN@Home 1.2.0 alpha 4 rev. 1237 on Windows 7 6.1.7100.0>>
AVK Blog
Re[5]: Закон увеличения сложности?
От: Cyberax Марс  
Дата: 01.09.09 13:47
Оценка:
Здравствуйте, AndrewVK, Вы писали:

C>>Или как вариант делают постадийное переписывание. Упомянутая Мозилла так и делается, кстати.

AVK>Постадийное переписывание это рефакторинг и есть
Можно и так назвать, согласен.
Sapienti sat!
Re[4]: Закон увеличения сложности?
От: VGn Россия http://vassilsanych.livejournal.com
Дата: 01.09.09 14:11
Оценка:
AVK>>Вменяемые фирмы не новый проект начинают, а регулярно рефакторят существующий, поддерживая количество заплат на приемлемом уровне. А "перепишем все нафик" это детство какое то.

PD>То есть Netscape/Mozilla невменяема ?


Тут вопрос о чьей вменяемости речь: люди разные, организации разные. Нетскапы вроде вообще уже не стало.
Я бы не назвал это переписыванием.
... << RSDN@Home 1.2.0 alpha 4 rev. 1233>>
Re[4]: Закон увеличения сложности?
От: WFrag США  
Дата: 02.09.09 04:51
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Здравствуйте, WFrag, Вы писали:


WF>>Вот только линейка NT появилась раньше 9x


PD>Нет. 9x — продолжение линии 16-битной 3.x, на ее ядре.


Это так, но Windows 95 появилась всё-таки позже Windows NT 3.1 (разработка которой началась где-то в 1988 году). Думаю, «состояние 3» по твоей терминологии для линейки (3.1, 9x, Me) наступило скорее где-то в районе 98 года и говорить о том, что NT разрабатывалась исключительно как замена линейки (3.1, 9x, Me), нельзя. Скорее, это был параллельный проект, который в силу своих технологических преимуществ и развития аппаратных средств вытеснил линейку 9x.
Re[5]: Закон увеличения сложности?
От: Pavel Dvorkin Россия  
Дата: 02.09.09 06:49
Оценка:
Здравствуйте, AndrewVK, Вы писали:

PD>>То есть Netscape/Mozilla невменяема ?


AVK>В какой то мере да.


И что же они должны были делать — продолжать лепить заплату на заплату в Netscape Navigator 4.x ? Я думаю, в таком случае об этом броузере давно бы позабыли. А так, пожалуйста — лисичка в лидерах.
With best regards
Pavel Dvorkin
Re[5]: Закон увеличения сложности?
От: Pavel Dvorkin Россия  
Дата: 02.09.09 06:51
Оценка:
Здравствуйте, VGn, Вы писали:

VGn>Тут вопрос о чьей вменяемости речь: люди разные, организации разные. Нетскапы вроде вообще уже не стало.


Я могу ошибиться, но ИМХО нынешняя Mozilla все же использует ядро Netscape Navigator 6. Во всяком случае ее интерфейс в первых версиях был таким же, как у него.
With best regards
Pavel Dvorkin
Re[5]: Закон увеличения сложности?
От: Pavel Dvorkin Россия  
Дата: 02.09.09 07:03
Оценка:
Здравствуйте, WFrag, Вы писали:

WF>Это так, но Windows 95 появилась всё-таки позже Windows NT 3.1 (разработка которой началась где-то в 1988 году). Думаю, «состояние 3» по твоей терминологии для линейки (3.1, 9x, Me) наступило скорее где-то в районе 98 года и говорить о том, что NT разрабатывалась исключительно как замена линейки (3.1, 9x, Me), нельзя.


Не соглашусь. ИМХО дело немного в другом. 9x по крайней мере в теории позиционировалась как система, в которой все ДОС-программы и Win16 программы будут работать. В то время это было актуально. Все не работали, но в большинстве работали. По NT с самого начала было сказано — многое работать не будет. И MS вела довольно мудрую политику — держала 9x как систему конечного пользователя вплоть до начала 21 века. Вспомни — ни NT 3.x, ни NT 4.0, ни даже 2000 не были системами для массового пользователя. Только начиная с XP, а это 2001 год. К этому времени необходимость совместимости с старыми программами стала неактуальной, и MS прикрыла 9x. Так что ИМХО они ее планировали на замену с самого начала, но заменяли очень медленно.

Не знаю, в курсе ли ты внутреннего устройства 9x. В свое время я вел спецкурс по внутреннему устройству MS-DOS, сейчас читаю по линии NT. В промежутке была мысль поставить спецкурс по устройству 9x, и мне пришлось от этой идеи отказаться. Такие курсы нельзя читать, потому что это будет курс о том, как делать заплаты к заплатам. Архитектура ее чудовищна, что неудивительно, когда из MS-DOS делали Windows 95 и далее А архитектура NT была с самого начала продумана и, в общем, особых изменений не претерпела до сих пор.
With best regards
Pavel Dvorkin
Re[6]: Закон увеличения сложности?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 02.09.09 07:26
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>И что же они должны были делать — продолжать лепить заплату на заплату в Netscape Navigator 4.x ?


Ты мое сообщение, видимо, не читал. Рефакторить они должны были. Это как раз такой специальный процесс, когда заплаты перерабатываются в нормальный код.
... << RSDN@Home 1.2.0 alpha 4 rev. 1237 on Windows 7 6.1.7100.0>>
AVK Blog
Re[6]: Закон увеличения сложности?
От: VGn Россия http://vassilsanych.livejournal.com
Дата: 02.09.09 08:40
Оценка:
PD>Я могу ошибиться, но ИМХО нынешняя Mozilla все же использует ядро Netscape Navigator 6. Во всяком случае ее интерфейс в первых версиях был таким же, как у него.

Нет. Ядро абсолютно другое.
Не смотрите, что упоминается Netscape. Имеется в виду период, когда нетскапа делала свой клон Firefox (тогда ещё Phoenix или Firebird)
... << RSDN@Home 1.2.0 alpha 4 rev. 1233>>
Re[3]: Закон увеличения сложности?
От: VGn Россия http://vassilsanych.livejournal.com
Дата: 02.09.09 08:57
Оценка:
PD>>1. MS-DOS — Windows 3.1 — Windows 9x. К счастью, MS вовремя осознала это и начала создавать новую версию с нуля — Windows NT.

WF>Вот только линейка NT появилась раньше 9x


У мелкософта довольно сложное ветвление продуктов.
(где-то опубликована диаграмма)
Я бы не сказал, что виста продолжает XP, а 2000 продолжает NT4.
(хотя верно 95->98->Me, 2000->XP->2003, Vista->2008->Win7->2008R2 )
Фактически можно сказать, что номер версии ядра говорит о ветке разработки, если не считать тупиковые проекты.
... << RSDN@Home 1.2.0 alpha 4 rev. 1233>>
Re[7]: Закон увеличения сложности?
От: Pavel Dvorkin Россия  
Дата: 02.09.09 09:17
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>И что же они должны были делать — продолжать лепить заплату на заплату в Netscape Navigator 4.x ?


AVK>Ты мое сообщение, видимо, не читал.


Читал.

>Рефакторить они должны были. Это как раз такой специальный процесс, когда заплаты перерабатываются в нормальный код.


Не всякий код подлежит рефакторингу. Примеров таких немало. Кстати, сколько не занимайся рефакторингом 9x, NT все равно не получится. Все зависит от того, какая исходная архитектура заложена. Если она не сильно отличается от желаемой — может, и получится. Если же сильно или если ее вообще уже толком не видать из-за заплат — лучше начать сначала.

Не знаю, рефакторит MS Internet Explorer или нет, но ИМХО он уже дошел до невменяемости. Виснет без видимой причины. При закрытии всех окон процесс остается в памяти. При работе Java апплета через несколько часов загрузка процессора доходит до 100%. mht-архивы — это вообще особая песня. Вчера сохранил страницу , размер 1.6 Мб, так он ее с минуту открывает, при этом закладки не переключаются, а потом скроллинг не работает. Так что ИМХО пора его просто перепиывать. Другое дело, что здесь случай особый — он тесно интегрирован с Windows самой, так что это не так просто.
With best regards
Pavel Dvorkin
Re[7]: Закон увеличения сложности?
От: Pavel Dvorkin Россия  
Дата: 02.09.09 09:21
Оценка:
Здравствуйте, VGn, Вы писали:

VGn>Нет. Ядро абсолютно другое.

VGn>Не смотрите, что упоминается Netscape. Имеется в виду период, когда нетскапа делала свой клон Firefox (тогда ещё Phoenix или Firebird)

Хм. А с этим как быть ? (выделено мной)

Netscape Navigator — шестой по популярности (0,57 %[1]) в мире браузер, производившийся компанией Netscape Communications с 1994 по 2007 год, последние версии на основе движка браузера Mozilla Firefox. Версии Netscape до 4 были основными конкурентами Internet Explorer, версии 6—7.2 были основаны на Mozilla Application Suite. 28 декабря 2007 года компания объявила о прекращении поддержки и разработки браузера.[2]


http://ru.wikipedia.org/wiki/Netscape_Navigator
With best regards
Pavel Dvorkin
Re[8]: Закон увеличения сложности?
От: VGn Россия http://vassilsanych.livejournal.com
Дата: 02.09.09 10:23
Оценка:
VGn>>Нет. Ядро абсолютно другое.
VGn>>Не смотрите, что упоминается Netscape. Имеется в виду период, когда нетскапа делала свой клон Firefox (тогда ещё Phoenix или Firebird)

PD>Хм. А с этим как быть ? (выделено мной)


PD>Netscape Navigator — шестой по популярности (0,57 %[1]) в мире браузер, производившийся компанией Netscape Communications с 1994 по 2007 год, последние версии на основе движка браузера Mozilla Firefox. Версии Netscape до 4 были основными конкурентами Internet Explorer, версии 6—7.2 были основаны на Mozilla Application Suite. 28 декабря 2007 года компания объявила о прекращении поддержки и разработки браузера.[2]


Об этом я и говорю. Номера версий нетскапы не помню.
Помню, что свой движок они выбросили и занимались только украшательством над Firefox. И то не долго.
... << RSDN@Home 1.2.0 alpha 4 rev. 1233>>
Re[9]: Закон увеличения сложности?
От: Pavel Dvorkin Россия  
Дата: 02.09.09 11:16
Оценка:
Здравствуйте, VGn, Вы писали:

VGn>Об этом я и говорю. Номера версий нетскапы не помню.

VGn>Помню, что свой движок они выбросили и занимались только украшательством над Firefox. И то не долго.

Так и я о том же говорю. Выкмнули они свой Netscape Navigator 4.x и начали все с нуля. Да, на чужом движке.

With best regards
Pavel Dvorkin
Re[8]: Закон увеличения сложности?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 02.09.09 11:28
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Не всякий код подлежит рефакторингу.


Не всякий. Но тот, который кривой — однозначно.

PD> Примеров таких немало.


Примеров можно найти почти чему угодно.

PD> Кстати, сколько не занимайся рефакторингом 9x, NT все равно не получится.


NT может и не получится, а вот что то подобное — вполне.

PD> Все зависит от того, какая исходная архитектура заложена.


Исходная архитектура точно так же рефакторится.

PD> Если она не сильно отличается от желаемой — может, и получится. Если же сильно или если ее вообще уже толком не видать из-за заплат — лучше начать сначала.


"Толком не видать" — это проблема не техническая, это проблема в глядельщиках, которые за деревьями не различают леса.

PD>Не знаю, рефакторит MS Internet Explorer или нет


Я знаю — рефакторит.

PD>, но ИМХО он уже дошел до невменяемости. Виснет без видимой причины. При закрытии всех окон процесс остается в памяти.


Проблема не в заплатах.
... << RSDN@Home 1.2.0 alpha 4 rev. 1237 on Windows 7 6.1.7100.0>>
AVK Blog
Re[10]: Закон увеличения сложности?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 02.09.09 11:28
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Так и я о том же говорю. Выкмнули они свой Netscape Navigator 4.x и начали все с нуля. Да, на чужом движке.


Ага. Итоговый результат показателен
... << RSDN@Home 1.2.0 alpha 4 rev. 1237 on Windows 7 6.1.7100.0>>
AVK Blog
Re[10]: Закон увеличения сложности?
От: VGn Россия http://vassilsanych.livejournal.com
Дата: 02.09.09 12:50
Оценка:
PD>Так и я о том же говорю. Выкмнули они свой Netscape Navigator 4.x и начали все с нуля. Да, на чужом движке.

Тут важно ещё понимать кто такие они. Разработчиков скорее всего всех поменяли.
PD>
2 or not 2
... << RSDN@Home 1.2.0 alpha 4 rev. 1233>>
Re[11]: Закон увеличения сложности?
От: VGn Россия http://vassilsanych.livejournal.com
Дата: 02.09.09 12:50
Оценка:
AVK>Ага. Итоговый результат показателен

Имхо не вина разработчиков.
Почему у гуглхрома есть бизнес-модель, а нетскапа в убыток работала?
... << RSDN@Home 1.2.0 alpha 4 rev. 1233>>
Re[12]: Закон увеличения сложности?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 02.09.09 17:27
Оценка:
Здравствуйте, VGn, Вы писали:

VGn>Имхо не вина разработчиков.


Конечно. Это попросту не их компетенция. Виноваты менеджеры.
... << RSDN@Home 1.2.0 alpha 4 rev. 1237 on Windows 7 6.1.7100.0>>
AVK Blog
Re[9]: Закон увеличения сложности?
От: Pavel Dvorkin Россия  
Дата: 03.09.09 04:30
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>Не всякий код подлежит рефакторингу.


AVK>Не всякий. Но тот, который кривой — однозначно.


Я не думаю, что Netscape Navigator в первых версиях был кривой. Но в него начали добавлять и добавлять всякие вещи, из-за чего он, конечно, стал кривым. К счастью, его не рефакторили, а просто выбросили.

PD>> Примеров таких немало.


AVK>Примеров можно найти почти чему угодно.


Конечно.

PD>> Кстати, сколько не занимайся рефакторингом 9x, NT все равно не получится.


AVK>NT может и не получится, а вот что то подобное — вполне.


Сейчас уже смысла нет, а если бы наш разговор был лет так 10 назад, я бы посоветовал тебе прочитать книгу Питрека "Секреты системного программирования в Windows95". После ее прочтения становится совершенно ясно — этот продукт рефакторингу не подлежит, его можно лишь поддерживать до тех пор, пока вся эта путаница не рухнет окончательно. Что и было сделано.

PD>> Все зависит от того, какая исходная архитектура заложена.


AVK>Исходная архитектура точно так же рефакторится.


Смотря чего. Сайта заборостроительного завода — да. Если в исходную архитектуру вложили только заборы из штакетника, то с помощью рефакторинга можно туда добавить и металлическую ограду, и даже бетонный забор с колючей проволокой. Ну а если речь идет о серьезном продукте (та же 9x ), то отрефакторить ее можно, только переписав с нуля, может быть, в лучшем случае позаимствовав некоторые модули из прежнего продукта. В 9x и NT совершенно иная база, вот ее и надо заменить полностью. А explorer или IE — да, по-видимому он писался и для той, и для этой.

PD>> Если она не сильно отличается от желаемой — может, и получится. Если же сильно или если ее вообще уже толком не видать из-за заплат — лучше начать сначала.


AVK>"Толком не видать" — это проблема не техническая, это проблема в глядельщиках, которые за деревьями не различают леса.


Почитал бы ты Питрека, такое бы не говорил.

PD>>Не знаю, рефакторит MS Internet Explorer или нет


AVK>Я знаю — рефакторит.


Ну вот и результат

PD>>, но ИМХО он уже дошел до невменяемости. Виснет без видимой причины. При закрытии всех окон процесс остается в памяти.


AVK>Проблема не в заплатах.


А в чем ?
With best regards
Pavel Dvorkin
Re[10]: Закон увеличения сложности?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 03.09.09 10:47
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Я не думаю, что Netscape Navigator в первых версиях был кривой.


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

AVK>>NT может и не получится, а вот что то подобное — вполне.


PD>Сейчас уже смысла нет, а если бы наш разговор был лет так 10 назад, я бы посоветовал тебе прочитать книгу Питрека "Секреты системного программирования в Windows95". После ее прочтения становится совершенно ясно — этот продукт рефакторингу не подлежит


Это все разговор ни о чем. Давай конкретно — что именно будет препятствовать рефакторингу?

AVK>>Исходная архитектура точно так же рефакторится.


PD>Смотря чего.


Всего.

PD> Ну а если речь идет о серьезном продукте (та же 9x ), то отрефакторить ее можно, только переписав с нуля


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

AVK>>"Толком не видать" — это проблема не техническая, это проблема в глядельщиках, которые за деревьями не различают леса.


PD> Почитал бы ты Питрека, такое бы не говорил.


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

PD>>>Не знаю, рефакторит MS Internet Explorer или нет


AVK>>Я знаю — рефакторит.


PD>Ну вот и результат


Результат там обусловлен совсем другими причинами.

AVK>>Проблема не в заплатах.


PD>А в чем ?


В разработчиках.
... << RSDN@Home 1.2.0 alpha 4 rev. 1237 on Windows 7 6.1.7100.0>>
AVK Blog
Re[11]: Закон увеличения сложности?
От: FR  
Дата: 03.09.09 11:57
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Это все разговор ни о чем. Давай конкретно — что именно будет препятствовать рефакторингу?


Только цена.
Рефакторинг может оказаться дороже, а иногда и существенно дороже чем написание с нуля.
Re[11]: Закон увеличения сложности?
От: metaprogrammer  
Дата: 03.09.09 12:03
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Моя практика (сайтами заборостроительных я не занимаюсь, все больше большими продуктами) показывает обратное — с тем или иным количеством усилий отрефакторить можно все.


А в эту практику входили продукты, которым тридцать лет или больше? Мешанину из Фортрана, Си и PL/I рефакторить злейшему врагу не пожелаю.

AVK> Попытка же переписать все обычно свидетельствует о двух вещах:

AVK>1) Лени и неумении разбираться в плохом коде
AVK>2) Неумении давать хотя бы примерные оценки времени на реализацию.

В плохом древнем коде разбираться я очень даже умею. И в большинстве случаев цикл "понять логику — придумать лучше — переписать заново" занимал в несколько раз меньше времени, чем "понять логику — понять все косяки и незадокументированные грязные хаки — инкрементально изменять до приличного состояния".
Re[11]: Закон увеличения сложности?
От: Pavel Dvorkin Россия  
Дата: 03.09.09 12:05
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>Я не думаю, что Netscape Navigator в первых версиях был кривой.


AVK>Думать ты можешь что угодно.


Ну хоть на этом спасибо

>Вопрос в том, как обстоит дело в реальности.


А в реальности дело , конечно, обстоит так, как об этом думаешь ты. Это, впрочем, давно понятно.

PD>>Сейчас уже смысла нет, а если бы наш разговор был лет так 10 назад, я бы посоветовал тебе прочитать книгу Питрека "Секреты системного программирования в Windows95". После ее прочтения становится совершенно ясно — этот продукт рефакторингу не подлежит


AVK>Это все разговор ни о чем. Давай конкретно — что именно будет препятствовать рефакторингу?


Пожалуйста.

1. Отсутствие продуманной модели ядра. Ядро было сделано в 16-битном варианте исходно, причем для реального режима. После этого последовательно добавляли DPMI (переход к стандартному режиму), потом переводили вызовы int 21H (да-да, именно их, а еще int 2FH) в соответствующий код для 32-битного режима, потом добавляли то, что имеется в Win32 (объекты ядра)
2. Отсутствие системы безопасности ВООБЩЕ.
3. user и gdi в основном так и остались 16-битными и нереентерабельными. Тебе понятие Win16Mutex (он же Win16Lock) знакомо ? Это как раз признание тог, что рефакторить 16-битный код в 32-битный и сделать его реентерабельным не удалось. Кстати, по этой же причине прекратили существования VBX и были заменены на OCX.
4. Кооперативная модель многозадачности, в которую было в качестве заплаты добавлена вытесняющая
5. Загрузка из реального режима, при том, что уже могли загрузиться драйверы реального режима (config.sys), которые приходилось кривым способом дизейблить.
6. Совершенно кривой способ реализации VM86. Общая память для всех DOS-окон. Выход из VM86 путем выполнения недопустимой операции (именно так, выполняется операция, недопустимая в VM86, отсюда исключение 6 и как результат выход в PM32)

Это то, что я написал, не думая. Если начну вспоминать или почитаю того же Питрека — я еще с десяток пунктов напишу.

А если коротко — сколько ни пытайся рефакторить Запорожец, Мерседес все равно не получится.

PD>>Смотря чего.


AVK>Всего.


Например, MS-DOS в Windows 7 ?

PD>> Ну а если речь идет о серьезном продукте (та же 9x ), то отрефакторить ее можно, только переписав с нуля


AVK>Моя практика (сайтами заборостроительных я не занимаюсь, все больше большими продуктами) показывает обратное — с тем или иным количеством усилий отрефакторить можно все. Попытка же переписать все обычно свидетельствует о двух вещах:

AVK>1) Лени и неумении разбираться в плохом коде
AVK>2) Неумении давать хотя бы примерные оценки времени на реализацию.

Ясно. В общем, можно из всего сделать все. А те, кто не желают этим заниматься — повинны в лени и неумении.

Ответь тогда на один простой вопрос — почему же MS начала линию NT вместо того, чтобы рефакторить эту 9x ?

AVK>>>"Толком не видать" — это проблема не техническая, это проблема в глядельщиках, которые за деревьями не различают леса.


PD>> Почитал бы ты Питрека, такое бы не говорил.


AVK>Не надо считать других глупее себя. Я не книжки читал, я непосредственно сталкивался и сталкиваюсь с таким кодом вживую.


Не знаю, чем ты именно занимаешься, это твое дело. Может, в этой области твое утверждение и верно. В общем случае — нет, что и показывает практика (9x->NT). И чтение книжек тут как раз очень даже помогает понять. где и когда стоит переделывать, а когда — начать с чистого листа.


PD>>А в чем ?


AVK>В разработчиках.


Для одного из своих основных продуктов, более того, продукта, который во многом определяет лицо MS перед массовым юзером (MS SQL, VS и т.д. пользуются немногие, Office — гораздо больше, но далеко не все, а вот в Интернет ходят все) MS не смогла сформировать хорошую команду разработчиков ? Что-то странно это...
With best regards
Pavel Dvorkin
Re[12]: Закон увеличения сложности?
От: metaprogrammer  
Дата: 03.09.09 12:47
Оценка: +1
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Ответь тогда на один простой вопрос — почему же MS начала линию NT вместо того, чтобы рефакторить эту 9x ?


Справедливости ради — NT всё же гораздо раньше чем 9x начали делать.
Re[12]: Закон увеличения сложности?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 03.09.09 14:25
Оценка:
Здравствуйте, FR, Вы писали:

AVK>>Это все разговор ни о чем. Давай конкретно — что именно будет препятствовать рефакторингу?


FR>Только цена.


Цена ппереписывания с нуля не может быть маленькой по определению.

FR>Рефакторинг может оказаться дороже, а иногда и существенно дороже чем написание с нуля.


Существенно дороже — ну очень вряд ли. Слегка дороже — возможно, но это с лихвой окупится выпуском промежуточных версий.
Не, я конечно понимаю, что намного приятнее писать с чистого листа, но с коммерческой точки зрения эта практика крайне сомнительна.
... << RSDN@Home 1.2.0 alpha 4 rev. 1237 on Windows 7 6.1.7100.0>>
AVK Blog
Re[12]: Закон увеличения сложности?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 03.09.09 14:25
Оценка:
Здравствуйте, metaprogrammer, Вы писали:

M> А в эту практику входили продукты, которым тридцать лет или больше? Мешанину из Фортрана, Си и PL/I рефакторить злейшему врагу не пожелаю.


А как ты думаешь с такими системами поступают? Их переписать — нереально. Поэтому фортранокобол до сих пор эксплуатируется в совсем немаленьких объемах.

M> В плохом древнем коде разбираться я очень даже умею. И в большинстве случаев цикл "понять логику — придумать лучше — переписать заново" занимал в несколько раз меньше времени, чем "понять логику — понять все косяки и незадокументированные грязные хаки — инкрементально изменять до приличного состояния".


Не не не. Я же ведь не против переписывания кусочков итерационно. Мне крайне сомнительно переписывание продукта целиком.
... << RSDN@Home 1.2.0 alpha 4 rev. 1237 on Windows 7 6.1.7100.0>>
AVK Blog
Re[12]: Закон увеличения сложности?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 03.09.09 14:25
Оценка: -1
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>А в реальности дело , конечно, обстоит так, как об этом думаешь ты. Это, впрочем, давно понятно.


По делу есть что сказать?

AVK>>Это все разговор ни о чем. Давай конкретно — что именно будет препятствовать рефакторингу?


PD>Пожалуйста.


PD>1. Отсутствие продуманной модели ядра. Ядро было сделано в 16-битном варианте исходно, причем для реального режима. После этого последовательно добавляли DPMI (переход к стандартному режиму), потом переводили вызовы int 21H (да-да, именно их, а еще int 2FH) в соответствующий код для 32-битного режима, потом добавляли то, что имеется в Win32 (объекты ядра)


Делаем микроядро в 32-битном варианте, старый объемный код обвязываем стабами.

PD>2. Отсутствие системы безопасности ВООБЩЕ.


Добавляем. API то эту безопасность уже содержало, нужна была только реализация.

PD>3. user и gdi в основном так и остались 16-битными и нереентерабельными.


На первом этапе можно оставить. Потом портануть из NT.

PD>4. Кооперативная модель многозадачности, в которую было в качестве заплаты добавлена вытесняющая


Выкинуть заплату, сделать полностью вытесняющей.

PD>5. Загрузка из реального режима, при том, что уже могли загрузиться драйверы реального режима (config.sys), которые приходилось кривым способом дизейблить.


Ну, это вообще не проблема. Загрузчик штука весьма обособленная.

PD>6. Совершенно кривой способ реализации VM86. Общая память для всех DOS-окон.


Не проблема, опять же — VM86 штука тоже отдельная.

PD>Это то, что я написал, не думая.


Плохо, что не думая.

PD> Если начну вспоминать или почитаю того же Питрека — я еще с десяток пунктов напишу.


Лучше не надо. Все, что ты перечислил, прекрасно рефакторится без переписывания всего и вся.

AVK>>Всего.


PD>Например, MS-DOS в Windows 7 ?


Это просто разные продукты, абсолютно невзаимозаменяемые.

PD>Ясно. В общем, можно из всего сделать все.


Передергивание.

PD>Ответь тогда на один простой вопрос — почему же MS начала линию NT вместо того, чтобы рефакторить эту 9x ?


Линия NT уже давно существовала на момент появления 9Х, о чем тебе уже здесь писали. Продукт уже был. При таком раскладе, конечно же, дешевле просто выкинуть 9Х.

PD>Не знаю, чем ты именно занимаешься, это твое дело.




PD> Может, в этой области твое утверждение и верно. В общем случае — нет, что и показывает практика (9x->NT).


Ну сколько можно повторять одну и ту же глупость — NT это не переписывание 9Х, это параллельный продукт.

PD> И чтение книжек тут как раз очень даже помогает понять. где и когда стоит переделывать, а когда — начать с чистого листа.


Давай формальный критерий — когда нужно переписывать все?

AVK>>В разработчиках.


PD>Для одного из своих основных продуктов


Какой он нафик основной? Основные продукты у МС — Винда и Офис, все остальное шелуха для продажи первых двух.

PD>, более того, продукта, который во многом определяет лицо MS перед массовым юзером (MS SQL, VS и т.д. пользуются немногие, Office — гораздо больше, но далеко не все, а вот в Интернет ходят все) MS не смогла сформировать хорошую команду разработчиков ? Что-то странно это...


Ничего странного. Такое происходит сплощь и рядом.
... << RSDN@Home 1.2.0 alpha 4 rev. 1237 on Windows 7 6.1.7100.0>>
AVK Blog
Re[13]: Закон увеличения сложности?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 03.09.09 14:25
Оценка:
Здравствуйте, metaprogrammer, Вы писали:

M> Справедливости ради — NT всё же гораздо раньше чем 9x начали делать.


Если факты противоречат теории ...
... << RSDN@Home 1.2.0 alpha 4 rev. 1237 on Windows 7 6.1.7100.0>>
AVK Blog
Re[12]: Закон увеличения сложности?
От: VGn Россия http://vassilsanych.livejournal.com
Дата: 03.09.09 14:27
Оценка: +2
M> В плохом древнем коде разбираться я очень даже умею. И в большинстве случаев цикл "понять логику — придумать лучше — переписать заново" занимал в несколько раз меньше времени, чем "понять логику — понять все косяки и незадокументированные грязные хаки — инкрементально изменять до приличного состояния".

Иногда "понять логику" должно пройти через "понять все косяки и незадокументированные грязные хаки".
Как поступать в таком случае.
На позапрошлом проекте мне пришлось-таки "инкрементально изменять до приличного состояния". И только после этого я смог "придумать лучше — переписать заново".
Такое бывает, когда всё погрязло в связности и старательно обмотано спагетти.
... << RSDN@Home 1.2.0 alpha 4 rev. 1233>>
Re[13]: Закон увеличения сложности?
От: metaprogrammer  
Дата: 03.09.09 14:32
Оценка:
Здравствуйте, AndrewVK, Вы писали:

M>> А в эту практику входили продукты, которым тридцать лет или больше? Мешанину из Фортрана, Си и PL/I рефакторить злейшему врагу не пожелаю.


AVK>А как ты думаешь с такими системами поступают?


Я знаю, как с ними поступают. Одну такую переписывали целиком с нуля, с совсем новой архитектурой, другая такая уже лет десять переписывается по частям, модуль за модулем. А что делать то? Поддерживать то этот кошмар невозможно.

AVK> Их переписать — нереально. Поэтому фортранокобол до сих пор эксплуатируется в совсем немаленьких объемах.


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

AVK>Не не не. Я же ведь не против переписывания кусочков итерационно.


Особой разницы обычно нет, кусочки могут быть при этом очень большими, и представлять собой вполне полноценные продукты сами по себе. При таком переписывании архитектура может меняться весьма существенно. А так — можно и этот разнесчастный переход 9x->NT назвать инкрементальным. А что — всего-то ядро поменяли, потом библиотеки одну за другой переписывали...

AVK> Мне крайне сомнительно переписывание продукта целиком.


Иногда и это бывает необходимым, когда заложенный в архитектуру предел роста уже достигнут.
Re[13]: Закон увеличения сложности?
От: VGn Россия http://vassilsanych.livejournal.com
Дата: 03.09.09 14:44
Оценка:
AVK>Цена ппереписывания с нуля не может быть маленькой по определению.

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

AVK>Существенно дороже — ну очень вряд ли. Слегка дороже — возможно, но это с лихвой окупится выпуском промежуточных версий.

AVK>Не, я конечно понимаю, что намного приятнее писать с чистого листа, но с коммерческой точки зрения эта практика крайне сомнительна.

Тут влияет квалификация разработчиков.
Если квалификация низкая — проще переписать. Получится тоже говно, но уже другое и быстро

А вообщее конечно обсуждается сферический конь в вакууме. Надо смотреть по месту.
... << RSDN@Home 1.2.0 alpha 4 rev. 1233>>
Re: Закон увеличения сложности?
От: COFF  
Дата: 03.09.09 16:20
Оценка:
Здравствуйте, FR, Вы писали:

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


Аналогия хорошая, я сам как-то пришел к похожей. Но тут все определяется тем, как проект развивается. Никто не мешает, условно говоря превратить круг в овал или любую другую выпуклую фигуру, главное правильно расставлять приоритеты и не пытаться прыгнуть выше головы. Если же точки роста, грубо говоря, задаются без учета текущего состояния системы — заказчиком, или отделом маркетинга, или еще кем-то внешним, типа хочу, чтобы здесь была красивая красная кнопка, а как вы это сделаете, меня не интересует, то тогда действительно в итоге получим фрактал.
Re[11]: Закон увеличения сложности?
От: EvilChild Ниоткуда  
Дата: 03.09.09 17:48
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Бывает относительно хороший код, который рефакторить тяжело, бывает плохой код, который рефакторить легко. Догадываешься, в чем разница?


А что за критерий по которому код хороший, а рефакторится плохо?
Можно пару подробностей или примеров?
now playing: Boris Brejcha — Desire
Re[14]: Закон увеличения сложности?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 03.09.09 20:53
Оценка: +1
Здравствуйте, VGn, Вы писали:

VGn>Но она всё-равно не высока




AVK>>Не, я конечно понимаю, что намного приятнее писать с чистого листа, но с коммерческой точки зрения эта практика крайне сомнительна.


VGn>Тут влияет квалификация разработчиков.


Конечно. Чем выше квалификация, тем меньше разработчика тянет переписать все нафик.

VGn>Если квалификация низкая — проще переписать. Получится тоже говно, но уже другое и быстро


Не проще, потому что получится такое же гавно неизвестно когда и намного более глючное, потому что про доведение кода до production state обычно переписывальщиков не заботит.
... << RSDN@Home 1.2.0 alpha 4 rev. 1237 on Windows 7 6.1.7100.0>>
AVK Blog
Re[14]: Закон увеличения сложности?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 03.09.09 20:53
Оценка: +1
Здравствуйте, metaprogrammer, Вы писали:

M> Я знаю, как с ними поступают. Одну такую переписывали целиком с нуля, с совсем новой архитектурой


И как, переписали?

M>, другая такая уже лет десять переписывается по частям, модуль за модулем


О!

M>. А что делать то? Поддерживать то этот кошмар невозможно.


Рефакторить.

M> Эксплуатируется — да, и ещё лет сорок эксплуатироваться будет как минимум. Но не рефакторится.


Конечно. Потому что дешевле переписать на современных языках. Но это крайности.

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


Да нет, обычно ее переписывают потихоньку с запуском в работу кучи промежуточных состояний.

M> Особой разницы обычно нет


С точки зрения технической — почти нет. С точки зрения коммерческой — есть и еще какая.

M> Иногда и это бывает необходимым, когда заложенный в архитектуру предел роста уже достигнут.


Нет никаких таких пределов в реальности. Есть лишь способность кода и архитектуры меняться в той или иной степени. Чем выше эта способность, тем дешевле обходится рефакторинг. А рассчитывать на то, что раз созданная архитектура без серьезных изменений способна прожить долго — ну, каждый сам себе злобный буратина.
От переписофилии хорошо, кстати, лечит более менее частый и стабильный график релизов.
... << RSDN@Home 1.2.0 alpha 4 rev. 1237 on Windows 7 6.1.7100.0>>
AVK Blog
Re[12]: Закон увеличения сложности?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 03.09.09 20:53
Оценка:
Здравствуйте, EvilChild, Вы писали:

EC>А что за критерий по которому код хороший, а рефакторится плохо?

EC>Можно пару подробностей или примеров?

Я сказал относительно хороший. Обычно такой код обладает повышенной связностью.
... << RSDN@Home 1.2.0 alpha 4 rev. 1237 on Windows 7 6.1.7100.0>>
AVK Blog
Re: Закон увеличения сложности?
От: jazzer Россия Skype: enerjazzer
Дата: 03.09.09 23:33
Оценка:
Здравствуйте, FR, Вы писали:

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


С какого бодуна ей стремиться к нулю???
Посмотри на множество Мандельброта с фрактальной границей — его площадь разве стремится к нулю с ростом детализации границы?

Применительно к софту — если софт умеет что-то делать (скажем, копировать файл), то после добавления 84-х новых фич она окажется неспособной сделать то, что умела делать изначально (копировать файл)?
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[2]: Закон увеличения сложности?
От: FR  
Дата: 04.09.09 03:28
Оценка:
Здравствуйте, jazzer, Вы писали:

J>С какого бодуна ей стремиться к нулю???

J>Посмотри на множество Мандельброта с фрактальной границей — его площадь разве стремится к нулю с ростом детализации границы?

Читай внимательней

рост площади фигуры ... стремится к нулю

Re[3]: Закон увеличения сложности?
От: jazzer Россия Skype: enerjazzer
Дата: 04.09.09 04:44
Оценка:
Здравствуйте, FR, Вы писали:

FR>Читай внимательней


FR>

FR>рост площади фигуры ... стремится к нулю


Да, действительно, невнимательно прочитал.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[13]: Закон увеличения сложности?
От: Pavel Dvorkin Россия  
Дата: 04.09.09 06:37
Оценка:
Здравствуйте, metaprogrammer, Вы писали:

M> Справедливости ради — NT всё же гораздо раньше чем 9x начали делать.


Справедливости ради — 9x есть продолжение 3.x 16 битной, которая в свое время есть продолжение в конечном счете 1.0, которую делать начали намного раньше
With best regards
Pavel Dvorkin
Re[13]: Закон увеличения сложности?
От: Pavel Dvorkin Россия  
Дата: 04.09.09 07:08
Оценка: +1 -1 :)
Здравствуйте, AndrewVK, Вы писали:

AVK>По делу есть что сказать?


Это у вас с IT фирменное блюдо, что ли ? Если говорят то, что вам не нравится — значит, не по делу.

AVK>>>Это все разговор ни о чем. Давай конкретно — что именно будет препятствовать рефакторингу?


PD>>Пожалуйста.


PD>>1. Отсутствие продуманной модели ядра. Ядро было сделано в 16-битном варианте исходно, причем для реального режима. После этого последовательно добавляли DPMI (переход к стандартному режиму), потом переводили вызовы int 21H (да-да, именно их, а еще int 2FH) в соответствующий код для 32-битного режима, потом добавляли то, что имеется в Win32 (объекты ядра)


AVK>Делаем микроядро в 32-битном варианте, старый объемный код обвязываем стабами.


То-то веселая производительность будет.

PD>>2. Отсутствие системы безопасности ВООБЩЕ.


AVK>Добавляем. API то эту безопасность уже содержало, нужна была только реализация.


М-да...Это к коду, который частично выполняется в реальном режиме, ты собираешься безопасность добавить ? . Причем в реальном режиме там выполняется не какой-то кусок explorer, а самая что ни на есть часть ядра...

PD>>3. user и gdi в основном так и остались 16-битными и нереентерабельными.


AVK>На первом этапе можно оставить. Потом портануть из NT.


Двигатель от Боинга поставить на Запорожец.

PD>>4. Кооперативная модель многозадачности, в которую было в качестве заплаты добавлена вытесняющая


AVK>Выкинуть заплату, сделать полностью вытесняющей.


Да ну ? Можно поподробнее, как ты себе это представляешь ? Как это понравится 16-битным приложениям, которые про вытесняющую и слыхом не слыхали ? Как это понравится тем же user/gdi , которые тоже не слыхали. И т.д.

PD>>5. Загрузка из реального режима, при том, что уже могли загрузиться драйверы реального режима (config.sys), которые приходилось кривым способом дизейблить.


AVK>Ну, это вообще не проблема. Загрузчик штука весьма обособленная.


Если бы ты знал архитектуру 9x, то не говорил бы такое. Он там никак не обособленный, потому что он вообще не загрузчик в нынешнем понимании слова. Это просто встроенный запуск программы DOS. Да-да, именно так. В Windows 3.11 загружали сначала MS-DOS, а потом набирали в командной строке C:>win. А в 9x... в общем, то же самое, только набирается автоматически. И при этом все загруженные драйверы и TSR должны быть на месте, и работать, если только их 9x не подменит своим кодом.

PD>>6. Совершенно кривой способ реализации VM86. Общая память для всех DOS-окон.


AVK>Не проблема, опять же — VM86 штука тоже отдельная.


Ох...

PD>>Это то, что я написал, не думая.


AVK>Плохо, что не думая.


Глупо пытаться придать фразе иной смысл, чем тот, который был в нее заложен.

PD>> Если начну вспоминать или почитаю того же Питрека — я еще с десяток пунктов напишу.


AVK>Лучше не надо. Все, что ты перечислил, прекрасно рефакторится без переписывания всего и вся.


В общем, все, с меня хватит. То, что ты со внутренней структурой 9x не знаком — для меня ясно. Это, впрочем, беда небольшая. Но вот то, что ты, не зная о ней практически ничего, решаешься делать широковещательные выводы — вот это действительно плохо. Не для меня (мне-то что ?) , а для тебя. Потому что и в практической деятельности ты (и если бы только ты!) начнешь рефакторить то, что подлежит просто списанию, а в итоге устроишь такой монстр, о котором впоследствиии можно будет одно сказать — работать-то он работает, а вот почему и как — это уже никому не понятно. Ну и скорость работы будет... что и говорить.



PD>>Ответь тогда на один простой вопрос — почему же MS начала линию NT вместо того, чтобы рефакторить эту 9x ?


AVK>Линия NT уже давно существовала на момент появления 9Х, о чем тебе уже здесь писали.


В последний раз объясняю — 9x есть следующая версия 3.x 16. Историю знать не мешает все же.


>Продукт уже был. При таком раскладе, конечно же, дешевле просто выкинуть 9Х.


Слава богу, что MS твоим советам не следовало, а все же сообразила начать с нуля.

PD>> Может, в этой области твое утверждение и верно. В общем случае — нет, что и показывает практика (9x->NT).


AVK>Ну сколько можно повторять одну и ту же глупость — NT это не переписывание 9Х, это параллельный продукт.


А можно ссылку, где я говорил , что NT это именно переписывание 9x ? Из предыдущей фразы это отнюдь не следует, там идет речь о переходе, а отнюдь не о переписывании. Это именно ты утверждал, что можно было путем рефакторинга из 9x сделать что-то приличное. А я именно утверждал, что единственное решение здесь — начать с чистого листа. Что MS и сделала.

Приписывать оппоненту прямо противоположное тому, что он утверждает и объявить это глупостью — да, конечно, достойный способ дискутирования .

PD>> И чтение книжек тут как раз очень даже помогает понять. где и когда стоит переделывать, а когда — начать с чистого листа.


AVK>Давай формальный критерий — когда нужно переписывать все?


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

Вот у нас сейчас как раз ситуация. когда предстоит переписывание продукта, проработавшего более 10 лет, из которых последние 5 лет мы его не поддерживали. Заказчика он вполне устраивал, да и сейчас работает как часы, но время идет... Так что если выиграем тендер — будем переписывать с нуля, а не выиграем — это будет делать кто-то иной . Жалко мне, конечно, тот код, на который я не один год потратил, но что поделаешь. Кстати, я своему менеджеру заикнулся было насчет использования прежнего кода хоть бы в части. Ответ был четкий и недвусмысленный — все будет делаться заново. А заказчик, поверь, очень уж серьезный

AVK>>>В разработчиках.


PD>>Для одного из своих основных продуктов


AVK>Какой он нафик основной? Основные продукты у МС — Винда и Офис, все остальное шелуха для продажи первых двух.


With best regards
Pavel Dvorkin
Re[15]: Закон увеличения сложности?
От: metaprogrammer  
Дата: 04.09.09 08:37
Оценка:
Здравствуйте, AndrewVK, Вы писали:

M>> Я знаю, как с ними поступают. Одну такую переписывали целиком с нуля, с совсем новой архитектурой


AVK>И как, переписали?


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

Просто, переписывать с нуля — тоже уметь надо.

M>>, другая такая уже лет десять переписывается по частям, модуль за модулем


AVK>О!


И за это время куча релизов вышла, кстати.

M>>. А что делать то? Поддерживать то этот кошмар невозможно.


AVK>Рефакторить.


Нет. Не понимаю я этой веры в рефакторинг. Плохой код очень часто дешевле переписать чем исправить.

M>> Эксплуатируется — да, и ещё лет сорок эксплуатироваться будет как минимум. Но не рефакторится.


AVK>Конечно. Потому что дешевле переписать на современных языках. Но это крайности.


Эти "крайности" почему-то мне постоянно попадаются на пути. Собственно, практически только подобным переписыванием я всю жизнь и занимаюсь.

AVK>С точки зрения технической — почти нет. С точки зрения коммерческой — есть и еще какая.


Не вижу и коммерческой разницы тем более.

AVK>Нет никаких таких пределов в реальности.


Есть-есть. Например, код на Fortran 77, полностью завязанный на глобальные состояния, распараллелить и сделать thread safe нереально вообще. Только переписать с нуля, и на более адекватном языке.

AVK> Есть лишь способность кода и архитектуры меняться в той или иной степени. Чем выше эта способность, тем дешевле обходится рефакторинг.


Человеческая фантазия безгранична на идиотские и нелепые архитектуры.

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


Да кто ж тридцать лет назад так далеко вперёд заглядывал? Они не буратины, просто индустрия тогда вся молодая и неопытная была.

AVK>От переписофилии хорошо, кстати, лечит более менее частый и стабильный график релизов.


См. выше — нисколько не лечит, а наоборот неплохо помогает.
Re[2]: Закон увеличения сложности?
От: Pavel Dvorkin Россия  
Дата: 04.09.09 08:59
Оценка:
Здравствуйте, COFF, Вы писали:

COF>Аналогия хорошая, я сам как-то пришел к похожей. Но тут все определяется тем, как проект развивается. Никто не мешает, условно говоря превратить круг в овал или любую другую выпуклую фигуру


И даже в прямоугольник, по крайней мере в дискретном пространстве дисплея. Только стоит ли ?


>главное правильно расставлять приоритеты и не пытаться прыгнуть выше головы.


Вот именно.
With best regards
Pavel Dvorkin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.