Где наша свобода?
Jun. 19th, 2008 11:27 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Есть такой анекдот:
Диалог в бюрократическом учреждении:
- Имею ли я право?
- Конечно имеете!
- Так могу ли я?
- Нет, не можете!
Положение дел в области Free Software чем дальше, тем лучше описывается этим анекдотом.
Имею ли я право исправлять глюки и дописывать нужные мне фичи в Mozillу, OpenOffice, ядро Linux, Gimp etc - да сколько угодно. Лицензия позволяет.
Могу ли я? Увы, трудоемкость, необходимая для вникания в большой проект на несколько миллионов строк - соврешенно prohibitive. Даже при наличии квалификации. А протолкнуть свои изменения в upstream - еще сложнее.
Увы, свободу приспосабливать компьютер под наши потребности мы практически потеряли. Большая часть OpenSource продуктов используется так же, как и проприетарные - не как текст, который можно прочитать и адаптировать к своим нуждам, а как черный ящик.
Еще десять лет назад это было не так. Тогдашние OpenSource проекты были достаточно компактны, лучше документированы, и всё необходимое тайное знание содержалось в коде. Было дело в 99-м году я при каждом новом релизе ядра ветки 2.2 внимательно читал патчи чтобы решить - ставить это срочно на боевой сервер или погодить пока.
Сейчас я пожалуй, не пойму в этих патчах почти ничего. большая часть тайного знания необходимого для написания компонент ядра, из кода без больших усилий не извлекается. А отдельных источников этого знания почти и нет. Ну по ядру еще есть. А попробуйте найти вменяемое описание работы с Bluetooth. Содержащее внятные схемы стэка протоколов, описание общей идеологии и того как это раскладывается на API. Не существует такового в природе.
В 80-е годы, когда Столлман начинал проект GNU, взятая за основу модель - утилиты unix общающиеся между собой ыерез пайпы позволяла легко изолировать кусок кода, четко определить что у него на входе, а что на выходе и таким образом легко разобраться в его работе.
Сейчас reusable компоненты как правило делаются в виде динамических библиотек со сложным API. Где-то это реально необходимо, где-то это явный overkill. Особенно если учесть что с первого раза спроектировать хороший API для рещения любой задачи - весьма нетривиально. Поэтому API у многих opensource библиотек плывут. Совершенствуются. Но это приводит к головной боли при поддержке используещих их программ.
Более того, за последние 10 лет в Open Source пришло множество программистов воспитанных на Visual Basic и прочих изделиях Microsoft, где от программиста не предполагается четкого понимания задачи в целом - это понимание - коммерческая тайна Microsoft.
Вот пример в MSDN, делайте по образу и подобию. Воспринимайте эти слова как магическое заклинание, как ритуал.
Но там хотя бы сидят несколько сот человек, которые это дело документируют.
Заметим что микроядро в Hurd было на самом деле нужно не столько по тем техническим соображениям, которые приводил Таннебаум в споре с Линусом, сколько именно из соображений well-defined interfaces, которые позволили бы множеству независимых разработчиков работать над разными подсистемами ядра. Но ни Таннебаум, ни Столлман этого тогда сфонрулировать не могли. Потому что это на самом деле вопрос социальной психологии а не технологии.
Некторые решения, которые уже фактически приняты сообществом как стандарт, иначе как миной замедленного действия под идею свободного софта я назвать не могу. Ну про CUPS уже Раймонд всё написал. Ага, тот самый Раймонд, который выдумал термин Open Source как менее "страшный" чем "Свобода", чем немало способствовал возникновению данного положения. Еще большей миной замедленного действия я считаю D-Bus. Не то, чтобы плоха была самой идеи общесессионной или общесистемной шины сообщения. Но во-первых, реализация - нету стандартного набора утилит для работы с этим из shell. Не отладочних прибабахов вроде dbus-send и dbus-monitor, а полноценных инструментов для работы класса NetCat. Во вторых, документированность. Уже сколько лет в комплекте bluez, который иначе чем через dbus нынче с пинкодами не работает, идет passkey-agent, написанный настолько криво, что при его завершении libdbus ругается на stderr. И никто не соберется исправить.
К сожалению, в 96-97 году, когда начинались проекты KDE и GNOME не нашлось гения, который бы предложил архитектуру GUI-среды, способную развиватья в условиях Free Software, и при этом оставаться простой и понятной. Впрочем, это как раз был переломнымй момент, когда менялись условия Free Software - вместо немногочисленных, но весьма квалифицированных хакеров 80-х, кончавших одни и те же университеты, и понимавших друг друга с полуслова, повалила толпа любителей, осваивавших программирование на персональных компьютерах самостоятельно.
Как теперь из получившейся ямы вылезать я не знаю. Выкингуть существующие миллионы строк кода просто так не получится. Хотя место большей части этого кода - именно на помойке.
Диалог в бюрократическом учреждении:
- Имею ли я право?
- Конечно имеете!
- Так могу ли я?
- Нет, не можете!
Положение дел в области Free Software чем дальше, тем лучше описывается этим анекдотом.
Имею ли я право исправлять глюки и дописывать нужные мне фичи в Mozillу, OpenOffice, ядро Linux, Gimp etc - да сколько угодно. Лицензия позволяет.
Могу ли я? Увы, трудоемкость, необходимая для вникания в большой проект на несколько миллионов строк - соврешенно prohibitive. Даже при наличии квалификации. А протолкнуть свои изменения в upstream - еще сложнее.
Увы, свободу приспосабливать компьютер под наши потребности мы практически потеряли. Большая часть OpenSource продуктов используется так же, как и проприетарные - не как текст, который можно прочитать и адаптировать к своим нуждам, а как черный ящик.
Еще десять лет назад это было не так. Тогдашние OpenSource проекты были достаточно компактны, лучше документированы, и всё необходимое тайное знание содержалось в коде. Было дело в 99-м году я при каждом новом релизе ядра ветки 2.2 внимательно читал патчи чтобы решить - ставить это срочно на боевой сервер или погодить пока.
Сейчас я пожалуй, не пойму в этих патчах почти ничего. большая часть тайного знания необходимого для написания компонент ядра, из кода без больших усилий не извлекается. А отдельных источников этого знания почти и нет. Ну по ядру еще есть. А попробуйте найти вменяемое описание работы с Bluetooth. Содержащее внятные схемы стэка протоколов, описание общей идеологии и того как это раскладывается на API. Не существует такового в природе.
В 80-е годы, когда Столлман начинал проект GNU, взятая за основу модель - утилиты unix общающиеся между собой ыерез пайпы позволяла легко изолировать кусок кода, четко определить что у него на входе, а что на выходе и таким образом легко разобраться в его работе.
Сейчас reusable компоненты как правило делаются в виде динамических библиотек со сложным API. Где-то это реально необходимо, где-то это явный overkill. Особенно если учесть что с первого раза спроектировать хороший API для рещения любой задачи - весьма нетривиально. Поэтому API у многих opensource библиотек плывут. Совершенствуются. Но это приводит к головной боли при поддержке используещих их программ.
Более того, за последние 10 лет в Open Source пришло множество программистов воспитанных на Visual Basic и прочих изделиях Microsoft, где от программиста не предполагается четкого понимания задачи в целом - это понимание - коммерческая тайна Microsoft.
Вот пример в MSDN, делайте по образу и подобию. Воспринимайте эти слова как магическое заклинание, как ритуал.
Но там хотя бы сидят несколько сот человек, которые это дело документируют.
Заметим что микроядро в Hurd было на самом деле нужно не столько по тем техническим соображениям, которые приводил Таннебаум в споре с Линусом, сколько именно из соображений well-defined interfaces, которые позволили бы множеству независимых разработчиков работать над разными подсистемами ядра. Но ни Таннебаум, ни Столлман этого тогда сфонрулировать не могли. Потому что это на самом деле вопрос социальной психологии а не технологии.
Некторые решения, которые уже фактически приняты сообществом как стандарт, иначе как миной замедленного действия под идею свободного софта я назвать не могу. Ну про CUPS уже Раймонд всё написал. Ага, тот самый Раймонд, который выдумал термин Open Source как менее "страшный" чем "Свобода", чем немало способствовал возникновению данного положения. Еще большей миной замедленного действия я считаю D-Bus. Не то, чтобы плоха была самой идеи общесессионной или общесистемной шины сообщения. Но во-первых, реализация - нету стандартного набора утилит для работы с этим из shell. Не отладочних прибабахов вроде dbus-send и dbus-monitor, а полноценных инструментов для работы класса NetCat. Во вторых, документированность. Уже сколько лет в комплекте bluez, который иначе чем через dbus нынче с пинкодами не работает, идет passkey-agent, написанный настолько криво, что при его завершении libdbus ругается на stderr. И никто не соберется исправить.
К сожалению, в 96-97 году, когда начинались проекты KDE и GNOME не нашлось гения, который бы предложил архитектуру GUI-среды, способную развиватья в условиях Free Software, и при этом оставаться простой и понятной. Впрочем, это как раз был переломнымй момент, когда менялись условия Free Software - вместо немногочисленных, но весьма квалифицированных хакеров 80-х, кончавших одни и те же университеты, и понимавших друг друга с полуслова, повалила толпа любителей, осваивавших программирование на персональных компьютерах самостоятельно.
Как теперь из получившейся ямы вылезать я не знаю. Выкингуть существующие миллионы строк кода просто так не получится. Хотя место большей части этого кода - именно на помойке.
no subject
Date: 2008-06-19 12:14 pm (UTC)no subject
Date: 2008-06-19 12:29 pm (UTC)no subject
Date: 2008-06-19 01:06 pm (UTC)no subject
Date: 2008-06-19 01:32 pm (UTC)no subject
Date: 2008-06-19 01:56 pm (UTC)В этом то и фигня... Я для небольшого допила документации не готов изучать чего-либо, и поэтому пользоваться чем-то с веб интерфейсом будет самым идеальным вариантом. А кроме вики я ничего подходящего не виделю...
no subject
Date: 2008-06-19 02:12 pm (UTC)У меня подход ближе к обратному. Интерфейс браузера настолько неудобен, что больше трех фраз в нем написать нереально. Плюс отсутствие TAB-дополнения ссылок, плюс... Читать можно, не вопрос. Багрепорты обрабатывать можно. Документацию писать - нельзя.
org-mode при интерфейсе ввода, вполне сравнимом с виками по сложности в простых случаях и более простом в сложных, дает несколько более богатые возможности. Ну да, нужен emacs.
no subject
Date: 2008-06-19 02:19 pm (UTC)А совместной реализации нету. :-/
no subject
Date: 2008-06-19 02:33 pm (UTC)no subject
Date: 2008-06-19 02:37 pm (UTC)Хинт: викам тоже надо учиться. Даже несмотря на то, что интерфейс для редактирования ублюдочен. Учиться в них надо не интерфейсу редактирования (он, положим, уже выучен), а правилам ввода информации. Чем в этом смысле хуже org-mode, или, как вот рядом советуют, muse?
no subject
Date: 2008-06-19 03:21 pm (UTC)Да... несоменно... Но подкупает то, что первый шаг в сторону обучения делается настлько просто, что коготок завязает совершенно незаметно для птички. А в описанных тобой случаях для начала обучения требуется осознанные усилия...
no subject
Date: 2008-06-19 04:02 pm (UTC)no subject
Date: 2008-06-19 06:10 pm (UTC)чтобы я, в любое время, в любом месте имел удобный для меня инструмент, а? :))
ведь в том и преимущество веб-интерфейса, что он является легким "тонким клиентом" практически на совершенно разных, непересекающихся платформах.
Эмакс такое может?
no subject
Date: 2008-06-19 06:25 pm (UTC)Впрочем, я таскаю с собой системник с аккумулятором и настроенным под меня емаксом. В нагрудном кармане...
no subject
Date: 2008-06-19 06:42 pm (UTC)no subject
Date: 2008-06-19 11:03 pm (UTC)no subject
Date: 2008-06-20 06:29 am (UTC)no subject
Date: 2008-06-20 06:46 am (UTC)не, ну я конечно понимаю... эмакс это редактор всех времен, но лёрнинг курв у него всетаки не нулевой, а очень даже ощутимый.
так что скажем я к нему так пока и не подобрался.
предпочитаю использовать (мне хватает) кое-что попроще. (например -- Notepad++) где есть все что мне нужно именно сейчас, а не после длительного изучения.
так что -- ваш эмакс -- отнюдь не панацея для всех, а только лучшее средство для людей со вполне определенными отдельными потребностями.
no subject
Date: 2008-06-20 07:25 am (UTC)А дальше уже изучать те возможности, которых в нотепаде и визуалковом редакторе нету. А потом таки найти способ подключить емакс вместо родного редактора в визуалку. Насколько я знаю, он есть, только мне оно не надо...
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:с моей стороны
From:Re: с моей стороны
From:Re: с моей стороны
From:Re: с моей стороны
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:Убедили постороннего
From:Re: Убедили постороннего
From:Re: Убедили постороннего
From:Re: Убедили постороннего
From:no subject
Date: 2009-10-02 10:26 am (UTC)Либо нам нужен нормальный фронтенд, в качестве которого emacs более чем пригоден.
Либо нужен некий 'rich web app'-редактор, причем с хорошей поддержкой работы с клавиатуры. В принципе, если развернуть в профиль тот же vimperator, получим шаг в нужном направлении. Вопрос только в целесообразности данного подхода.
no subject
Date: 2008-06-19 01:30 pm (UTC)no subject
Date: 2008-06-19 02:28 pm (UTC)no subject
Date: 2008-06-19 02:27 pm (UTC)а вот muse, да - это хорошая штука :-)
no subject
Date: 2008-06-19 07:24 pm (UTC)no subject
Date: 2008-06-19 07:43 pm (UTC)Да, правит кто хочет, из веба, с минимумом усилий...
или вики-разметку? Второе, по-моему, бомба замедленного действия (как и BBCODE). Почему нельзя было то же самое сделать на основе html?
Вики разметка -- очень удобна, когда привыкнешь... она делает текст гораздо более удобочитаемым, чем html... За BBCODE не скажу... плотно с ним не работал.
Единственное, чего на мой взгляд не хватает и вики-разметке и BBCODE'у, так это спецификации, которая бы давала некоторое представление о том что стандартно, а что нет. Было бы гораздо проще с переносимостью...
no subject
Date: 2008-06-20 11:06 pm (UTC)Мне, кстати, больше всех нравится wacko. К сожалению, она больше никем не используется.