вторник, 30 сентября 2008 г.

Революции нужны?

Я сторонник эволюционного подхода. То есть я верю что любая программа может планомерно мутировать куда нужно. При условии, что совместимость со всем прошлым не стоит как задача. То есть я не отрицаю частичную совместимость. Например KDE 4.0, 4.1, 4.2 должны быть совместимы между собой. Но нету никакой необходимости поддеживать запуск приложений 10-ти летней давности. Это нужно только гнусным проприетарщикам. :)

В то же время совместимость - понятие разноплановое. Совместимость бывает бинарная, или сборочная, или скриптовая.

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

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

Но иногда появляются не просто форки а качественные переосмысления идей первого продукта. То есть новый продукт выполняя сходные функции работает совершенно иначе. Он конечно может использовать некоторые наработки предшественников, но тем не менее ни о какой совместимости в данном случае не может быть и речи. Революция?

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

Сейчас в gentoo явная проблема например с KDE. Часть команды KDE по политическим разноглаcиям покинула проект, и стабильные пользователи gentoo еще не скоро увидят KDE4 (Кстати не понимаю, почему она не в слоте).

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

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

PS: А что творится в недрах Windows - я даже представить боюсь, хотя они тоже иногда забивают на совместимость, но это пока исключение. Совместимость - их хлеб. А Windows еще не умер от груза совместимости? есть ли жизнь после XP? о чем это я...

8 коммент.:

Анонимный комментирует...

Для начала с kde-4.1.2! :)

К которому кстати ебилды появились в офф. дереве Gentoo за день до релиза.. (уже заканчивают компилятся ;) )

По поводу застоя в генту - весьма познавательная новость на эту тему - http://gentoo.ru/node/12072, советую поглядеть, в особенности - http://lxj.endofinternet.net/column/gentoo-linux-eapi-2/.
Это конечно не революция, но усовершенствование одного из лучших пакеных менеджеров - очень неслабое.

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

Андрей Валяев комментирует...

Статьи читал, сообщество exerbo и gentoo-kde4 немного раскачало это болото :)

Я вот с некоторых пор сижу на стабле, и размаскирую только избранные пакеты. Дык что-то мне совсем скучно стало :)

В то время как на дворе уже linux-2.6.26.5 является стаблом, я же до сих пор как дурак сижу на 2.6.25-r7... И так куда не плюнь.. :)

Я в свое время сидел на слаквари, и мне тоже стало скучно. я начал рыть, перерыл LFS, Arch, остановился в итоге на gentoo. Тогда еще был релиз 1.4 (Это потом они начали релизы годами мерять). Gentoo был молодой и активный :)

А сейчас еще немного повременить, и молодой и активный Exerbo начнет теснить старичков :)

По большому счету эти дистрибутивы одного уровня сложности/гибкости.

А новые идеи - это всегда хорошо. особенно когда они воплощаются.

Анонимный комментирует...

Замечу, что KDE-4.2 отлично собирается "просто из исходников" (и даже вполне сносно работает :-)

Ну и к 2.6.27 тоже претензий пока нет.

P.S. Уж если это в Кубунте работает, то в Генту должно и подавно ;-)

Андрей Валяев комментирует...

2saabeilin: Не, ставить что-то из исходников - это не Gentoo Way :)

Не стоит замусоривать систему. Высокий контроль над системой - это достоинство Gentoo. Ставить что-то из сырцов - это наплевать на её достоинство :D

Мне на самом деле уже давно не терпится зацекнить KDE4, наверное скоро заценю в отдельной инсталляции, как время будет.

Анонимный комментирует...

Ну, в Debian и подавно, поэтому «правильный» метод -- собрать бинарные пакеты и установить их посредством пакетного менеджера. Но мне, правда, было и это делать лень, поэтому я сдела make install в /usr/local/kde4 :-) Потом, в общем-то, можно будет грохнуть весь этот каталог и все тут.

coff комментирует...

Я сторонник эволюционного подхода.
Тут главное помнить, что теория эволюции уже 150 лет держится в статусе теории, и никак не станет законом :-D.

То есть я верю что любая программа может планомерно мутировать куда нужно.
С некоторого момента "мутировать" программу становится настолько затратной задачей, что можно говорить, что эволюционировать она уже не может.

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

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

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

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

А что творится в недрах Windows - я даже представить боюсь
Не надо боятся, можно просто почитать про ядро NT. А после про ядро Linux :-D

К слову, залез я недавно на linux.org.ru и был просто поражен вопиющей неграмотностью форумчан в отношении Windows. Понятно, объяснять прописные истины и спорить безполезно. "Это глючит, это криво.... но мы же все равно понимаем, что Windows - еще хуже".

А Windows еще не умер от груза совместимости?
Виндоус умрет, когда ядро не выдержит тяжести наваленного на него мусора из Win32... все это благодаря гениям менеджерам из MS.

Андрей Валяев комментирует...

2coff: Не надо боятся, можно просто почитать про ядро NT. А после про ядро Linux :-D

Про ядро линукс я и так знаю, и я знаю сколько оттуда всего выбрасывается. (что хорошо)

В то же время я знаю как разрабатываются коммерческие проекты (сам программистом работаю), даже если предположить что WindowsNT - правильный и качественный проект.

Совместимость хороша только до определенного предела, нельзя все время за нее держаться. Это зло.

coff комментирует...

WindowsNT - вовсе не правильный и качественный проект. Это прекрасно видно по Vista и семерке. Проблемы раздуваемого программного продукта возникают не из-за того, что с собой тащится груз совместимости, а из-за того, что на Windows вешается до фига всякого безполезного обвеса - Aero, сервисы и проч... что отрубить полностью не всегда возможно.

Это зло
Понятно, совместимость после какого-то предела - зло.
И как определить, когда совместимость с чем-либо уже не нужна? Причем совместимость можно по разному поддерживать - либо распределяя ее по всему продукту (как первые DOS и CP/M, Win16 в Win32), либо вынося их в виде отдельных подсистем, используя их по необходимости.