Наивный вопрос про Виндуза и регистри

User avatar
deim
Уже с Приветом
Posts: 1621
Joined: 29 May 2001 09:01
Location: Vancouver, BC

Наивный вопрос про Виндуза и регистри

Post by deim »

Никогда не мог понять - почему и зачем в виндузах придумано и сделано централизованное хранилище сеттингов всех установленных программ/систем - регистри?! Какой в этом философский смысл?!

Неужели не проще хранить все сеттинги программы - локально, в пространстве этой программы? В OS/2 например все засовывали в расширенные атрибуты файловой системы. Милое дело - установленная программа легко копировалась/переносилась/бэкапилась.

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

Зачем?!

P.S. Эх, все-таки ИБМ - сволочи! Такую классную операционку (OS/2) загубили :-(
VBez
Уже с Приветом
Posts: 491
Joined: 23 Feb 2004 11:25

Re: Наивный вопрос про Виндуза и регистри

Post by VBez »

Ну вот придумали .Net.
И теперь настройки хранятся вместе с программой.
User avatar
deim
Уже с Приветом
Posts: 1621
Joined: 29 May 2001 09:01
Location: Vancouver, BC

Re: Наивный вопрос про Виндуза и регистри

Post by deim »

VBez wrote:Ну вот придумали .Net.
И теперь настройки хранятся вместе с программой.


Кстати, а физически - где хранятся?

И чем плохи ЕА? В ntfs они вроде как тоже есть, посколько ntfs - родной брат hpfs. Это-ж вроде как один из последних примеров совместной разработки ИБМ и МС?! :-) (Как выяснилось - ЕА были в ntfs до вин2000. С выходом вин2к ЕА в ntfs исчезли.)

То есть - что такого придумано в .НЕТ, что позволяет локально хранить сеттинги, чего нет без .НЕТ? :-) Неужто ради реализации пары методов типа LocalProperties.put(String key, Object value) и LocalProperties.get(String key) нужно было целый .НЕТ наворачивать?! :-О
Last edited by deim on 01 Mar 2004 16:13, edited 1 time in total.
VBez
Уже с Приветом
Posts: 491
Joined: 23 Feb 2004 11:25

Re: Наивный вопрос про Виндуза и регистри

Post by VBez »

Ты хочешь поговорить про .Net :-)
Давай поговорим. У тебя белые - нападай первый :-)

А человек просто спросил - почему все настройки лежат в одном месте. Я и ответил - что теперь(с появлением НЕТа) настройки принято хранить вместе спрограммой. По крайней мере я так это понял.
Конечно все это делается и без НЕТа.
Но раньше принято было хранить настройки либо в реестре, либо в ini файлах.
С нетом пришел XML. И стало ГОРАЗДО легче сохранять настройки локально.
Last edited by VBez on 01 Mar 2004 16:14, edited 1 time in total.
Palych
Уже с Приветом
Posts: 13682
Joined: 16 Jan 2001 10:01

Post by Palych »

V Mac OS X esche kruche. 8)
Tam Application copiruetsya kak obychnyj file.
User avatar
Vasik
Уже с Приветом
Posts: 2191
Joined: 04 Nov 2001 10:01
Location: Новый cвет

Re: Наивный вопрос про Виндуза и регистри

Post by Vasik »

deim wrote:Никогда не мог понять - почему и зачем в виндузах придумано и сделано централизованное хранилище сеттингов всех установленных программ/систем - регистри?! Какой в этом философский смысл?!


Да, это часто неудобно, но философский смысл в том, насколько мне кажется (товарищи из MS, надеюсь, меня поправят), что программа может "запрятать" в реестре свои ключики, которые не удаляются при обычной деинсталляции продукта и если вы решите, например, переинсталлировать пробную версию, что бы продлить срок её использования, то большинство определит что до этого вы её уже использовали и ваше время истекло.
Собственно MS только создала для этого основу, а уж программистам самим решать - использовать реестр или нет. Есть много программ которые его не используют и хранят настройки в своих файлах, так что обижаться больше нужно на производителей стороннего софта, которые используют реестр.
User avatar
deim
Уже с Приветом
Posts: 1621
Joined: 29 May 2001 09:01
Location: Vancouver, BC

Re: Наивный вопрос про Виндуза и регистри

Post by deim »

VBez wrote:Ты хочешь поговорить про .Net :-)
Давай поговорим. У тебя белые - нападай первый :-)

А человек просто спросил - почему все настройки лежат в одном месте. Я и ответил - что теперь(с появлением НЕТа) настройки принято хранить вместе спрограммой. По крайней мере я так это понял.
Конечно все это делается и без НЕТа.
Но раньше принято было хранить настройки либо в реестре, либо в ini файлах.
С нетом пришел XML. И стало ГОРАЗДО легче сохранять настройки локально.


Тот человек - это я и есть :-) Я честно понятия не имею - что и как сделано в .НЕТ И я сразу извиняюсь, если мои слова будут казаться язвительными - ничего личного :-)
Ок, понятно, то есть в .НЕТ все на хмл, и через это стало проще сохранять локально. А что, до того, как изобрели хмл - совсем трудно было что-то хранить? Понятие проперти-файла вроде как совсем простое (боюсь произносить слово hashtable, но очень хочется :), неужели без хмл это так трудно?! И снова про старинную ос/2 - тогда про хмл никто ничего не слышал, а все хранили локально - герои невидимого фронта? :-)
User avatar
deim
Уже с Приветом
Posts: 1621
Joined: 29 May 2001 09:01
Location: Vancouver, BC

Re: Наивный вопрос про Виндуза и регистри

Post by deim »

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


Ага, понятно, спасибо. То есть вот ради этой идиотской возможности - все проблемы?!

Vasik wrote:Собственно MS только создала для этого основу, а уж программистам самим решать - использовать реестр или нет.


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

Vasik wrote:Есть много программ которые его не используют и хранят настройки в своих файлах, так что обижаться больше нужно на производителей стороннего софта, которые используют реестр.


Навскидку могу назвать только eMule. Вот удивительно - почему при наличии выбора - писать локально или глобально в реестр - большинство выбирают запись в реестр?! Там что, медом намазано, или локально писать сильно неудобно?
VBez
Уже с Приветом
Posts: 491
Joined: 23 Feb 2004 11:25

Re: Наивный вопрос про Виндуза и регистри

Post by VBez »

Тот человек - это я и есть :-) [.quote]

Сорри. Недосмотрел.

Ок, понятно, то есть в .НЕТ все на хмл, и через это стало проще сохранять локально. А что, до того, как изобрели хмл - совсем трудно было что-то хранить? Понятие проперти-файла вроде как совсем простое (боюсь произносить слово hashtable, но очень хочется :), неужели без хмл это так трудно?!


Да наверное совсем не трудно.
Но ГОРАЗДО легче работать с XML(стандарт как-никак), чем самому придумывать формат файла с настройками.
А писать/читать ini файлы говорят труднее чем читать/писать xml(не знаю - не видел).

И снова про старинную ос/2 - тогда про хмл никто ничего не слышал, а все хранили локально - герои невидимого фронта? :-)


Тоже никогда не видел.
Но сегодня приложения не те.
Да и программеры тоже. Сегодня подавай людям фреймворки высокоуровневые. Чтобы все было полегче, побыстрее, покрасивше,
VBez
Уже с Приветом
Posts: 491
Joined: 23 Feb 2004 11:25

Re: Наивный вопрос про Виндуза и регистри

Post by VBez »

Сорри за левое сообщение.
User avatar
deim
Уже с Приветом
Posts: 1621
Joined: 29 May 2001 09:01
Location: Vancouver, BC

Re: Наивный вопрос про Виндуза и регистри

Post by deim »

VBez wrote:Но ГОРАЗДО легче работать с XML(стандарт как-никак), чем самому придумывать формат файла с настройками.
А писать/читать ini файлы говорят труднее чем читать/писать xml(не знаю - не видел).


:-) Я все-таки позволю себе не согласиться с этим :-) Все-же применение хмл требует как минимум зацепить какой-нть парсер, НАМНОГО более навороченный чем примитивное чтение пар ключ=значение из проперти-файла :-)

VBez wrote:Но сегодня приложения не те.
Да и программеры тоже. Сегодня подавай людям фреймворки высокоуровневые. Чтобы все было полегче, побыстрее, покрасивше,


Да что-же такого крутого в сегодняшних программах, что они разучились по-человечески работать?!

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

P.S. А про то, что народ писать разучился - наверное правда. Поставил вчера мелкую программку - апдейт айпи адреса на ДинДНС. Все хорошо, работает, ну, как обычно, что-то в регистри записала (зачем?!), но не это интересно. Поражает другое - объем 4.5 мегабайта!!! Программа из одного маленького диалога с двумя закладками, из которых одна - About!!!
Выкачал другую почти аналогичную тулзу - оказалась на яве и с исходником, без гуя. Исходник - 150 строк включая множество комментариев. Скомпилированная - 3кб. Почему гуевая виндузовая 4.5мегабайта?! :-О
VBez
Уже с Приветом
Posts: 491
Joined: 23 Feb 2004 11:25

Re: Наивный вопрос про Виндуза и регистри

Post by VBez »

:-) Я все-таки позволю себе не согласиться с этим :-) Все-же применение хмл требует как минимум зацепить какой-нть парсер, НАМНОГО более навороченный чем примитивное чтение пар ключ=значение из проперти-файла :-)


Для чтения XML все уже написано.
Чтение/запись xml на C# - это около 10-20 строк кода.
А если писать на C++ используя COM - получится гораздо больше и страшнее.

Да что-же такого крутого в сегодняшних программах, что они разучились по-человечески работать?!


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

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


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

Поставил вчера мелкую программку - апдейт айпи адреса на ДинДНС - объем 4.5 мегабайта!!!


На дельфях наверное написана.
User avatar
deim
Уже с Приветом
Posts: 1621
Joined: 29 May 2001 09:01
Location: Vancouver, BC

Re: Наивный вопрос про Виндуза и регистри

Post by deim »

VBez wrote:
:-) Я все-таки позволю себе не согласиться с этим :-) Все-же применение хмл требует как минимум зацепить какой-нть парсер, НАМНОГО более навороченный чем примитивное чтение пар ключ=значение из проперти-файла :-)


Для чтения XML все уже написано.
Чтение/запись xml на C# - это около 10-20 строк кода.
А если писать на C++ используя COM - получится гораздо больше и страшнее.


Да зачем-же в рукопашную-то?! Неужто в виндузах нет АПИ для работы с ресурсами/пропертями?! Неужели только хмл, и больше ничего? Остальное - только врукопашную?! Я извиняюсь, я под виндуза ничего не писал последние лет 7-8. Пишу на яве, и почему-то никаких проблем не вызывает пользоваться и хмл когда нужно, и ресурсы подгружать, и проперти файлы писать/читать когда хмл слишком велик для мелкой задачи. Неужели простое начилие АПИ под хмл заставляет всех "из пушек по воробьям" лупить?! :-)

VBez wrote:
Да что-же такого крутого в сегодняшних программах, что они разучились по-человечески работать?!


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


Что-то мне это напоминает... Мартышка и очки?! Типа - программер/архитектор изучил новый АПИ, и начинает новую игрушку пропихивать везде - где нужно и где не нужно? :-)

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


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


:-О Я извиняюсь, конечно, не совсем корректно приводить пример из явы в обсуждении аспектов программирования под виндуза, но чисто как пример - можно? :-) The Properties class represents a persistent set of properties. The Properties can be saved to a stream or loaded from a stream... Этому АПИ уже 100 лет в обед, посколько доступно с v1.0. Неужто в виндузах что-то аналогичное появилось только с рождением .НЕТ?! Скажите мне, что я не прав, пожалуйста! :-)

VBez wrote:
Поставил вчера мелкую программку - апдейт айпи адреса на ДинДНС - объем 4.5 мегабайта!!!


На дельфях наверное написана.


Так понимаешь в чем загадка - я ведь вчера этих динДНС клиентов штук 6 накачал - и все примерно одинаковые, и по функциональности и по размеру :-) Ну, все, кроме явовской версии :-) Теперь что - модно под виндуза на дельфи писать?! :-) Куда делся софт размером 5-10-15кб и почему даже микро-тулзы измеряются мегабайтами если не их десятками!? :-О
То есть получается, что ява в нынешний момент развития научно-технического прогресса является эталоном компактного софта?! :-О Во, дожил, неужто я уже такой старый стал?! :-)
Seryi
Ник закрыт как дубликат.
Posts: 6238
Joined: 14 Mar 2001 10:01
Location: .MD -> .SI -> .SE -> .AR.US -> .MD

Post by Seryi »

У реестра есть одно большое преимущество и перед ИНИ файлами и перед ХМЛ. В реестре легко можно хранить настройки для индивидуальных юзеров, так что настройки разных юзеров на одном компьютере не будут пересекаться.
В ХМЛ конечно тоже можно, но это уже становится проблематичнее.
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

Почему то никто не упомянул что registry вроде защищена write-ahead journaling на случай краха. Правда в реальности вычистить программу при крахе инсталляции, если эта программа использует только .INI оказывается на два порядка проще :)
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
deim
Уже с Приветом
Posts: 1621
Joined: 29 May 2001 09:01
Location: Vancouver, BC

Post by deim »

Dmitry67 wrote:Почему то никто не упомянул что registry вроде защищена write-ahead journaling на случай краха. Правда в реальности вычистить программу при крахе инсталляции, если эта программа использует только .INI оказывается на два порядка проще :)


Вот-вот! Зачем пытаться решить проблему (защита регистри), если саму задачу можно элиминировать на корню. Нет регистри - нет риска его сломать :-)
Palych
Уже с Приветом
Posts: 13682
Joined: 16 Jan 2001 10:01

Post by Palych »

Seryi wrote:У реестра есть одно большое преимущество и перед ИНИ файлами и перед ХМЛ. В реестре легко можно хранить настройки для индивидуальных юзеров, так что настройки разных юзеров на одном компьютере не будут пересекаться.
В ХМЛ конечно тоже можно, но это уже становится проблематичнее.

Eta problemma suschestvuet tol'ko v DOS i Windows 3.xx.
User avatar
lx_uk
Уже с Приветом
Posts: 376
Joined: 04 Feb 2002 10:01

Post by lx_uk »

Seryi wrote:У реестра есть одно большое преимущество и перед ИНИ файлами и перед ХМЛ. В реестре легко можно хранить настройки для индивидуальных юзеров, так что настройки разных юзеров на одном компьютере не будут пересекаться.
В ХМЛ конечно тоже можно, но это уже становится проблематичнее.

Для этого есть стандартное решение. Пользовательские настройки кладутся в отдельный файл в home directory этого пользователя (Documents and Settins/<user name>).
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

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

Однако мне кажется что замусоривание DLL и ActiveX является большей проблемой чем замусоривание registry (пассивное)
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
VBez
Уже с Приветом
Posts: 491
Joined: 23 Feb 2004 11:25

Re: Наивный вопрос про Виндуза и регистри

Post by VBez »

Да зачем-же в рукопашную-то?! Неужто в виндузах нет АПИ для работы с ресурсами/пропертями?!


Не знаю - не видел. Скорее всего есть.
А под НЕТ буквально в каждой книге есть примеры.

Типа - программер/архитектор изучил новый АПИ, и начинает новую игрушку пропихивать везде - где нужно и где не нужно?


Не игрушку. А технологию, которая облегчает жизнь.
Я думаю, что про джаву точно также говорили лет 10 назад :-)


Неужто в виндузах что-то аналогичное появилось только с рождением .НЕТ?!


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

Теперь что - модно под виндуза на дельфи писать?! Куда делся софт размером 5-10-15кб и почему даже микро-тулзы измеряются мегабайтами если не их десятками!?


Все зависит от радиуса кривизны рук конкретного программера.
Hamster
Уже с Приветом
Posts: 11475
Joined: 20 Nov 2000 10:01
Location: Escondido, CA

Post by Hamster »

lx_uk wrote:Для этого есть стандартное решение. Пользовательские настройки кладутся в отдельный файл в home directory этого пользователя (Documents and Settins/<user name>).


Правильно. Следующий шаг - систематизировать каталог с настройками, чтобы вместо беспорядочно лежащих 5000 файлов была стройная иерархическая система. Желательно со встроенной поддержкой разных типов параметров, защитой от сбоев, и висящая постоянно в памяти для оптимизации доступа.
Что получается? ...
User avatar
lx_uk
Уже с Приветом
Posts: 376
Joined: 04 Feb 2002 10:01

Post by lx_uk »

Hamster wrote:
lx_uk wrote:Для этого есть стандартное решение. Пользовательские настройки кладутся в отдельный файл в home directory этого пользователя (Documents and Settins/<user name>).


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

Вы еще забыли security - ini файлы не всегда лежат на ntfs разделе. Сейчас это скорее исключение, но реестр создавался лет 10 назад.

Мне вот интересно другое, как с сохранением всех преимуществ реестра достичь еще одного - легкости редактирования настроек с помощью привычного редактора? Это у ini файлов не отнять. Хотя допускаю, что далеко не все согласятся, что это преимеущество.

PS. Еще одно косвенное преимущество - комментарии. В текстовом файле комментарии читать легко и удобно. В реестре их просто нет, хотя и возможо их реализовать и даже сделать удобный просмотр...
User avatar
Strannik223
Уже с Приветом
Posts: 569
Joined: 14 Dec 2003 04:06
Location: Львов->Киев->Торонто

Post by Strannik223 »

Hamster wrote:
lx_uk wrote:Для этого есть стандартное решение. Пользовательские настройки кладутся в отдельный файл в home directory этого пользователя (Documents and Settins/<user name>).


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


Поддерживаю,
Если добавить еще разделение катологов на системные (те что установлены ОС) и те куда юзера инсталируют софт, то получаем Юникс :)
Никакой разрухи нет. (с) Проф. Преображенский.
User avatar
Strannik223
Уже с Приветом
Posts: 569
Joined: 14 Dec 2003 04:06
Location: Львов->Киев->Торонто

Post by Strannik223 »

Таких "а почему" можно задавать много и все они называються "архитектурная ошибка"
Меня просто до бешенства доводит невозможность скопировать цветовые настройки в VisualStudio. Лезешь в регистри, а там Guid-ы в цветах

Чего еще никогда не мог понять так это какого черта было делать window handler in TLS(thread local storage), то есть имея хандлер можно им оперировать только если ты в том же потоке в котором окно создано. Я знаю как это обходить, вопрос в том какого черта это надо было!!!
Никакой разрухи нет. (с) Проф. Преображенский.
Hamster
Уже с Приветом
Posts: 11475
Joined: 20 Nov 2000 10:01
Location: Escondido, CA

Post by Hamster »

Strannik223 wrote:Таких "а почему" можно задавать много и все они называються "архитектурная ошибка"
Меня просто до бешенства доводит невозможность скопировать цветовые настройки в VisualStudio. Лезешь в регистри, а там Guid-ы в цветах

Можно просто экспортировать ключ "Format". И где там Guid-ы?

Return to “Вопросы и новости IT”