LINUX.ORG.RU
ФорумTalks

Где наша свобода

 , ,


3

5

Хочу поделиться с вами некоторыми цитатами.

Этот пост был написан 11 лет назад:

Есть такой анекдот:

Диалог в бюрократическом учреждении: - Имею ли я право? - Конечно имеете! - Так могу ли я? - Нет, не можете!

Положение дел в области 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-х, кончавших одни и те же университеты, и понимавших друг друга с полуслова, повалила толпа любителей, осваивавших программирование на персональных компьютерах самостоятельно.

Как теперь из получившейся ямы вылезать я не знаю. Выкингуть существующие миллионы строк кода просто так не получится. Хотя место большей части этого кода - именно на помойке.

* * *

Недавно в рассылке debian-russian@lists.debian.org я увидел дискуссию на эту же тему (с участим того же автора). Прочитать можно начиная примерно с этого письма и по ссылкам далее, а здесь я зацитирую отдельные части.


> Потому что есть компания людей, которая считает, что Debian is not
> about choice. И это они как-то открытым текстом в debian-devel
> декларировали.

Скажите, а мне одному кажется, что здесь что-то не так?

Здесь все не так. И война за свободу ПО, которую начал Столлман в середине 80-х - проиграна.

Вот, например, идеологии Linux это не противоречит?

Linux это ядро. Его идеологии совершенно пофиг как в юзерспейсе конфигурируются интерфейсы.

Вот идеологии GNU-системы, описанной Столлманом в статье Opening The Software toolbox оно противоречит, и еще как.

Но я же говорю - битва за свободу ПО проиграна. Замена Free Software на Open Source, которая казалась в конце 90-х замечательным тактическим ходом, позволяющим привлечь на сторону свободы ресурсы копораций, оказалась троянским конем. Она дала возмодность примазаться де Иказам и Поттерингам и постепенно захватить всю экосистему.

* * *

Если ты не можешь написать софт, который компилируется любым GCC начиная с 4.6 и конччая 9.1, то ты не умеешь программировать. Если ты скачал откуда-то такой софт, сотри немедленно. Потому что его автор не умеет программировать, и отсутствие поддержки компилятора имеющейся у тебя версии, скорее всего не единственная и не главная его проблема.

* * *

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

Собственно нарушается свобода N1.

The freedom to study how the program works, and change it so it does your computing as you wish.

Более того, формально opensource продукты, такие как мозилла тоже в общем-то нарушают свободу N1. Потому что дизайн там такой запутанный что на выяснение того как там что устроено и «change it so it does computing as you wish» уйдут годы. А за эти годы оно будет три раза переделано. Поэтому если ты не имеешь возможности тратить на работу над конкретным продуктом значительную часть своего времени, ты не сможешь «change it so it does your computing as you wish.»

[...]

А с тех пор как Мозилла стала подписывать расширения ключом, сертификат которого встроен в браузер, там все стало очень плохо со свободой N3. [...] Когда на выполнение какого-то действия требуется разрешительная виза от чиновника - это означает что свободы выполнять это действие нет.

* * *

Вам Столман не объяснил, в чём разница между свободным и бесплатным?

Мне-то как раз объяснил. Это вы тут пытаетесь нагло врать и утверждать что несовободное свободно.

Свобода - это когда я (квалифицированный програмист, обремененный семьей) могу в свободное время от своих других дел, заодно разобраться и с этим. У меня на это хватит времени и сил. Поэтому Столлман существенно важной частью концепции Свободного ПО всегда полагал Toolbox Philosophy, которая сводит время на разбирательство к приемлемому.

Поэтому монолитные продукты, такие как Firefox, systemd, libreoffice не могут считаться свободным ПО, по какой бы они лицензии не распространялись.

А думать, что «свобода» это когда можно без подготовки и образования
сесть и сходу поправить что-то в коде гигантского проекта, вроде

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

Поэтому об отсутствии подготовки и образования речь не идет.

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

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

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

Deleted

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

Да, этому была причина. Во-первых, в прошивке нет защищенного режима

Опять же, твои догадки. Во второй половине нулевых OS’и для мобильных телефонов хоть и были огороженные, но уже имели все зайчатки того, чем является обычная операционная система со всякими Ring’ами и прочим. Тот же S40. Да и ARM’ы отродясь были 32-битные с 16-битным Thumb’ом, по-крайней мере в 2000-ом уже были.

Может у нас тогда и машина с DOS не будет являться персональным компьютером?

Не передёргивай. Если бы DOS-машина имела внутри себя JVM и программист был бы строго ограничен только тем, что умеет JVM, то тогда действительно такую штуку сложно было бы назвать ПК в современном понимании. Является ли Сюбор – ПК?

Ну, у меня более мягкое определение «нишевый». Это скорее значит «вечно второй».

Ну то есть оно некорректное. И ещё ты забыл, что: https://fortune.com/global500/2019/search/

То есть продажи меньшего числа iPhone’ов создают куда как большую маржу, чем продажи большего числа Samsung’ов. То бишь по этой таблице нишевым будет Samsung в твоём определении?

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

Да, NeXTSTEP был идеальной платформой для разработки GUI до тех пор, пока на сцену не вышел Windows.

Или пока не загнулась NeXTSTEP. Да, Кармак видя такой расклад мигрировал на Windows NT 3.5, и Quake II он писал уже именно там.

Не истинной прозрачности, а универсальной, всеобъемлющей. Инструменты администрирования функционируют нынче через специальные протоколы (SSH, LDAP, Docker, etc) - там, где это нужно, а не во всех приложениях системы.

А тогда и не было никакой универсальной и всеобъемлющей прозрачности, как и сейчас. У NeWS было своё, у X11 Implementations – своё, у NeXTSTEP возможно что-то своё. Каждый точно так же наделал кучу протоколов там, где ему это было нужно.

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

Во второй половине нулевых OS’и для мобильных телефонов хоть и были огороженные, но уже имели все зайчатки того, чем является обычная операционная система со всякими Ring’ами и прочим.

Ну вот у меня в телефоне процессор поддерживает MMU и защищенный режим, но прошивка не поддерживает его. И как после этого называть устройство?

Если бы DOS-машина имела внутри себя JVM и программист был бы строго ограничен только тем, что умеет JVM, то тогда действительно такую штуку сложно было бы назвать ПК в современном понимании.

DOS функционировала на единственной архитектуре процессора. А как, например, классифицировать процессоры с Jazelle? Они же исполняют код JVM. Кака разница, ограничен ли бы Jazelle или 16-битным x86?

То есть продажи меньшего числа iPhone’ов создают куда как большую маржу, чем продажи большего числа Samsung’ов. То бишь по этой таблице нишевым будет Samsung в твоём определении?

Я в явном виде описал, что Apple использует позицию второго (по числу устройств) именно для позиционирования в качестве «продукция для избранных». Да, ему удается генернировать столько же дохода, сколько и более массовый Samsung.

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

У NeWS было своё, у X11 Implementations – своё, у NeXTSTEP возможно что-то своё. Каждый точно так же наделал кучу протоколов там, где ему это было нужно.

NeWS предполагало, что каждое GUI будет поддерживать его, делясь на серверную и клиентскую часть. Ровно как и весь GUI софт для NeXTSTEP поддерживал DPS. Это и есть та самая всеобъемлющесть, которую я имел в виду. Выяснилось, что делать весь софт на NeWS сложно - значительно сложнее, чем для иксов или DPS.

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

И как после этого называть устройство?

Ты под своё устройство можешь написать какой-нибудь клиент твиттера или порт Doom’а, не используя J2ME, а используя лишь официальное SDK от производителя? Если да, то твоё устройство – смартфон.

Наличие SDK не под J2ME кстати ещё одна отличительная особенность смартфонов.

А как, например, классифицировать процессоры с Jazelle? Они же исполняют код JVM.

И у меня даже было такое устройство: https://exlmoto.ru/motorola-zine-zn5-full-review/

И это был телефон (официально для разработки давался только J2ME, никакой нативщины), который благодаря хакерам и энтузиастам стал фактически смартфоном.

использует позицию второго (по числу устройств) именно для позиционирования в качестве «продукция для избранных»

Ты не находишь, что твоё утверждение «продукция для избранных» (вторая по численности), является странным? iPhone в развитых странах это ширпотреб. Нету там никакой избранности. Избранность ему «добавляют» понты, которые прикрепляют к этому устройству жители твоей и моей стран. Но перекладывать со здоровой головы на больную не стоит.

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

Ты под своё устройство можешь написать какой-нибудь клиент твиттера или порт Doom’а, не используя J2ME, а используя лишь официальное SDK от производителя? Если да, то твоё устройство – смартфон.

То есть, критерием ялвяется наличие SDK? И не играет никакой роли тот факт, что Java таки является основной платформой для андроида?

Наличие SDK не под J2ME кстати ещё одна отличительная особенность смартфонов

Особенность, или определеяющий критерий?

И это был телефон (официально для разработки давался только J2ME, никакой нативщины), который благодаря хакерам и энтузиастам стал фактически смартфоном.

Да, выпустили SDK от дяди Вани.

iPhone в развитых странах это ширпотреб

Не в развитых, а в околоамериканских странах они дошли практически до уровня ширпотреба. Американцы прекрасно знают, что сильно переплачивают за айфон. И они готовы переплачивать, потому что это имидж, «быть таким же, как не такие как все».

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

Это и есть та самая всеобъемлющесть, которую я имел в виду.

А ещё имеется замечательный пример подобной всеобъемлющести, прямо как жук застрявший в доисторической смоле: https://en.wikipedia.org/wiki/X_Athena_Widgets

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

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

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

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

Да, выпустили SDK от дяди Вани.

Именно так. И было ясно кстати почему Motorola не шла на то, чтобы сделать из своего мобильного телефона – смартфон. В угоду безопасности. Они не успели как следует отрихтовать ОС и банальный rm -Rf убивал телефон до состояния кирпича. Поэтому возможности по установке доп. софта, как и выпуск SDK они проигнорировали и в конце-концов проиграли, потому что ныне эта операционная система на базе Linux полностью забыта.

И они готовы переплачивать, потому что это имидж, «быть таким же, как не такие как все».

Когда у каждого третьего iPhone, быть не таким как все что-то становится очень сложно, не находишь?

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

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

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

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

А нокия выпустила Maemo SDK, и все равно проиграла.

Когда у каждого третьего iPhone, быть не таким как все что-то становится очень сложно, не находишь?

Это уже слишком сложная логическая цепь для среднего американца. Нормальный уровень логики - это «покупай новый айфон - подчеркни свою уникальность».

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

Но, с другой стороны, у андроида возможность есть официально, однако же, фактически мало кто ей пользуется.

Зато домохозяйки пользуются трудами (приложениями) тех, кто воспользовался этой возможностью.

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

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

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

Зато домохозяйки пользуются трудами (приложениями) тех, кто воспользовался этой возможностью.

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

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

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

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

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

Думаешь телефон не может следить за пользователем без его ведома? Абсолютно не показатель. Разве что сторонние разработчики следить не могут.

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

Ты так говоришь, будто я это определение придумал. Однако, я его просто поддерживаю. И покупая «смартфон» в конце нулевых я ожидал к нему родное и официальное SDK для сторонних разработчиков, а не SDK для J2ME. И фактически оно так и было. Все смартфоны, OS’и которых имели возможность написания нативных программ сторонними разработчиками – Symbian, Windows ME, PalmOS, Blackberry OS и пр. – давали такую возможность и производитель позиционировал их как смартфоны, тогда как телефоны на S40, SGold, MotoMAGX OS, A200, P2K и прочих – позиционировались как телефоны.

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

Думаешь телефон не может следить за пользователем без его ведома? Абсолютно не показатель. Разве что сторонние разработчики следить не могут.

Да, хорошо подмечено, уточняю: наличие возможности установки стороннего шпионского ПО является критерием для определения смартфона, производным от знаменитого критерия смартфона EXL.

Все смартфоны, OS’и которых имели возможность написания нативных программ сторонними разработчиками – Symbian, Windows ME, PalmOS, Blackberry OS и пр. – давали такую возможность и производитель позиционировал их как смартфоны, тогда как телефоны на S40, SGold, MotoMAGX OS, A200, P2K и прочих – позиционировались как телефоны.

Это подход к устройству «что навалят - то сожру». Что устройство можно самому перепрограммировать на уровне маш кодов - никого не волует. Я вот, лично, для Maemo не писал приложения, а только собирал пакеты. В принципе, если бы приложение работало одинаково, то мне было бы решительно все равно, работает ли оно в жаве, машинных кодах, или интерпретирует Forth.

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

Это подход к устройству «что навалят - то сожру». Что устройство можно самому перепрограммировать на уровне маш кодов - никого не волует.

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

EXL ★★★★★
()

Где наша свобода

Ваша? Нигде.

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

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

Ничего они вам не должны. Ни первые, ни вторые. Не можете разобраться — пилите своё. Заодно и квалификацию повысите, чтобы разобраться. И да, это вполне естественный процесс. Я вот под B2G тоже адово велосипедил, пока не разобрался в некоторых встроенных (причём почти не документированных) API. Теперь то же могу писать куда меньшим количеством кода.

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

Внезапно! Сенсация века! Программы пишут для того, чтобы они работали! За исключением специальных академических примеров, да.

как магический артефакт, который может модифицировать только его создатель

Кто ж виноват в том, что 95% населения — идиоты, которые даже читать не умеют?

rebforce
()
9 января 2020 г.
Ответ на: комментарий от AP

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

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