Open source frameworks create 'super' web-based apps

No readers like this yet.
Consumer Financial Protection Bureau on open source and "growing the pie"

Opensource.com

If you wanted to assemble the world’s finest fruit basket, you wouldn’t pick all your produce from the same orchard. You would gather the best from multiple sources: Washington apples, oranges from Florida, and pineapples from Hawaii.

Applying the same philosophy, many programmers and developers are now combining the best coding from multiple open source Web Application Frameworks (WAF) in order to create their own custom-made websites, content management systems (CMS), and other web-based apps and services. Call it cherry picking at its finest.

These "chimera" applications, in essence possessing the DNA of more than one WAF, represent a popular alternative to using proprietary coding or even an open source CMS to program one’s web-based app or website.

Fewer restrictions

There are three universal keys behind the open source WAF movement: better control and customization, lack of overhead, and interoperability with other open source software.

Developers who prefer not to comprehensively code all aspects of their product may be perfectly comfortable using proprietary software to create their web-based product. However, this shortcut comes with a price: a lack of freedom to customize these pre-programmed solutions and the overhead involved in changing whatever actually can be modified. This is true even of a free, open source CMS, which saves on costs but still is regimented in its application structure and how it operates.

On the other hand, open source WAFs, such as the recently launched PHP-based Joomla Framework, allow programmers more finely tuned control of their websites or web-based applications. This allows them to refine, tweak, and reconfigure while still leveraging the framework’s tools.

But perhaps the most exciting trend in this space is the ability of developers to actually combine individual tools or coding from multiple open source frameworks or libraries (provided they operate in the same language) in order to create and optimize a hybrid solution that best meets the programmer’s objectives.

For instance, as a developer, one might leverage application and router packages from Joomla, session management capabilities from fellow WAF provider, Symfony, a database package from another competing provider like Doctrine, and a logging solution from yet another, perhaps Monolog. Not only does the programmer avoid spending laborious hours writing code for these processes, but also these packages all seamlessly work together, despite originating from different sources.

In fact, certain PHP-based open source framework providers who also offer content management systems—this includes major players Joomla and Drupal—are either beginning to or plan to adopt and incorporate code from other PHP-based frameworks. Doing so will allow them to build a better all-around product to offer users.

Learning from the open source community

The large-scale interoperability of open source WAFs has led to an array of integration success stories. For instance, Joomla recently became the first PHP language-based framework provider to provide code that allows users to connect with the API (application programming interface) of web-based hosting solution GitHub.

Among the great advantages to leveraging open source frameworks is the knowledge and skill sets developers can glean simply by studying their coding and learning how programmers implemented different bits and pieces to create their final product.

It’s also important to observe how support from the open source community makes such web-based apps and services possible. Nothing is proprietary here—there is no "secret sauce" that can’t be shared.

It’s this kind of collaborative environment that fosters creativity and innovation among today’s programmers—more and more of whom are leveraging best-of-breed solutions while freeing themselves of the constraints of closed-source solutions and traditional open source CMSs.

Such progress calls for a celebratory fruit basket… as long as the contents inside are the best of the best and ripe for the picking.

 

Tags
User profile image.
Michael Babker is a veteran of the Information Technology industry who brings over 15 years of knowledge and experience to the table. After finding a passion for building with and contributing to open source, he has transitioned to and works primarily in a web developer role.

8 Comments

Thanks for sharing your insight, and knowledge, on web application frameworks Michael. Great read!

Great article Michael. Hybrid approach has huge benefits when it comes to saving time and using the best solution. Solutions based on integration of the most preferable features are usually higher in quality and efficient in use.

I couldn't agree more, Aseem. The benefits to me are too numerous to even try to count. At the end of the day, it's great to be able to work on top quality projects and focus on my own requirements without needing to write my own session handlers or database integration classes.

Just my two cents:
To me the thought is both exciting and scary - as an engineer I am excited by the possibilities this opens up. But I can see a purely business person see technology they don't understand and therefore costs.

Hi Nabeel,

So to address the business people, one of my selling points would probably deal with how more of their investment will go into their product specific requirements versus being required to lay the infrastructure down myself. Pulling in Symfony's code to handle my sessions leaves me with just needing to integrate it into my stack versus needing to write my own code, for example. From a maintenance perspective, there's some added time requirements in that you would need to monitor those projects' activity and keep up with updates as needed. So to me, there's a bit less cost in the startup of the project but potentially a bit more in the maintenance aspect.

Should this approach give one hope for improved content?

In what ways do you mean improved content?

In building applications, I try to be aware of what type of content the application will be serving, but most of my PHP based code doesn't change to adapt for content. I find the content piece being focused on more at the template level in my work with how it's displayed and how whoever will be working with the content manages it.

Probably the yearnings of an old timer. Belief that a writer is more apt to produce "the great American novel" if he or she doesn't have to be concerned about the process of paper making.

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.