thar be Framewarks hyar?

this weekend I was in a limbo, bouncing in-between coding and studying for my final, which I aced thank you… All of the work I put into the event system back in the day was finally brought to fruition, allowing me to build an entire module in only an hour. The OOP module system that I put together, while far from flawless, has more than served its purpose in speeding up my development and allowing me to stay true to the charges I had made back in December. The question is, when will I be done with Audrey, or more so, when will she be done with me?

If you would have asked me back in January what the hold up was I probably would have told you that it was time, or some mix of time and finding the help to get the project moving. I was absolutely convinced at one point that I would never be able to release the app, teetering only an inch away from killing it completely. Hind sight, being what it is, has allowed me to put things into better perspective, and realize that it was me holding myself back, and I wouldn’t be surprised if it were not the first time either. Allow me to explain in better detail.

Development of applications is less science than it is art, especially when you are doing ground up development. I easily could have built the application in a number of days and been done with it, if I were to have changed my audience and ignored the fact that I was trying to expand my understanding open source PHP work. I was committed to opening a door into the dreaded open field of frameworks and as I sit here thinking about it I am reminded of Chappelle’s show episode, if the internet were a real place, with Dave walking through a mall and being bumped into by a “Sleazy internet guy” who represents the spam that we have all grown to loathe.

Sleazy Internet Guy: Hey buddy, I can make your penis large and fat.
Dave: No thanks.
Guy: It’s all natural my friend – he’s a doctor.
New guy: I’m a doctor.
Dave: You a doctor?
Doctor: Fuck yeah!!!!

It may amaze you that I compare the many frameworks that are so useful to spam, but for those of you who know me, you may find it incredibly accurate to my perspective on much that is the interwebs. I don’t support any one framework, for one reason more than any other – They make it very easy for people to try to cut corners. I have used QCodo, one of the most inspirational that i have used in terms of features and ease of use, CakePHP, basically PHP on rails whatever the hell that is, and a number of others before I came to the conclusion they are all flawed. Too many people have come to believe that they have the answer, and too many others think that they could tweak a framework just a little and they will be able to make it “better,” when in actuality they are making it harder for all of us to be plain Jane developers.

When I began with GneuManager, I had a generous vision of it being useful to the lay person, go figure. I went through a number of other project management applications to see how they were running things, and what they chose to have driving their applications. It really surprised me at the amount of dependency some people are attaching to their projects currently, but at the same time it doesn’t. Dependency has many pros, but there are cons as well, and they shouldn’t be minimized in any fashion. For instance, let’s say I put my time and effort into building my application using QCodo and finally finish it, release and allow everyone on the planet to use it. Hypothetically speaking, of course, there is a bug in the QCodo system that allows a user to say input a string into a numerical field. Seems small, yes, but because the QCodo code is there to error check automatically, I failed to worry about doing so in my own code. Dependencies issues propagate through applications, like wild fire, and I am no fireman. And I assure you that I am not the only person who has found this to be true, but I have worked with a number of PHP developers and the ones who are framework dependant are often left at odds when they run into a situation where their framework doesn’t help.

The point is, if you take the time to interweave a framework into your applications you are bound to find that there are parts of it that don’t do exactly what you would like it to. Although this is not as large a problem as it once was, since most popular languages are now moving towards OOP and allow inheritance, it is still extremely important to keep in mind before you jump into your next application and get paired with someone who is convinced their new framework is the end all be all of frameworks, because chances are… it’s not.

Most PHP servers tend to have PEAR installed, but many don’t, infact my webhost doesn’t. Hell I had to fight to find out how to set up PHP 5. That rules out my ability to use any of the super cool Pear classes, which don’t get updated on most sites. I took to building my own system, in order to minimize my dependency and make sure that when my app gets released it doesn’t just get release, but that it actually gets used. Project Management is often driven by folks with sub par understanding of technical aspects of running a development teams. This issue is compounded by the abundant sources of open source projects running around with paper and pencil to do lists, only kept by the leader and was part of the inspiration for this application.

This weekend was brought to a close with my system, debuted here, being proven to be successful. So far it looks like all the time I spent planning it and making sure it works as I need it to has afforded me some considerable time now that I would otherwise have to spend staring at code and probably crying or pulling my hair out.

Sigh – Audrey is on her way, and I plan to release a few of her parts separately, and keep them going as smaller projects to incite a bit of a riot. I assure you that there are a number of things that are going to come about in the next couple weeks, and with Mikey AWOL again, I am back trudging though the mud. Lets hope it pays off.