LINUX.ORG.RU
ФорумTalks

Почему дополнительные прослойки - это плохо


0

2

Дополнительные прослойки часто берут на себя слишком многое, реализуемое без них штатными средствами, порой выполняя это совсем плохо.

В частности, например, иксы берут на себя управление раскладками, и с этим связан легендарный баг:

   ... в один прекрасный момент, с
   выходом XFree86 версии 3.3.2, русская раскладка для кодировки KOI8-R без всяких видимых причин просто перестала
   работать. Точнее, она делал вид, что работала, но выводе получалась абракадабра из русских букв.

   Дело оказалось в том, что раскладка для кодировки KOI8-R подменялась таблицей для ISO 8859-5. А причина
   заключалась в банальной опечатке в исходниках главной Иксовой библиотеки - xlib. Более ни на что эта опечатка
   не влияла, и потому её выявление заняла довольно много времени. Это было сделано Иваном Паскалем, который и
   написал соответствующий патч для версии 3.3.2, штатно включённый в следующий релиз (3.3.3).
Версия XFree86 3.3.2 вышла 24-го мая 1998-го года, а XFree86 3.3.3 - 30-го декабря 1998-го года. В ядре уже были зачатки фреймбуферовской консоли. Также в ходу были живые хардварные текстовые терминалы DEC VT510, DEC VT520 и DEC VT525, которые были выпущены в 1993-1994-х годах, и юзеры которых об этом баге могли и не знать.

★★★★★
Ответ на: комментарий от h578b1bde

Была бы у него возможность он бы и KOI7 юзал, а не разжиревшей KOI8-R.

StReLoK ☆☆
()

фреймбуферовской

Буффон. Ты. Умри.

Stahl ★★☆
()

Лучше бабу найди. Пока твои зачатки яиц не отвалились за ненадобностью.

kirk_johnson ★☆
()

Легендарным этот баг является потому, что встречался он в легендах о сказочных персонажах? Хотя да, все пользователи KOI8 сказочные персонажи.

redgremlin ★★★★★
()
Ответ на: комментарий от h578b1bde

По-хорошему технологии не должны меняться на протяжении одного поколения. Если постоянно переучиваться не будет времени на работу. А легендарный текстовый терминал VT100, который на 100% эмулируется ядерной консолью, появился таки через 5 (!) лет после появления первого GUI от Xerox. Уже были мыши, трекболы и прочие изобретения. Если бы людям так было актуально именно GUI, что без него прямо никак, то они бы вцепились в изобретение Xerox всеми конечностями, и выбросили текстовые терминалы на помойку. Но, нет, и через 20 лет после появления GUI DEC выпускала хардварные текстовые терминалы, которые были нужны людям. Это потом пришёл Мелкософт с Win95 на который потянулись ламеры, и из за их количества стали складываться ложные представления. Люди начали мыслить в плоскости MS DOS - Windows. Мол, сначала был MS DOS с командной строкой, а потом он эволюционировал в Windows с GUI, и с тех пор все юзают GUI. Ничего подобного. GUI появился ещё когда и MS DOS'а не было. А хардварные текстовые терминалы продолжали появляться параллельно с целой Windows 3.11 for Workgroups. Потому, что текстовые терминалы нужны людям. А GUI - не всегда.

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 1)

А легендарный баг что переключалка срабатывает на нажатие, а не отпускание с чем связан?

PS. Вышеотписавшимся господам хотелось бы посоветовать быть подружелюбнее к кор-комьюнити. Или вам клонированных ньюфагов с бубунтами и виндопроблемами читать интереснее, видимо ближе как-то?

d_a ★★★★★
()
Ответ на: комментарий от d_a

А легендарный баг что переключалка срабатывает на нажатие, а не отпускание с чем связан?

С тем как разработчики иксов представляли себе работу xkb. После того как Илья Муромцев написал патч и отправил его разработчикам иксов они его отклонили с тем аргументом, что он «explicitly contradicts the (xkb) spec».

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

Путаетесь в показаниях: текстовые терминалы нужны людям, но люди ими не пользуются - «все юзают GUI». Может людям на самом деле нужны телетайпы?

Ну и GUI, если не ошибаюсь, относительно доступным для обычных пользователей сделал Macintosh.

WDWTFWW
()

А чо, патчи на Netscape Mail & Newsgroups уже забыли?
КОгда при переконвертации фидошных Эх в заголовках были кракозябры?

Мы были юными/молодыми и верили в те светлые идеи вспобеждающего опсоса, даже несмотря уже на тогдашние зайчатки ИИ в Офисе97 и легковесной Шин.98

Deleted
()
Ответ на: комментарий от WDWTFWW

Ага, телетайпы на клависинах. Вообще всё просто - бери рояль, играй буквы.

Deleted
()

И в чём связь между этим багом и прослойками? И с чего ты взял, что иксы не должны отвечать за ввод-вывод, когда это непосредственная задача иксов?

Quasar ★★★★★
()
Ответ на: комментарий от saahriktu

Это ты сейчас ограничиваешь пользователей лагерями DOS-Windows. Реально GUI вполне использовали тогда те, кому было это нужно.

Quasar ★★★★★
()
Ответ на: комментарий от WDWTFWW

WDWTFWW> Ну и GUI, если не ошибаюсь, относительно доступным для обычных пользователей сделал Macintosh.

Тогда уж можно припомнить Amiga. И GEM. И DesqView. И т.д.

Quasar ★★★★★
()
Последнее исправление: Quasar (всего исправлений: 1)
Ответ на: комментарий от Quasar

Я же написал выше, что GUI появился до MS DOS'а. Конечно им пользовались. Но, и текстовые терминалы тоже юзали.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от Quasar

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

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от WDWTFWW

Путаетесь в показаниях: текстовые терминалы нужны людям, но люди ими не пользуются - <<все юзают GUI>>.

Я говорил о том, что есть такой миф о том, что, мол, после появления GUI от Мелкософта все стали юзать только GUI. Но, это далеко не так.

saahriktu ★★★★★
() автор топика

ретроспективный взгляд на всё произошедшее говорит о том, что Мак и Шин3.11 - рулили тогда, как никогда :)

Deleted
()

Хуже всего прослойка между креслом и клавиатурой. Она тоже берет на себя слишком многое, реализуемое без нее штатными средствами и выполняет это совсем плохо.

buddhist ★★★★★
()
Ответ на: комментарий от saahriktu

По-хорошему технологии не должны меняться на протяжении одного поколения.

Со временем наступает момент, когда затраты на поддержку старой технологии начинают превышать стоимость внедрения и поддержки новой. Или появляются новые технические требования, которые старая технология обеспечить не в состоянии.
Понятно, что найдутся те, кого всё устраивает, и нет нужды ничего менять, но само железо и софт меняются весьма быстро, и по дефолту обычно заточены под наиболее широкий круг пользователей, т.е. применяются именно новые технологии, а откат к старому становится дополнительной почти никому не нужной работой.

ArcFi
()
Ответ на: комментарий от ArcFi

Тем не менее, ядерная консоль ни разу не устаревала, работает везде как часы и жрать не просит. В т.ч. и на свежих Raspberry Pi, которые слишком маломощные чтобы тянуть полновесный GUI софт, в крайнем случае только легковесный. А в ядерной консоли всё летает. Один только консольный top отгрызает под 12% проца, но при этом та же консольная maxima через sbcl (который на x86_64 откусывает 1 Гбайт оперативки) вполне шуршит.

Таким образом, в этом контексте, наоборот, переведение всё с рельс текстовых терминалов и KOI8-R на рельсы GUI и UTF-8 может быть лишней тратой человеческих сил и системных ресурсов.

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 1)

И что? То есть без прослоек не может быть эпичных багов? Если не хочется, чтобы баг в какой-то одной штуке сразу становился багов для всех остальных, то нужно не только от прослоек отказаться, а в принципе от концепции переиспользования кода. То есть каких-либо библиотек, а впоследствии и от ядра. Каждая программа должна сама всё делать и программы сообща просто должны распоряжаться ресурсами с помощью ресурсного менеджера, который их просто изолирует. Так да хочется? Ну можно, а трудозатраты? А так вообще в реальном мире бывает что-нибудь? Вот например твоё пищеварение, оно же использует бактерии и микроорганизмы, да? Они вносят потенциальные баги. Избавься от них, запили себе свою систему пищеварения. Ах, не только пищеварение состоит из сторонних компонентов, с остальным тоже самое? Запили себя полностью!

Вот когда у народа рак мозга прогрессирует начинается перепутывания мух да котлет. Баги, некачественный код, дебилы в профессии, повары за рулём автобусов и гопачьё в виде президентов - вот этого такие проблемы. Вот как много людей вообще способных разобраться в xorg? Мало да? А это мол проблема xorg? Нет, это проблема людей, проблема того что людей нужной квалификации очень мало и их ещё гнобят! А потом хипстота травят байки про ненужные прослойки или наоборот про очень нужные - откуда им знать? Они в кофе то не разбираются.

ixrws ★★★
()
Ответ на: комментарий от ixrws

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

Вот если внезапно горит ТЗ, которое невыполнимо без 2048-ми прослоек - тогда уже никуда не деться, да. А держать их просто «чтобы было» может быть лишним.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

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

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

ixrws ★★★
()
Ответ на: комментарий от ixrws

Я критикую иксы не как реализацию саму по себе, а как GUI. Потому, что вполне можно обходиться без GUI, и так надёжнее. Сегодня GUI поднимают и там где надо, и там где не надо. Мол, как это так, у соседа будет, а у меня - нет? У соседа иксы, а у меня только текстовый терминал? У соседа локаль UTF-8, а у меня только KOI8-R?... А можно не завидовать, и держать только необходимое.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

Ну, наверное можно. В принципе процентов 70 времени я провожу в emacs и он прекрасно работает где угодно. Беда только в том, что постоянно приходится пользоваться браузером и прочими такими вещами. Поэтому по факту хоть и использую консольные программы, почти всегда это либо из графического эмулятора терминала или из ssh сессии в графическом же терминале:)

ixrws ★★★
()
Ответ на: комментарий от ixrws

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

skiminok1986 ★★★★★
()
Ответ на: комментарий от saahriktu

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

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

переведение всё с рельс текстовых терминалов и KOI8-R на рельсы GUI и UTF-8 может быть лишней тратой человеческих сил и системных ресурсов.

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

при этом та же консольная maxima через sbcl (который на x86_64 откусывает 1 Гбайт оперативки) вполне шуршит.

И это замечательно, сам активно использую текстовый терминал, однако его одного для моих задач, увы, недостаточно.

ArcFi
()
Ответ на: комментарий от ArcFi

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

Ну то есть другими словами можно было вполне сказать так: среднему юзеру нужно работать с картинками, PDF/DJVU документами, видео,... и т.д. Поэтому он ставит себе графическую среду с юникодом. OK.

А бывают случаи, когда юзеру всё это ненужно. Нет никаких картинок, видео и форматированных документов. Просто исходники, скрипты и текстовые файлы. В 256 символов. И вот тут юникод и графические среды уже избыточны.

saahriktu ★★★★★
() автор топика

XFree86 3.3.2

Как хорошо, что с выходом Wayland адепты иксов будут такими же смешными, как адепты KOI8-R.

EXL ★★★★★
()
Ответ на: комментарий от saahriktu

А бывают случаи, когда юзеру всё это ненужно. ... И вот тут юникод и графические среды уже избыточны.

Допускаю и согласен.
Если от подобной оптимизации вы чувствуете положительный эффект, то пусть будет.
Что касается меня, то чем больше инфраструктура, тем сильнее желание её стандартизировать, поэтому стараюсь искать компромисс между оптимизацией (как производительности, так и затрат на сопровождение) и интероперабельностью.

ArcFi
()
Ответ на: комментарий от EXL

Как хорошо, что с выходом Wayland адепты иксов будут такими же смешными, как адепты KOI8-R.

Задумка хорошая, но реализация слабовата. Тут и под иксы нормальных нежирных тулкитов нет. Разве что Motif и Tk. А в Wayland'е всё перекладывают на плечи тулкитов, в то время как поддерживаемых всего 5, и прежде всего жирнющие Qt 5 и GTK. К официальному выходу Wayland'а, конечно, выдут гораздо более мощные процы, и люди опять будут воспринимать весь этот жор как должное. Мол, не для того мы такое железо покупаем чтобы его ресурсы простаивали...

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от saahriktu

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

И что за прослойка?

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

Что блокирует?

Quasar ★★★★★
()
Ответ на: комментарий от Quasar

И что за прослойка?

Так иксы же.

Что блокирует?

Ядерную консоль (рисует поверх неё) и ядерную переключалку раскладок.

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от saahriktu

Дело не в содержимом. Графические и псевдографические интерфейсы со своими метафорами хорошо подходят для непосредственного манипулирования чем-либо, а текстовые подходят для формулирования более абстрактных «правил». Думается, что с первым вариантом приходится иметь дело чаще.

WDWTFWW
()
Ответ на: комментарий от WDWTFWW

Графические и псевдографические интерфейсы со своими метафорами хорошо подходят для непосредственного манипулирования чем-либо

что помещается на экране. В случаях сотен тысяч, миллионов и миллиардов объектов GUI/TUI всё равно не помогут. Но, можно заюзать CLI инструменты, указав конкретные id объектов. А раз так можно с миллионами и миллиардами объектов, то можно и с десятками.

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от saahriktu

saahriktu> Потому, что вполне можно обходиться без GUI, и так надёжнее.

Попробуй поработать в GIMP без GUI.

Quasar ★★★★★
()
Ответ на: комментарий от saahriktu

saahriktu> А бывают случаи, когда юзеру всё это ненужно. Нет никаких картинок, видео и форматированных документов. Просто исходники, скрипты и текстовые файлы. В 256 символов. И вот тут юникод и графические среды уже избыточны.

И много консольного софта, который принуждает тебя пользоваться UTF-8?

Quasar ★★★★★
()
Ответ на: комментарий от EXL

EXL> Как хорошо, что с выходом Wayland адепты иксов будут такими же смешными, как адепты KOI8-R.

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

Quasar ★★★★★
()
Ответ на: комментарий от saahriktu

saahriktu> Так иксы же.

Тогда иди и митингуй против C. Типа «Долой C! Даёшь ОС на ассемблере!». Ведь UNIX основан на использовании прослоек ради портабельности.

Quasar ★★★★★
()
Ответ на: комментарий от Quasar

уже много лет как вышел и зарелизился как стабильная версия

Вот когда ситуация с Wayland'ом будет примерно такая же:

http://wstaw.org/m/2016/10/19/Screenshot_20161019_202508.png

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

EXL ★★★★★
()
Ответ на: комментарий от Quasar

Попробуй поработать в GIMP без GUI.

Не всем нужен GIMP. Тем более когда для ряда операций с графикой есть консольный ImageMagick.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от Quasar

И много консольного софта, который принуждает тебя пользоваться UTF-8?

Нет, речь не об этом.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от Quasar

Тогда иди и митингуй против C.

Я не против C.

Ведь UNIX основан на использовании прослоек ради портабельности.

Я бы это назвал модульной архитектурой. Когда из отдельных __разных__ модулей складывается общий пазл. А вот «прослойки» - это больше ругательное слово, наиболее применимое в случаях издевательства над архитектурой.

Т.е. правильнее всё выглядело бы не так, что нечто чужеродное запускается поверх ядерной консоли, а так, что у юзера изначально просто набор пустых слотов. И он выбирает что запустить в каждом из них. В каком-то ядерную консоль, в каком-то иксы, в каком-то wayland,... Которые стартуют сами по себе, а не поверх уже работающего. Вот тогда это чистый старт, а не как «прослойка поверх ядерной консоли».

saahriktu ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.