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
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.