As the saying goes, “Just because you can do something doesn’t mean you should.” But in the world of programming, stretching boundaries is just part of the fun. The PHP community has never been one to shy away from bending their favorite language more ways than a shopping mall pretzel, and as the ten wild projects introduced in this article indicate, the fervor for experimentation is as strong as ever!
A few years ago Neal Ford penned a blog post that to this day has had a major impact on the way I think about programming. The post, titled “Polyglot programming,” promoted the idea that using multiple languages to power a web application will actually decrease rather than increase its complexity because you’ll be able to selectively use each language to implement features that would be hard to implement in other languages.
Enter Quercus, a 100% Java implementation of the PHP 5 language. This implementation opens up a whole new world of possibilities for both PHP and Java developers, allowing PHP developers to take advantage of technologies such as Hibernate and Spring, while giving Java developers the opportunity to use PHP’s vast assortment of extensions such as SimpleXML and PDF.
Check out the impressive number of functions php.js has already implemented to get a feel for just how much work has gone into this project.
The 2008 release of Stack Overflow surprised developers around the world by reinventing the age-old discussion forum. The site and the many network websites that have launched via the StackExchange service have rapidly risen through the ranks to sit among the most highly trafficked in the world.
With success comes imitation, and we’ve seen a number of Stack Overflow clones implemented in a variety of languages during the past two years. One of the most interesting PHP-specific implementations is Anant Garg’s Qwench, a self-proclaimed “PHP StackOverflow Clone.”
Although apparently functional (see this demo), it doesn’t appear as if Anant has worked on Qwench in recent months. However, because it’s hosted on GitHub maybe another contributor will help kickstart the project anew!
Whether you’re an open source user or contributor, chances are you’ve spent a fair amount of time chatting with others over IRC. Because of IRC’s popularity, developers have written a number of “bots” capable of programmatically responding to IRC-initiated events. For instance, bots have been created as AI experiments, gaming partners and chat room facilitators.
If you’re looking for a PHP-driven IRC bot, check out Phergie, a recently launched project that has been under rapid development for the past several months and has recently become part of Luke Fitzgerald’s Google Summer of Code project. Check out Phergie’s GitHub repository to download the code and monitor progress.
As we all know, vi won the Editor Wars years ago. If you’re a member of this victorious party, check out vim-debug, an integrated debugging environment that integrates with xdebug to create an even more powerful PHP development environment than has already long been offered by vim (see Andrei Zmievski’s great presentation VIM for PHP Programmers if you’d like to learn more about what’s possible).
I’ve long envied the Interactive Ruby Shell, which provides a great way to quickly experiment with Ruby code. It appears as if Geoffrey Bachelet has taken a giant step towards implementing a similar solution for PHP developers thanks to his release of PHPInteractiveShell. Although it appears as if development has slowed in recent months, hopefully other users will pick up the ball and run with what looks like a great start on a promising new project!
PHP users have historically been a rather independent bunch, and these ten wild projects indicate that over the years that mindset hasn’t disappeared. Are you working on a wild PHP project, or know of one not mentioned here? Tell us about it in the comments!
About the Author
Jason Gilmore is founder of WJGilmore.com. He also is the author of several popular books, including “Easy PHP Websites with the Zend Framework”, “Easy PayPal with PHP”, and “Beginning PHP and MySQL, Third Edition”.