Полагаю, я "более опытен" в отношении вашего конкретного вопроса. Я участвовал в разработке системы языка и шаблонов веб-приложений с открытым исходным кодом, очень похожей на ColdFusion, еще в первые дни веб-дизайна, до появления Java или ASP. Вы все еще можете увидеть его на http://www.steelblue.com/, если вы заинтересованы. Он все еще используется в компании, в которой я был, когда разрабатывался, но больше нигде не думаю.
Что я обнаружил, так это то, что если вы уже не очень хорошо связаны, и люди следят за тем, что вы делаете, заставить людей использовать ваш открытый исходный код почти так же сложно, как продать сомону вашу программу с закрытым исходным кодом. Вам действительно нужно защищать свой проект, и у него должно быть какое-то уникальное торговое предложение, которое отличает его от конкурса.
Итак, это незапрошенный совет. Вот некоторые конкретные ответы на вопросы, которые у вас были ... все, конечно, мое мнение.
Я бы не стал переписывать какой-либо код, если у вас нет функции, которую вы хотите добавить. Это может быть совместимость с конкретными платформами или компиляторами. Это может быть поддержка нового типа БД или более умных указателей или чего-то еще. Если вы собираетесь добавить в приложение более серьезную работу, подумайте о дорожной карте того, чего вы реально сможете достичь в следующей итерации, и какие варианты сделают приложение «самым лучшим» в конце цикла.
Выпустите код, как только он будет использован для определенной цели, любой цели. Две причины. Во-первых, может быть кто-то, кто хочет этого для этой цели прямо сейчас. Если это не доступно, они будут использовать что-то еще. Кроме того, если это открытый исходный код, они могут внести свой вклад в проект. Во-вторых, чем раньше вы узнаете, сколько людей хотят использовать код, тем лучше. Либо он будет более популярным, чем вы ожидаете, и вы можете быть в восторге от продолжения разработки .... или ... вы обнаружите, что никто даже не заходит на вашу веб-страницу, чтобы увидеть, что у вас есть. В любом случае, лучше узнать раньше, чем позже, что люди действительно хотят от вашего проекта, чтобы вы могли учесть это при планировании новых выпусков.
О "забытых в тумане". Я думаю, что большинство проектов. Я не хочу быть унылым, но, глядя на Википедию, было 5 инструментов C ++ ORM, достаточно популярных для упоминания, и все они были с открытым исходным кодом. Как я уже говорил выше, если вы не сможете продать свою идею людям, они пойдут с другим проверенным решением с открытым исходным кодом. Чтобы кто-то выбрал вас из-за них, должны произойти три вещи: 1. Им нужна особенность, которая есть у вас, а у других нет. 2. Они находят ваш веб-сайт проекта, и это демонстрирует превосходство вашего кода. 3. Они доверяют вашему коду достаточно, чтобы дать ему шанс.
С другой стороны, если вы занимаетесь этим в течение длительного времени и хотите продолжить разработку, со временем вам будет легче. В конце концов, проект охватит все основы, и вы сможете приступить к разработке новых возможностей, которых нет в других решениях. Кроме того, чем дольше вы находитесь в активной разработке, тем более надежным будет проект. Наконец, вы получите больше опыта в Nitch. Через 2 года вы будете в более выгодном положении, чтобы сказать, где ваши усилия окажут наибольшее влияние на улучшение проекта.
Последняя мысль: если вы наслаждаетесь этим, учитесь у него, и вам не мешает держать еду на столе, это хорошее использование вашего времени.
Удачи!
-Аль