Добрый день!
Хочу поделиться своим опытом использования опенсорса в различных проектах — от учебных до коммерческих. Кто-то обязательно обвинит меня в не профессионализме, кто-то просто скажет, что это все как-то однобоко, но тем не менее…
Студенческий проект MathWorld
Решил я как то выучить PHP. А какой лучший способ выучить новый язык программирования? Правильно, нужно написать свой проект на этой технологии. Так как я люблю математику, то проект решил посвятить mathcad, которым пользовался для расчетов в университете. За месяц-два, как говориться, «на коленке» с нуля был написал небольшой движок, который:
— был очень простым
— содержал код, за который в последствии было стыдно
— был не удобным для автоматического наполнения.
Но тем не менее, он
работал и, думаю, это самое главное. После того, как посещаемость на сайте достигла отметки 50-60 хостов в сутки (согласитесь, для первого проекта студента-самоучки на бесплатном хостинге четвертого уровня — это неплохо), я решил расширить сайт. Выбор пал на PHPNuke — open source CMS.
После установки и настройки движка, переноса большей части материалов, я получил:
— глючную тормознутую систему, которая грузилась на порядок дольше моей (оговорюсь, что отключил практически все не используемые модули)
— спам в размере 10-20 коментов в день
— любая кастомизация занимала очень много времени.
В итоге, я отказался от сайта на PHPNuke и просто доделал старую систему, что позволило еще 3 года ей успешно работать.
Как говорится, дилетанты стоили Ковчег, профессионалы строили «Титаник» (с).
Коммерческий проект
Уже будучи сотрудником ИТ компании, выполнял проект для израильского Microsoft. Это был ASP.NET проект для настройки некой системы, но не в этом суть. Необходимо было реализовать модальный прогресс бар (modal update progress). Решение нашлось очень быстро на codeproject и было интегрировано в проект.
В процессе интеграции на стороне заказчика мне необходимо было отчитаться по каждой «левой» dll в проекте. Естественно, возник вопрос по поводу этого прогресс бара. Я привел ссылку на проект, где написано, что можно делать с этим кодом все, что хотим и т.д. и т.п. Результат был простой — код забраковали и заставили переделать.
Итак ситуация,
— codeperoject напрямую поддерживается Microsoft
— код был подкреплен какой-то лицензией, которая просто
там должна быть, а не потому что автор кода решил кому-то создать сложности. Она позволяла делать все, что угодно с эти кодом
— вся dll состояла приблизительно из 100 строк!
Тем не менее, пришлось переделывать, потому что на практике оказалось нельзя использовать такого рода код в коммерческих проектах.
Личный проект
Возникла идея создания проекта TechPosters (в данный момент он не работает, так как возникли проблемы с хостером), который я упоминал несколько раз на хабре.
Это как раз тот проект, когда необходим движок, а ценность сайта — его контент. Проект задумывался как хобби, поэтому больших требований не ставилось.
На codeplex результаты поиска по ключевым словам
«blog engine» выдает много результатов.
BlogEngine.NET идет на первом месте и по скачиваниям и по симпатиям. После развертывания и добавления материалов через два дня обнаружил, что все теги, старательно расставленные по постам, исчезли. Соответственно исчезла удобная навигация по направлениям. После нескольких дней разбирательств проблема не была решена. Заново расставленные теги просто исчезали через некоторое время (не сразу). Сейчас я вспоминаю, что может быть были неправильно расставлены права записи, доступа или еще что-то. Но факт остается фактом — заставить работать этот движок на себя у меня не получилось.
Выбор был сделан в сторону
dasBlog, который не требовал базы данных, был простым в настройке и использовании. Вся информация хранилась в XML файлах. Только потом я понял, как облажался. Движок писал все пути к файлам в виде
http://домен/путь к файлу
Т.е. перенос сайта целиком на другой хостинг (с чем я столкнулся в данный момент) — это тихий ужас. Кроме того, все логи движок хранит в файлах, бережно созданные в корне (!) сайта, т.е. когда я обнаружил после двух месяцев 200 лишних файлов в корне, я был удивлен. Но когда увидел changeLog на 100 МБ, я занервничал… Спам, неудобство в плане модерации комментариев и т.д. отношу к цветочкам.
Выбор нового движка не заставил себя долго ждать —
LiveStreet идеально подходит под мои нужды. Ребята проделали хорошую работу, за что им спасибо.
Вопрос был в том, что ставить движок мне нужно было на IIS7. Так вот, проблемы начались сразу же. Движок в упор не хотел работать. 3 дня ушло на разговоры с хостерами, которые очень вежливо, но все таки в итоге послали меня далеко. Вся соль в том, что они оказались правы. Нюансы IIS7 не учтены при разработке движка, также нигде не было написано о том, чтобы не пытаться методом грубой силы заставить движок работать на IIS7. На блогах сайта было найдено много упоминаний о проблеме, но нигде не было детально описано решение проблемы. В итоге еще 2 дня на нервах, после чего пришлось отказаться от IIS7 и взять дополнительный хостинг на apache. А все потому, что не написано на сайте большими буквами о том, что не стоит ставить на IIS7 или если стоит, то как.
В итоге:
— ушло куча времени, сил и нервов
— 4 открытых тикета в службу поддержки хостинга
— новый хостинг, дополнительная неразбериха с доменными именами и dns
В данный момент
TechPosters работает в тестовом режиме на apache.
Еще один пример
Год назад искал движок соцсети и
нашел! Одна проблема — движок на китайском.
Отправил тикет на локализацию на английский — пообещали в течении месяца обновить. Скоро будет год… А что вы хотели — это open source, никаких гарантий. Я бы уже и сам локализировал, но вот с китайским не сложилось…
Просто наблюдение
При установке чего-то с помощью Microsoft Web Platform Installer решил посмотреть, что еще интересного содержит данная тулза. Увидел в разделе вики ScrewTurn Wiki — викидвижок на asp.net, open source. Хм, замечательно, подумал я и полез скачивать «open source». В процессе скачивания обнаружил вкладку
«Commercial», открыл и… офигел. Лицензия на Unlimited Redistribution + Lifetime Updates стоит €5,000. На stackoverflow даже
вопрос поднял по поводу commercial use, из чего понял, что мне она точно не подойдет, потому что под нарушения GPL я попадаю, а €5,000 у меня нет.
Еще меня убил калькулятор стоимости проекта. Стоимость разработки вики оказывается $1,230,990. Мда…
Неужели все так плохо?
Нет, конечно. Например, мы используем redmine и он мне нравится. Много небольших проектов и примочек успешно использую каждый день, но в области «complete solution» дела обстоят плохо.
Кроме того, на codeplex я
координирую несколько небольших проектов. И мне это нравится :-) Но just for fun.
Вывод
Я всегда осторожно относился к open source. Я никогда не поддерживал идею «свободного программного обеспечения» на уровне религии, я не понимаю, когда open source приравнивают к светлому и чистому, а проприетарное ПО — к злому и ужасному. Все, что хочу сказать, что нужно хорошо подумать перед тем, как использовать open source в своих проектах, чтобы не получилось делать двойную работу.
Спасибо за внимание.
Upd. По моему тема явно указана — «реальный опыт».
комментарии (56)
И вы так говорите будто среди проектов с закрытыми исходниками нет гуано.
*удалился за попкорном, холивару быть!*
Почему не на drupal?
>Тем не менее, пришлось переделывать, потому что на практике оказалось нельзя использовать такого рода код в коммерческих проектах.
Да, опенсорс коммунити не любят когда их код воруют и продают как свой.
>А что вы хотели — это open source, никаких гарантий
В Windows тоже никаких гарантий — читайте лицензию
>Еще меня убил калькулятор стоимости проекта. Стоимость разработки вики оказывается $1,230,990. Мда…
Напиши свою и раздавай бесплатно
>А все потому, что не написано на сайте большими буквами о том, что не стоит ставить на IIS7 или если стоит, то как.
А маленькими буквами читать не умеем?
Потому что тогда я таких слов не знал. А PHPNuke был везде.
>>Да, опенсорс коммунити не любят когда их код воруют и продают как свой.
Никто ничего не воровал.
>>В Windows тоже никаких гарантий — читайте лицензию
Для windows есть поддерка, обновления, примеры использования и т.д.
>>Напиши свою и раздавай бесплатно
Не помню, чтобы мы с вами переходили на ты. Опять таки почитайте внимательней и вдумайтесь в цифру. Это я о здравом смысле.
А маленькими буквами читать не умеем?
Здесь явно провокация. Проигнорирую :-)
Кроме того, всегда можно связаться с локальным представителем Microsoft и напрямую получить ответ. MVP тоже еще никто не отменял.
По поводу мух, то причина «PHPNuke был везде» для не опытного товарища является веской. Вы можете с этим не согласиться, но никто не навязывает вам свое мнение.
По сути, вся ваша «статья» и есть попытка навязать всем свое мнение xD
Достаточно скоро.
>>Но что мешало поспрашивать опытных товарищей?
Почему вы уверены, что под боком были опытные товарищи? Или такой вариант вы не рассматриваете.
Что вам еще назвать? Я не собираюсь вас переубеждать и вам что-то доказывать. Вы можете мне поверить, а можете нет — у вас есть выбор.
>>На RSDN, Винград, xpoint не обращались? Чем не вариант?
Когда писался тот проект, под рукой была только справка в chm формате по функциям PHP. О существовании RSDN я не знал. К слову сказать, что такое Винград, xpoint я не знаю даже сейчас.
Вот кого ни спроси из адептов софта от MS про техсаппорт, так все как один пытаются отделаться максимально общими фразами. «Хорошо работает», «достаточно скоро», «почти все пофиксили» — и никакой конкретики. Вам что — запрещается публично обсуждать качество техсаппорта?
Думаю, основной мыслью было «у проприерарного ПО есть саппорт», у open source он, в основном, отсутствует либо является платным.
>>>Я не обращаюсь в общий техсаппорт, а пишу напрямую специалистам
Тогда при чем здесь саппорт? Точно так же можно общаться и с лично знакомыми гуру по свободным программам, тогда саппорт при чем?
Ещё вопрос — как MVP может исправить багу в коде, поставляемом Microsoft? Или речь идёт о workaroundе?
>>без конкретных примеров
????
Статья полностью построена на примерах — как вы могли их не заметить? Хотя тут все просто — каждый видит то, что хочет видеть.
>Для windows есть поддерка, обновления, примеры использования и т.д.
А так-же шумелки и сопелки. Тем не менее — гарантий там нет. Не уходите с темы.
Попадаются личности, которые пишут гневные письма, с требованиями сиюминутно исправить какие то баги, добавить фичи. Но времени на это не всегда хватает, так как основная работа с этим не связана, и все происходит на голом энтузиазме. Особенно доставляют такие юзеры, которые демонстративно начинают высказываться в комментариях о том, что автор мудак и не хочет разобраться в его проблеме или добавить фичу, нужную только одному юзеру.
Кто то запрещает пользоваться платными аналогами??
Open Source дает право свободно выбирать! Не нравится? Иди дальше…
>>Кто то запрещает пользоваться платными аналогами??
Когда разговор идет о платном продукте, то все кричат «зачем, есть же аналогичный open source»!.. На что им зачастую отвечают, мол, никто вас не заставляет — пользуйтесь бесплатными. Так же и тут — никто на заставляет, ставится под вопрос ценности такого open source.
И еще пример, когда есть смысл заплатить за опенсорц. У меня на работе думают внедрить опенсорцную электронную библиотеку, но она сделана по американским стандартам библиотечного дела, потому мы, если решим брать эту систему, воспользуемся услугами фирмы, которая адаптирует и развивает программу под наши условия.
Люди не платят за gcc, linux, netbeans, gimp, firefox и тд.
А может лично вы покупаете поддержку на MySQL или все же так пользуетесь, потому что она бесплатна? Или вы за linux кому-то заплатили?
Когда люди слышат GPL, BSD, Apache уже предполагается возможность экономии на лицензии. Это факт.
Ничего не мешает спросить об этом самого автора, и даже если откажется, всегда можно найти программиста который сможет это сделать (не бесплатно естественно).
Если фича полезная можно найти единомышленников и скинуться на её реализацию.
Можно самому помочь.
Вариантов на самом деле очень много.
> Тогда теряется весь смысл open source.
Выложите купленный код в общий доступ, тем самым Вы поможете проекту и поддержите идеологию open source.
> Потому что платить за опен сорс не вижу смысла
Так не платите, никто не заставляет. Но в таком случае — как можно чего то требовать от автора? Он Вам ничего не должен.
Все IMHO, естественно.
С опенсурс софтом то в этом плане проще. Если популярный проект начинает умирать, делают форк, и разработку продолжают другие люди. И в конце концов, почему бы не помочь проекту лично?!
> я не понимаю, когда open source приравнивают к светлому и чистому, а проприетарное ПО — к злому и ужасному
Насчёт этого можно долго говорить (в пользу открытого ПО конечно же), в том числе и мне (да хоть отдельный топик написать). Однако и так много сказано и объяснено. Твою же статью следовало озаглавить «Мои неудавшиеся проекты» и убрать оттуда попытки обесчестить открытое ПО. Максимум куда это можно поместить — в личный блог. А лучше так в черновиках и оставить и не повторять своих ошибок в будущем.
Смысл статьи в том, что «перед тем как использовать open source, несколько раз подумайте».