Информация об изменениях

Сообщение Re[13]: Конец эпохи говнокода от 01.02.2016 8:21

Изменено 01.02.2016 9:36 netch80

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

I>>А ты в курсе, что 486й тормозил уже на сотне другой кб чистого хтмл с картинками без css и скриптов ? Это при запуске с диска.


P>Вспомнил. Как-то один мой знакомый делал для себя страничку. У него возникли вопросы по верстке, и он обратился к полиграфисту. Тот сотворил страницу, которая выглядела прекрасно, только весила 1.5 мега.


Вот у меня подозрение, что CSS возникли именно для того, чтобы тулзами типа того же FrontPage или экспортом Word->HTML творить нечто, что укладывалось в разумные объёмы (а рассказы про избавление от ручной работы при вёрстке — это уже позднейшие оправдания). Потому что оно каждому объекту описывало полный стиль со всеми подробностями, отсюда и безумный объём. А если стиль вынести в отдельный объект и давать только ссылку на него, то объём сокращался раз в 20.

P> После адских усилий ее объем удалось сократить до 700 К. А требовалось — 30. Потому что даже локально страница грузилась полдня. А по dialup на 14400 — не проверишь, потому как для начала ее на сервер залить надо было. Время действия — примерно 1996 год. Компы — 486 с памятью от 4 до 8. На всякий уточню — не гигов, а мегов.


486-й ещё без процессорного кэша вообще был местами страшно тормозной. Если продолжать тему говнокода... есть такой Taylor UUCP, написанный неким Ian Lance Taylor, который сейчас один из архитекторов Go (одна из причин, почему я очень не уважаю Go). Тулза отличная для ситуации типа "3 пира с очень развесистыми правилами дозвона", но для противоположной ситуации "2000 пиров простейшего вида, только логин и пароль" она оказалась не в адеквате потому, что при старте uucico
1) конфиг читался первый раз, размечались позиции старта секции конкретной системы (в его терминах это peer)
2) конфиг читался второй раз с начала, по логину искалась целевая система
3) конфиг читался с позиции конкретной системы, разбиралось описание уже в деталях

и присутствующие тогда 486-е не успевали всё это выполнить при десятке одновременно логинящихся за стандартный 30-секундный таймаут(!), и если не ограничивать количество одновременных установлений связи (не установленных, а именно установлений), то возникал "любимый" эффект квадратичной зависимости (типа такого).
Народу пришлось судорожно бежать за системой на Pentium — и время одного логина сократилось с 50 до 5 секунд, что было уже более чем приемлемо.
А сама Taylor UUCP с таким чтением стала самым убойным примером говнокода на долгие годы.
Re[13]: Конец эпохи говнокода
Здравствуйте, Privalov, Вы писали:

I>>А ты в курсе, что 486й тормозил уже на сотне другой кб чистого хтмл с картинками без css и скриптов ? Это при запуске с диска.


P>Вспомнил. Как-то один мой знакомый делал для себя страничку. У него возникли вопросы по верстке, и он обратился к полиграфисту. Тот сотворил страницу, которая выглядела прекрасно, только весила 1.5 мега.


Вот у меня подозрение, что CSS возникли именно для того, чтобы тулзами типа того же FrontPage или экспортом Word->HTML творить нечто, что укладывалось в разумные объёмы (а рассказы про избавление от ручной работы при вёрстке — это уже позднейшие оправдания). Потому что оно каждому объекту описывало полный стиль со всеми подробностями, отсюда и безумный объём. А если стиль вынести в отдельный объект и давать только ссылку на него, то объём сокращался раз в 20.

P> После адских усилий ее объем удалось сократить до 700 К. А требовалось — 30. Потому что даже локально страница грузилась полдня. А по dialup на 14400 — не проверишь, потому как для начала ее на сервер залить надо было. Время действия — примерно 1996 год. Компы — 486 с памятью от 4 до 8. На всякий уточню — не гигов, а мегов.


486-й ещё без процессорного кэша (или со слишком мелким кэшом) вообще был местами страшно тормозной. Если продолжать тему говнокода... есть такой Taylor UUCP, написанный неким Ian Lance Taylor, который сейчас один из архитекторов Go (одна из причин, почему я очень не уважаю Go). Тулза отличная для ситуации типа "3 пира с очень развесистыми правилами дозвона", но для противоположной ситуации "2000 пиров простейшего вида, только логин и пароль" она оказалась не в адеквате потому, что при старте uucico
1) конфиг читался первый раз, размечались позиции старта секции конкретной системы (в его терминах это peer)
2) конфиг читался второй раз с начала, по логину искалась целевая система
3) конфиг читался с позиции конкретной системы, разбиралось описание уже в деталях

и присутствующие тогда 486-е не успевали всё это выполнить при десятке одновременно логинящихся за стандартный 30-секундный таймаут(!), и если не ограничивать количество одновременных установлений связи (не установленных, а именно установлений), то возникал "любимый" эффект квадратичной зависимости (типа такого).
Народу пришлось судорожно бежать за системой на Pentium ненамного более быстрым по формальным попугаям — и время одного логина сократилось с 50 до 5 секунд, что было уже более чем приемлемо.
А сама Taylor UUCP с таким чтением стала самым убойным примером говнокода на долгие годы.