Мозголомающие средства разработки.
Mar. 9th, 2010 10:43 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
После недельного писания на F# появилась идея, отчего использование дельфи так часто вырывает мозг программистам.
Суть в том, что дельфи это законченный продукт с замкнутым комьюнити. Собственно говоря, для работы на нем ничего кроме самого дельфи и нескольких сторонних компонентов (которые никуда больше и не пригодны) не нужно. Соответственно, у программистов тупо не было стимула выглядывать за пределы своей песочницы. В дельфи было все, необходимое и достаточное, чтобы писать всякого рода опердень в то время. Причем в силу простоты - это еще и стимулировало индивидуальное вкалывание, нахрен нужна какая-то командная разработка, какие-то процессы и прочие атрибуты, если один человек мог спокойно сделать достаточно немалую софтину.
Сишные и С++ либы, опять же, не подключались без извращений типа "завернуть в dll с plain C интерфейсом".
Сколько я не смотрю на другие средства разработки - там обязательно есть какая-то шиза на тему того, что невозможно пользоваться, не вкурив штук пять смежных областей. Тот же дотнет - это просто страшная сборная солянка из XML, веба, рефлекшена с кодогенерацией, хитрожопого ООП, причем некоторые вещами оттуда до сих пор проще переписать чем использовать готовые.
Послушаешь
zabivator и прочих про ocaml - это просто гамон, какие-то сишные компиляторы, какие-то либы, портирование между виндами и линуксами и прочий мрак.
Жаба энтепрайзная тоже страх какой-то, судя по количеству фреймворков, методик взаимодействия с внешним миром и прочего.
Т.е. все другие платформы ориентированы или на работу в команде с разделением труда или на знание множества смежных шизов, что в любом случае не дает окопаться в песочнице и 20 лет самостоятельно пилить одну и ту же опердень.
Суть в том, что дельфи это законченный продукт с замкнутым комьюнити. Собственно говоря, для работы на нем ничего кроме самого дельфи и нескольких сторонних компонентов (которые никуда больше и не пригодны) не нужно. Соответственно, у программистов тупо не было стимула выглядывать за пределы своей песочницы. В дельфи было все, необходимое и достаточное, чтобы писать всякого рода опердень в то время. Причем в силу простоты - это еще и стимулировало индивидуальное вкалывание, нахрен нужна какая-то командная разработка, какие-то процессы и прочие атрибуты, если один человек мог спокойно сделать достаточно немалую софтину.
Сишные и С++ либы, опять же, не подключались без извращений типа "завернуть в dll с plain C интерфейсом".
Сколько я не смотрю на другие средства разработки - там обязательно есть какая-то шиза на тему того, что невозможно пользоваться, не вкурив штук пять смежных областей. Тот же дотнет - это просто страшная сборная солянка из XML, веба, рефлекшена с кодогенерацией, хитрожопого ООП, причем некоторые вещами оттуда до сих пор проще переписать чем использовать готовые.
Послушаешь
![[livejournal.com profile]](https://www.dreamwidth.org/img/external/lj-userinfo.gif)
Жаба энтепрайзная тоже страх какой-то, судя по количеству фреймворков, методик взаимодействия с внешним миром и прочего.
Т.е. все другие платформы ориентированы или на работу в команде с разделением труда или на знание множества смежных шизов, что в любом случае не дает окопаться в песочнице и 20 лет самостоятельно пилить одну и ту же опердень.
no subject
Date: 2010-03-10 02:26 pm (UTC)1) windows многопользовательская система;
2) для установки стоит использовать тот пакетный менеджер (msi) что есть.
Да, он плохой, кривой и не удобный. Его надо чем-то собирать, zip сделать проще... Но на распаковку и запуск из zip может просто не хватить прав.
А может ваша программа пытается ещё писать дальше, чем есть у пользователя права?
no subject
Date: 2010-03-10 02:33 pm (UTC)А это уже к инсталятору никакого отношения не имеет. Программа сама в себе решает, где ей хранить данные. По - нормальному в многопользовательской среде - велкам в папку пользователя, как обычно.
no subject
Date: 2010-03-10 02:36 pm (UTC)"Многопользовательскость" в ней была не отродясь, а пришита поверх того, что есть. Кое-как. Так что в гробу я видал на ней все многопользовательские заморочки.
Адекватное поведение виндозной программы для меня - жить в своем каталоге и не соваться наружу. Portable-версии - наше всё.
no subject
Date: 2010-03-10 02:43 pm (UTC)даже в 98й винде была многопользовательскость, свои папки и т.п. Но иначе, тупиковая ветвь.
Так что лет 15 уже как.
no subject
Date: 2010-03-10 03:05 pm (UTC)И отклонения от этой схемы больно бьют. Появляется второй аккаунт - пользователь грузится и недоумевает: "а где мои программы?". Или даже если программы есть - у них сбиваются настройки. Желающие могут дрочить реестр и переносить данные из одной ветки в другую, копировать домашние каталоги и т.п., рискуя привести систему в неработоспособное состояние. Или настраивать всё по два раза.
Т.е. со стороны системы поддержка многопользовательского режима есть, а со стороны жизни - уже нету. Поздно сделали.
no subject
Date: 2010-03-10 03:08 pm (UTC)no subject
Date: 2010-03-10 03:13 pm (UTC)Проги, права управляются через доменные политики, вменяемые проги ставятся, спрашивая "кому ставить - всем или мне", работают совместно культурно, итд.
А, еще ж есть терминальные сервера, там вообще ад и ханука в этом плане.
no subject
Date: 2010-03-10 03:45 pm (UTC)> Или даже если программы есть - у них сбиваются настройки.
Интересно, а как настройки одного пользователя появляются у другого в линуксе -- видимо, телепатически переносятся.
no subject
Date: 2010-03-10 11:04 pm (UTC)no subject
Date: 2010-03-11 12:20 pm (UTC)Понимаете, копировать -- РИСКУЯ!!! РИСКУЯ!!!
no subject
Date: 2010-03-11 07:37 am (UTC)no subject
Date: 2010-03-11 12:26 pm (UTC)* в хоме
* в самой программе
* в оконном менеджере
* в иск сервере
и наследовались, позваоляя использованием шаблонов для имен классов.
Насчёт реестра Ваши беспредметные философские рассуждения любопытны, но не убедительны. Конкретно где трудность? Что, использовать реестр для настроек винда как-то прям вынуждает, файлы запрещает?
Если нет, то в чём разница между экспортом куска реестра с настройками и копированием файла настроек?
no subject
Date: 2010-03-11 12:45 pm (UTC)При этом, если вы не в курсе, у реестра есть три основных ветки. И как минимум настройки проги есть в HKLM и/или HKCU - тогда достаточно их найти. А как максимум - в HKCR, и вот тогда начинается зоопарк со взбесившимися червями, ибо guid'ы одной проги, естественно, никто группировать не будет.
Насчёт линукса я могу заблуждаться в силу недостаточного знакомства. Но насчёт винды - по граблям набегался. Наиболее адекватны Portable-версии.
no subject
Date: 2010-04-25 10:50 pm (UTC)4. HKEY_CURRENT_CONFIG
> А как максимум - в HKCR
HKCR это подветка HKLM
HKEY_LOCAL_MACHINE\SOFTWARE\Classes
> Но насчёт винды - по граблям набегался.
А у меня наоборот, никаких проблем с переносом настроек не было.
Подход реестра и кучи конфиг файлов технически абсолютно идентичны. Есть и юникс проги, которые хранят настройки... см выше -- в 5 местах; в реестре максимум в 2. Если программа хранит настройки глобально -- значит она так написана, и проблема с переносом настроек решается 1:1 как с файлами.
no subject
Date: 2010-03-10 02:40 pm (UTC)no subject
Date: 2010-03-10 02:47 pm (UTC)На запуск msi прав не хватает регулярно. На запись в Program Files - тоже.
А вот на то, чтобы распаковать zip в своей рабочей папке и запустить его - в большинстве случаев права есть. Поэтому клиентам дается и то и другое.
При этом прога работает с Application data текущего пользователя и вообще от системы зависит по минимуму. Хотя админы-идиоты и это умудряются сломать - система выдает C:\WINDOWS\TEMP\ в качестве временной папки, а права записи туда нет.
Если же речь идет о средствах разработки, то очевидно проще распаковать архив и запустить программу, чем ставить msi. У меня вообще весь такой софт ставится исключительно копированием, что сокращает время переселения на новые компы и винды очень сильно.
no subject
Date: 2010-03-10 03:11 pm (UTC)no subject
Date: 2010-03-10 03:16 pm (UTC)Для некоторых особо рьяных средств есть эталонные ключи реестра.
no subject
Date: 2010-03-10 03:15 pm (UTC)А нормальный софт у меня живет в \WinApp\Имя_проги, при переезде с машины на машину - просто копируется (со всеми настройками, при переустановке системы продолжает спокойно работать. Зачем для такого msi?
no subject
Date: 2010-03-10 03:20 pm (UTC)Я положил ~\Documents в svn, и там стало удобно их хранить. Правда по всему говну, которое туда бросают разные приложения, пришлось пройти и поставить атрибут hidden, чтобы глазя не мусолило.
no subject
Date: 2010-03-10 03:26 pm (UTC)А ~ в винде, увы, не предусмотрено. Так что в том же Far мне приходится идти вдаль по каталогам, чтобы докопаться до своих файлов (почему я просто не сделяю батник - непонятно, да ;-)). И наоборот: чтобы сохранить файл из какой-то проги или открыть файл - зачастую приходится долго выбираться из этих самых My Documents (до хрена прог, которые не запоминают, где я в последний раз сохранял файл, и тупо лезут в домашнюю папку).
no subject
Date: 2010-03-10 03:31 pm (UTC)А я от этой привычки отказался. Если уж понадобилось лезть в такие дебри, то запускаю фар. А так пользую windows explorer, частоиспользуемые пути занёс в favorites.
> Так что в том же Far мне приходится идти вдаль по каталогам, чтобы докопаться до своих файлов (почему я просто не сделяю батник - непонятно, да ;-)).
В фаре ж есть букмарки на каталоги.
Create a folder shortcut Ctrl-Shift-0 to Ctrl-Shift-9
Jump to a folder shortcut RightCtrl-0 to RightCtrl-9
no subject
Date: 2010-03-11 08:49 pm (UTC)