Pros and cons of making your application base publicly accessible

IntroductionHaving spent a significant amount of time working with third-party APIs, application libraries and lifeBLUE's own internal PHP framework, I noticed several trends in terms of usability and improvability. Obviously adherence to programming standards, organization and quality of code are huge factors that come into play for these categories, but I wanted to focus on the idea of open-sourcing application frameworks and how it can make or break your software. In this entry I'll discuss the pros and cons of opening your source up to the community, and how you can manipulate community questions and solutions to improve upon your application model.

The Future Of FrameworksHaving an open-source solution is becoming a huge selling point for several applications, frameworks, and languages. Even Microsoft has considered open-sourcing C#, one of the strongest and most desirable web development languages available. Open-source projects arise from community demand for modular solutions, which are easily modifiable to one's particular needs. These open-source frameworks are then subject to extension which means they have to be developer friendly, or at least have a considerable amount of documentation and community backing for it to be successful. This requires additional documentation, coding consideration, and an active support presence. Seems like more work right? Sure there are sacrifices and drawbacks to having a successful open-source project, but you have to realize you are trying to appeal to a very specific target audience. The audience: web developers.

Popular DemandWhat is the most popular web development language around? Most would argue PHP. Is that because it has a widely accepted, well tested, extensive framework behind it? No, actually it's lacking in that department. Is it because it holds up to programming standards? No. If anything, it goes against a lot of them! So why then is it so popular?

First of all it's free. Second it's open-source. Being free makes sense, but how does being open-source contribute to its popularity? It's actually very simple when you look at it from the perspective of computer scientists. Extensibility and individuality! Give me another language library that provides just enough to do what I need and let me write the rest myself the way I want to write it.

The amount of time and effort it takes to understand PHP as a whole vs. C#.NET or Java is significantly less daunting, and most web applications require a mere fraction of the code present in an out-of-the-box .NET or Java install. The only drawback to this kind of thinking is that it puts a lot of responsibility on the consumer... or is this really a blessing in disguise?

E-SocialismHow you handle feedback is critical. Disregarding this free error and usability reporting is not only negligent on your part, but is also a slap in the face of your consumers. If you take the time and effort to make a well developed framework, make it public to the community, and take into consideration the feedback from that community, they will praise you and your product. Developers want to use your application because they know it works well and that they can rely on you and the rest of the community to continue improving upon the framework as well as answer their development questions. If anything, you will get free user testing from REAL end users with REAL business requirements. Obviously you can't implement every single feature or address every single request, but the idea is to pick and choose which items are deemed necessary by the community or coincide with your own business plans.

Popular, But Is It Profitable?Too many software development companies fall into the trap of thinking they can only make money by providing actual software solutions, yet there are free open-source projects that are obviously receiving funding from somewhere. Where does this money come from? Support plans, seminars, training sessions, donations, extension packages, consultant and development services, etc.

Stop thinking about how to sustain your business and start thinking as a community leader. You can focus on obtaining new users and businesses, retain fans and followers, and can more appropriately budget your business based on reliable, recurring income – not just the possibility of making a big sell.

Wrapping UpLastly, I would like to give kudos to my favorite open-source frameworks that have done a great job taking community feedback and delivering real, intelligent framework updates. If you are looking for good, potentially free software for your web project, I recommend you look up and consider some of the following open-source frameworks. No, they didn't pay me to pitch their product I just have a lot of respect for their work ethic and business direction, and therefore support their product. In addition I will give a rating on the learning curve necessary to use the product, 1 being simple and 10 being difficult.

Note: Before you decide to turn to these as your web solution let me assure you that in no way will these frameworks be a one-stop solution for most web projects. You will have to spend a significant amount of time just to learn the frameworks, let alone construct and develop your own designs, functionality, and interactive components. This is where you should look for an interactive agency (such as LifeBLUE Media), a web development group, or even a freelancer to do development work. The good thing is that if you can find a team or individual that understands these open-source frameworks you can save yourself a considerable amount of time, money, and effort while coming up with a better, more stable result.

Umbraco, 'the friendly cms'Learning Curve: 5 out of 10Umbraco is one of the leading ASP.NET content management systems out there. Having used it on numerous projects and having modified their source code myself, I can safely say that they have constructed a strong and versatile system that any competent developer can utilize to achieve a wide range of content delivery.

You still need to know the basics of web development including HTML, CSS and JavaScript. And if you are looking for any advanced functionality you will most likely need to know ASP.NET and take a little more time learning Umbraco's class library, which is well organized and takes what I would consider to be an appropriate amount of time to understand and utilize properly. They provide a large amount of online support, have lengthy yet pertinent documentation, and have a great forum for feedback, Q/A, and bug reporting. Not to mention...IT'S FREE!For more information visit - http://umbraco.org

jQuery, 'write less, do more'Learning Curve: 3 out of 10If you have been in web development for any extended period of time, you've probably run across the jQuery framework. jQuery and other similar frameworks are quickly redefining interactive web components in a staggering manner. Unfortunately for proponents of Flash, the power and flexibility of these client-side scripting libraries is leveling the playing field for web animation. In addition jQuery has strong yet simple AJAX functionality which is becoming a standard web technology for web applications. The open-source nature of jQuery has allowed for the development of numerous jQuery extensions and plugins, some of which we have worked with and developed ourselves. jQuery is also free and is a powerful resource for developers no matter what the project requires. You will still need to know basic JavaScript, and finding the exact behavior you desire may take a little bit of digging online, but every adopted function and/or plugin is well documented on jQuery's support website. If you can read it, you can implement it.For more information visit – http://jquery.com

Honorable Mention:Magento - Learning Curve: 7 out of 10Widely accepted PHP based ecommerce solution For more information visit - http://www.magentocommerce.com/