How to make your web framework popular?
I am developing open source web framework, it's almost ready but I still do not开发者_如何学Python know how to promote it. What would you advice ? (except spamming stackoverflow, of course:) )
- Make it good
- Make good documentation (like symfony)
- Make sure there is a market for it
- Make a good website
- Promote it via usergroups, etc.
- Make sure that you have decent community featured like usergroups, IRC chat, forums
However, my experience is that it is definately the documentation that is the most important part. If you do that good, and your framework is as good as the documentation, you'll get the users :)
I suggest you read Paul Graham's essay Being Popular which dissects the popularity of programming languages. While your web framework isn't exactly a programming language, it probably qualifies as a Domain-specific language, making his suggestions fairly relevant.
He speaks about the importance of being a scripting language for a popular system (think Spring MVC to Spring), brevity (think Tapestry's simple jwcid attribute or Savant for PHP needing only 1 LoC to function), hackability (again, Spring MVC, allowing your own impl of framework interfaces), having expert hackers as your targeted user base (others will follow their lead), etc.
Why not make something nifty which can be embedded in other sites like a application which can be integrated in facebook? Of course add something like "Made with FrameworkX" and a link to your site :-)
Explain clearly why the world needs your framework.
What are its main benefits over using Framework A,B or C?
Take your main 3 competitors and make comparisons. If your points are good enough, and your documentation is strong enough you will persuade people to switch.
Make it good (clean code, easy to use, well documented, tutorials, at least in some sense better then other frameworks)
Make it nice (Professional, modern looking website; Nice looking examples)
Make it cool (have something that attracts geeks. They are early adopters and talk about what they do. If you can convince a bunch of those this would be a great plus)
Be responsive. Make sure that you know what people are talking about it. Make sure they can reach you via e-mail, twitter and a forum. Make sure you hear about it, when people talk about it anywhere else on the web (google alerts)
Make it possible for people to contribute and to get involved.
No the strengths and the weaknesses of your framework.
Make something cool out of it. Just build a game changer like twitter using the framework.
Promote it (stackoverflow, twitter, blog, conferences, slideshare) but do it in an honest way. If it looks like an ad, everybody will do what everybody does with ads: ignore it. But if it is interesting, and solves a problem well. People will listen.
I'm sorry, but your question is wrong. If you have to ask it, you're probably not ready to create a web framework. I don't want to be negative, so I'll phrase my advice in the positive:
You should have experience with or understand all of the web frameworks that have been developed. The web isn't so old, so this is still practical to do. Understand and learn to use everything from Perl/CGI to Twisted to Rails.
You should also have good understanding of framework design. This is an entire area unto itself. As a fundament, you would understand Design Patterns, and then through experience you'd know how to enable flexibility, expandability and ease of use. You'd have studied other frameworks --- MFC, Swing, STL --- and see their advantages and drawbacks.
Here's why this is all important: Ruby on Rails wraps up most of the best practices of software development we've discovered over the past 20 years. A huge factor in Rails' success is that its authors understood what worked and what didn't in the past.
These are just a few clues.
I would like to see tutorials, code samples, and a nice API documentation. I choose libraries and frameworks based on the documentation first. Features are my second concern. After all what are features good for if I don't understand how to make it work?
Don't forget the screencasts :)
精彩评论