Мигель де Икаса (Miguel de Icaza), основатель проектов GNOME, Midnight Commander и Mono, опубликовал (http://tirania.org/blog/archive/2010/Dec-31.html) заметку в которой предостерег начинающих участников открытых проектов от подготовки патчей с необоснованными изменениями. Часто многие новички не просто отправляют патч с каким-то исправлением, но и пытаются провести чистку или рефакторинг кода - переименовать для более точного отражения содержания переменные и методы, улучшить читаемость кода, откорректировать форматирование, провести дополнительное разбиение функций на файлы и т.п. При этом новички забывают, что в проекте участвует множество разработчиков, со своими взглядами на оформление кода, и, как правило, в давно существующих сообществах складываются неформальные правила по стилю кодирования.
Отправляя патчи, которые кроме непосредственного устранения недоработок или реализации новшеств, включают связанные с оформлением кода правки, разработчики существенно усложняют работу...URL: http://tirania.org/blog/archive/2010/Dec-31.html
Новость: http://www.opennet.me/opennews/art.shtml?num=29175
К чему бы это?
Расстроился, что Миднайт форкнули и успешно развивают. :)
> Расстроился, что Миднайт форкнули и успешно развивают. :)И где они, эти форки? Заброшены, забыты, оставлены в нерабочем состоянии. Как и десятки "аналогов". А вот команда Midnight Commander-а скрипит, матерится, но продолжает пилить код -- и достигает результатов.
Лучше бы эта команда не лезла своими кривыми руками. Всё переломали и радуются.
багтрекер работает, о баге уже сообщили? нет? ну и молчите, нефиг вылазить с обвинениями тут.
эдакий манифест дедов :)
только в жизни все сложнее
Да-да. В жизни тем сложнее, чем больше хороших программистов занимаются тупиковыми форками, так-как в большинство форков не удаётся привлечь достаточное количество людей на разработку, тестирование, исправления и улучшения ПО. Поэтому - чем больше форков, тем хуже для всех (кроме, конечно, проприетарщиков, которым выгодно чтобы у сообщества СПО ничего не получилось).
Вот давай ты это разработчикам Libre Office скажешь, а?
Нет, вы лучше это автору BolgenOS скажите. Как там поживает его офис?
А причем здесь Libre Office? На этот форк человеческих и финансовых ресурсов нашли немало, т.к. дофига кто поддерживает. Чего-то вы неудачный пример привели, однако...
При том что там свой Мигель, которого правда зовут Ларри. Но он тоже был недоволен. =)
Каждый "мигель" хочет быть Богом?
Мания величия косит наши ряды...
А он в чём-то не прав? Я лично знаю с десяток людей, начинавших писать свои клоны уже существующего софта. Большинству были присущи эти два качества: крайняя неопытность и отсутствие чётко определённых целей.Это "напишу простенький $вид_софта, а дальше народ подтянется и начнём добавлять фичи" не работает почти никогда. Хотя бы потому, что люди не рассматривают причины, вызвавшие проблемы в оригинальном проекте.
Мигель неправ в том, что то, за что он критикует - это эволюция.
В любом случае он один из многих и то, что он считает важным, всего лишь его IMHO, не более и никак не истина в последней инстанции.
Мигель как раз предостерегает новичков от поспешных действий. Нужно учитывать мнение и других разработчиков, особенно более опытных. Одно дело личный небольшой проект, другое -- работа в команде.
это и так всем понятная истина.
а кому не понятно, то тот форкают и будут форкать.
другими словами учится на своих шишках.
зы:
хотя желание позудеть типа "а в наше время девки были моложе" - я понять могу.
> Мигель неправ в том, что то, за что он критикует - это эволюция.Эта эволюция обходится СПО слишком дорого
> В любом случае он один из многих и то, что он считает важным,
> всего лишь его IMHO, не более и никак не истина в последней инстанции.Обратное он и не заявлял.
> Эта эволюция обходится СПО слишком дорогоА СПО как just for fun по другому развиваться и не может. Всё остальное, только в обмен на деньги или другие «тонны нефти».
> А СПО как just for fun по другому развиваться и не может.Ещё как может
>> А СПО как just for fun по другому развиваться и не может.
> Ещё как можетУгу, но в подавляющем большинстве случаев очень ограниченный промежуток времени.
Поддерживаю.
> Эта эволюция обходится СПО слишком дорогоНе думаю. От новичков, уходящих в форки, было бы мало проку в оригинальном проекте. Если им наскучивает их форк, которым они полностью распоряжаются, то что же говорить про проект, в котором они ничего не решают.
хоть многие и не любят моно и Мигеля который его "проталкивает" в массы, но в данном случае он дает дельный совет к которому следует прислушаться... IMHO
В смысле: «Всем ходить строем»?Если первую часть утверждения Мигеля ещё можно принять, то вторая просто нонсенс и непонимание одного из основных преимуществ разработки в системе СПО. Возможность создать форк — это способ уйти от конфликтов, которые в случае единственной «генеральной линии партии и правительства» приводили бы просто к потере разработчиков для сообщества вообще.
Яркий пример Axiom. Если бы не возможность создать форк, то у Axiom осталось бы ровно 1 (один) разработчик, а так есть ещё две вполне живые ветки со своими особенностями (более стабильная OpenAxiom и более продвинутая FriCAS).
И всё же на один удачный форк приходится сотня неудачных. А новички такие нетерпеливые и нетерпимые.В учёбе почти всему важно терпение. Если человек не смог понять стиль оригинального проекта, то и с форком ему не справиться. Форкать иногда нужно -- но только хорошо понимая, зачем и чем тебе это грозит.
Это дружеский совет. Самим же новичкам будет лучше, если их усилия не пропадут бесследно.
> Самим же новичкам будет лучше, если их усилия не пропадут бесследно.А вот и нифига, - появиться опыт, причем намного шире, чем латание дыр
и ковыряние в чужом коде с целью поиска багов. Когда делаешь форк есть
какая-то цель, и это более стимулирует на работу, чем преклонении перед
стадами гуру.
> Когда делаешь форк есть какая-то цель,А когда просто патчишь и улучшаешь готовое — это, конечно, бесцельная, бессмысленная работа.
>> Когда делаешь форк есть какая-то цель,
> А когда просто патчишь и улучшаешь готовое — это, конечно, бесцельная, бессмысленная
> работа.Нет, но найти дабл фри или утечку памяти это не тот опыт, по сравнению с алгоритмическими косяками.
>> Самим же новичкам будет лучше, если их усилия не пропадут бесследно.
> А вот и нифига, - появиться опыт, причем намного шире, чем латание дыр
> и ковыряние в чужом коде с целью поиска багов. Когда делаешь форк есть
> какая-то цель, и это более стимулирует на работу, чем преклонении перед стадами гуру.Это всё от молодости и самомнения. Проходит с возрастом и опытом. Как правило.
вот именно.
другими словами - опыт и возраст на барахолке не прикупишь.
ну, что естесно, не пропьёшь. :Dзы:
всё должно идти своим чередом.
хотя такой регрес от гнома в моно, имхо, противоестественен. хотя, может быть прибылен.
> Это всё от молодости и самомнения. Проходит с возрастом и опытом. Как правило.С возрастом и опытом приходит лень.
Ладно форки, я вот тут знаю автора, так он свое детище несколько раз переписывал заново, без оглядки на совместимость, вот где настоящий энтузиазм!!! Но вроде получилось все же прилично. автора можно найти здесь :) : root.cern.ch
> Ладно форки, я вот тут знаю автора, так он свое детище несколько
> раз переписывал заново, без оглядки на совместимость, вот где настоящий
> энтузиазм!!! Но вроде получилось все же прилично. автора можно найти
> здесь :) : root.cern.chАвтор -- это нормально. И если разработчик варится в проекте несколько лет и знает его от и до -- форк имеет шанс на успех. Совет предназначен новичкам, которые не сумев осилить оригинальный проект, не проникнув его философией, не поняв, какие мотивы и компромиссы стоят за теми или иными решениями, -- думают, что сами смогут сделать намного лучше и легче. Впереди их ждут те же грабли, костыли и разочарования.
> И всё же на один удачный форк приходится сотня неудачных. А новички
> такие нетерпеливые и нетерпимые.Замените «новички», на «люди». Роботы пока не участвуют разработке СПО как независимые единицы.
> Замените «новички», на «люди». Роботы пока не участвуют разработке
> СПО как независимые единицы.А опытным разработчикам это говорить не нужно. Они и так знают. Часто по своему опыту.
>В смысле: «Всем ходить строем»?Нет, в смысле "не ходить по граблям". Толпой.
Подавляющее большинство "ты не ловок, дай-ка я!" продиктовано нежеланием разбираться. Ни в чём.
Возможность создать форк - это не только "возможность", но и ответственность. Можешь "тащить" - флаг в руки. Не можешь - не вводи окружающих в заблуждение.
Примеров - "стотыщмильёнов".
> Примеров - "стотыщмильёнов".А у меня есть и ровно другие примеры. Попытки под кого-то подстроиться часто ничего кроме отрицательных эмоций в итоге не дают. Уж лучше свой нерабочий велосипед в начале, чем отвращение до конца жизни.
то, что сейчас было описано, называется "желторотая амбициозность". В конкретном проекте должны быть конкретные правила. вы же не лезите к англичанам с требованием ездить по нужной стороне улицы?
Восхищают меня некоторые, которые умудряются прочитать в тексте то, что там не написано.Поподробнее ещё раз: подстраивание под чужие правила и обслуживание исключительно чужих интересов напрягает и часто напрягает очень сильно. Данный факт ведёт к _гарантированной_ утрате интереса. Это ведь не основная работа, а just for fun — если мы говорим о новичках.
Попытка заставить всех ходить строем приведёт просто к тому, что строя в какой-то момент элементарно не окажется, так как все дезертируют. Возможность уйти «в бок» (сделать форк) — это возможность не разрушая проект (недовольный разработчик гарантировано портит настроение всем окружающим) реализовать себя в интересующей области.
Если же непременно хочется заставить ходить всех строем, то следует озадачиться мотивацией,так как fun испаряется, то есть иными словами, например, платить деньги в обмен на работу.
каждый горазд интерпретировать сие в силу своей извращенности: для кого-то это "ходить строем", а для кого-то "ездить по правилам".
Осталось только понять по чьим именно правилам ездить и верны ли эти правила. Аналогии такие аналогии.
если в проекте кто-то пытается заменить функцию recursiveSearch() на sUpeR_MEGa_CoOL_Search(), меняя таким образом название со всеми вытекающими. это чтоль just for fun? для долбоносика, который хочет изменить название функции - может быть. но не для других участников проекта.
Мигель как обычно смешал тёплое с мягким. Про изменение функции я ничего не говорю — это очевидно. Я указываю на то, что для СПО форки — это благо и без форков СПО давно бы сгинуло.
ну ежели про форки, то если они развиваются и дальше, то это только позитивно (за исключением случаев развала команды разработчиков). во-первых, разнообразие всегда позитивно, ибо конкуренция рождает совершенствование. во-вторых, если какие-то основные проекты умирают в силу внешних, или внутренних факторов, то у форка есть возможность развиваться далее. это происходит сейчас с LibreOffice. осталось только OpenOffice переименовать в CloseOffice
> ну ежели про форки, то если они развиваются и дальше, то это только позитивно (за исключением случаев развала команды разработчиков).Форки как раз являются механизмом препятствующим развалу команды. Если нет возможности сделать форк, то люди с большой вероятностью рано или поздно переругаются. От эмоций никуда не деться. И форк является своего рода защитным клапаном куда можно уйти до того, как всё вокруг пойдёт в разнос.
Я выше приводил пример Axiom, где на основной ветке остался 1 (один!) разработчик, а все устав с ним препираться, организовали свои форки, которые сейчас в основном и развиваются.
> Форки как раз являются механизмом препятствующим развалу команды.4.2, причём настолько откровенный, что откровеннее просто некуда.
А подумать? Если бы в случае Axiom нельзя было бы сделать форк, то разработка Axiom бы закончилась, так как самый продвинутый проект компьютерной алгебры остался бы вообще без разработчиков из-за принципиальной позиции ключевого разработчика (только он один в основной ветке и остался).Разработка держится на очень небольшом числе квалифицированных людей и утрата интереса любого из них — это катастрофа и пусть уж лучше попробуют свои идеи в стороне, чем уйдут совсем. Новички же за _очень_ редким исключением пользы никакой не несут и их следует терпеть и обучать в надежде, что из них вырастет что-нибудь толковое, поэтому их форки тоже не проблема, зато избавляет от разочарования.
Пример с Axiom далеко не единственный.
вообще-то из любого открытого проекта можно сделать форк. просто есть причины, по которым этот форк происходит: кто-то начинает тянуть одеяло на себя, или куча пионэров начинают расшатывать лодку. от команды зависит. кого-то начинает порой откровенно глючить, кто-то чего-то недопонял и делает отсебятину.
в жизни довольно часто происходит следущее: приходит чел с большим самомнением, теории у него дохрена (может быть), а практики - нихрена. ну и начинает кричать о том, что давайте перепишем проект в другом языке программирования, например, яве. у него появляется несколько сокрикунов, которые тоже окромя явы нихрена не знают и знать не хотят. ну и т.д. в любом проекте эта история может закончиться заморозкой и основного проекта и всех форков, т.к. в основном проекте челам тоже может надоесть и просто плюнут на всё, сказав: а оно мне нужно?
вариантов - куча
> вообще-то из любого открытого проекта можно сделать форк.ага, особенно если он под лицензией MS share :))))))))))))))))))
СПО и только СПО есть экологическая ниша для эволюции.а Мигель просто ворчит, устал лабать .нет
> Мания величия косит наши ряды...у него есть основания так высказываться. По крайней мере гораздо больше чем у тебя на его счет
сперва добейся?
Сперва выучись.
> у него есть основания так высказываться. По крайней мере гораздо больше чем
> у тебя на его счетЯ там ниже расшифровал подробнее свою мысль.
Талантливых людей, покинувших науку или так и не пришедших в нее из-за шизофрении (именно болезни!) я видел точно более одного.
Вы не знаете меня, может я имею реальные основания для такого мнения?
Гном и мц под freebsd крайне тоскливы. По крайней мене сейчас. Если лично Вы давно их используете, то не сможете отрицать большого количества ошибок в них при выпуске "стабильных" версий (2.*.0).
Моно мне пока не приходилось использовать, ничего сказать не могу.
В любом случае успехов господину Мигелю в работе на благо сообщества.
Это что, попытка привить опенсорсу корпоративный менеджмент? Видать он уже совсем продался Микрософтам. Ценность опенсорса как раз в том, что каждый делает то что хочет, а не то что должен... потому что в опенсорсе никто никому ничего не должен! В опенсорсе люди творят искусство, иногда в ущерб профиту. Но без этого никак. Кто ставит деньги превыше таланта, тот терят способность творить. Хорошо троллить простых разработчиков, когда за твоей спиной стоят новелы, редхаты и прочие корпорации...
>Ценность опенсорса как раз в том, что каждый делает то что хочет, а не то что должен...Совершенно верно. Но когда вы посылаете патч в открытый проект, вы должны делать так, как привыкли делать его разработчики. Поскольку им ваш код еще поддерживать. Если это вы называете "корпоративный менеджмент", то да, корпоративный менеджмент необходим.
>>Ценность опенсорса как раз в том, что каждый делает то что хочет, а не то что должен...
> Совершенно верно. Но когда вы посылаете патч в открытый проект, вы должны
> делать так, как привыкли делать его разработчики.Поправлю: не "привыкли", а "договорились".
> Поскольку им ваш код еще поддерживать.
Заметку в блоге Мигеля вы конечно же не читали?
Какой талант? В большой проект приходит патч от пионера Пети, который легче с нуля переписать, чем отделять мухи от котлет. Да ещё и ломающий пару неочевидных мест, которые пионер не понял и решил "упростить" (вспоминаем историю с ssh в Дебиане). Понятно, что загруженный мейнтейнер отправляет патч лесом, т.е. на переделку. Он Пете ничего не должен.
>В большой проект приходит патч от пионера Пети, который легче с нуля переписать, чем отделять мухи от котлетМожет мне везёт, но большинство (80%) присланных патчей кроме добавления нового функционала, почему-то ломают старый. Приходится тестировать и частично переписывать. Хорошо, если проект маленький и есть время это себе позволить. Иначе таких товарищей шлют лесом и получают в награду обиды, дескать такие сякие, не принимают мой гениальный патч.
>>В большой проект приходит патч от пионера Пети, который легче с нуля переписать, чем отделять мухи от котлет
> Может мне везёт, но большинство (80%) присланных патчей кроме добавления нового функционала,
> почему-то ломают старый.Вот-вот, в старые добрые времена один знакомый тогда еще молодой горячий парень посылал патч в кернел со словами - "какие косяки вы тут развели", ему ответил сам Alan Cox - показав что его решение ломает работу многих подсистем :))))))))))) Но за старание поблагодарил! добавив, что о проблеме знает, решение будет сложно в будущих версиях.
> Это что, попытка привить опенсорсу корпоративный менеджмент?Нет, это попытка привить немного мозгов. Опенсорс как модель разработки может быть эффективным лишь тогда, когда есть коллективная работа. Если каждый, кто с чем-то несогласен, начнёт клепать форки, мы так и останемся в каменном веке. Подумай об этом как следует прежде чем снова нервно реагировать на разумные идеи.
не путай опенсорс с анархией.
основатели проекта должны формировать правила оформления кода. а остальные должны придердиваться этих правил. иначе будет перетягивание одеяла и игры в "царьков"
Какие проблемы? Оформите документально оные стили в документации на src-пакет! К чему это нытьё?
> Какие проблемы? Оформите документально оные стили в документации на src-пакет! К чему
> это нытьё?Если, например, функция называется open_file(), а я предлагаю ее переименовать в OpenFile(), ежу понятно безо всякой документации, что я предлагаю изменить принятое соглашение.
Что же касается, таких вещей, как выбор новых идентификаторов, indentation, расположение методов и пр., то составление такой подробной документации часто очень трудное, и у небольших проектов на него не хватает сил. Большие проекты, впрочем, такую документацию пишут. Но ведь всякий может посмотреть, как и что делают в остальном коде и постараться этому соответствовать, а не нарушать сознательно.
Всё правильно. Мухи отдельно, котлеты отдельно. Функциональный патч отдельно, чистка и рефакторинг отдельно. И второе -- только опытным разработчиком, который уже некоторое время проварился в проекте и понимает, почему сделано именно так, а не иначе. Чтобы не вышло как с Лесковским Левшой -- блоху-то подковал, только прыгать она после этого перестала.
> Чтобы не вышло как с Лесковским ЛевшойОй, люли ---- C'est tres Julie. :)
Всё правильно сказал. Народу много, каждый считает себя гением, но глюки от применения таких патчей только плодятся.Поэтому в опенсорсе рулят как правило мелкие авторские проекты или проекты с небольшой командой. Иначе результат будет плачевный.
> Поэтому в опенсорсе рулят как правило мелкие авторские проекты или проекты с небольшой командой. Иначе результат будет плачевный.Ага. Типо ядра или KDE там...
>Ага. Типо ядра или KDE там...Попробуй закатай туда патч, а потом говори.
>>Ага. Типо ядра или KDE там...
> Попробуй закатай туда патч, а потом говори.Я закатывал патчи в KDE, да и в драйвер ядра тоже. Ничего сложного, если кончено патч разумный.
Ключевое слово -- "разумный".
Это жжж неспроста. Кто-то всерьез собрался форкать Гнома, не иначе.А Мигеля, у которого мозг съеден Мелкософтом, уже давно пора в отставку. Пускай идет работать к Балмеру, теперь его туда возьмут с удовольствием.
Заявление построено хитро кстати. Сначала идет аккуратное введение о том, что новички не должны менять стилистику проекта и переименовывать функции. С этим даже КО соглашается. А потом как-бы в продолжение упоминается, что форки это фу бяка и их делают только лузеры. Рассчет на то, что согласившись с первым посылом, читатель автоматом примет и второй. Некоторые я смотрю повелись. =)
Убунту, кто ж ещё? Больше свой Гном никому не надо.Как показывают комментарии, некоторые и с КО не согласны. Вот для них совет Мигеля.
Только я бы посоветовал особо упоротым обязательно сделать форк. Всё равно толку не будет, а так хоть под ногами мешаться не будут.
>Убунту, кто ж ещё? Больше свой Гном никому не надо.Свой не нужен, но от альтернативного Гнома без mono и туповато-глюкавых интерфейсов на Питоне я бы не отказался. Мечты конечно, но было бы хорошо. В Убунту такой не сделают, Шаттлворт тоже любит питонистов и относительно толерантен к mono.
>Как показывают комментарии, некоторые и с КО не согласны.
У них обратная реакция. Люди не любят когда их поучают. Короче Мигель ― мистер Трололо. =)
заблудившийся Иказа призывает никого больше не заблуждаться :D
Странно всё это слышать именно от Мигеля. Вот и пилил бы .NET в Windows, а не занимался fork'ом для других платформ - Mono.