Programming - Why I like to Reinvent the Wheel
The programming academia has been waging a war against ‘Reinventing the Wheel’ for many years. Within recent years, a plethora of ‘rapid application design frameworks’ (such as Cake, The Zend Framework and RADICORE) have emerged to help the PHP developer to get things done quicker. There is a lot of ‘buzz’ about them.
But, why do programmers, like myself, keep on writing new code to solve age-old programming problems?
I believe its because some programmers are artists. They are creative people who prefer to spend their time ‘creating things’ rather than reading instruction manuals on ‘how to create things’.
Also, one man’s application framework is another man’s straight-jacket.
Perhaps I’m a bit jaded after having failed to get to grips with the Zend Framework’s Front Controller system despite investing a good few weeks into learning all about it. (Having said that, I should mention that its not a problem with the framework, its a problem with me.)
I lost interest in the Zend Front Controller because it seemed to be forcing me to spend far too much time planning the application before I started making it. I may be stuck in a procedural rut, but I prefer to programme code in more of a ‘free form’ style. Planning is good, but it shouldn’t take over the whole of the project.
Furthermore, the restrictions of using someone else’s framework just don’t feel right. I was battling with it. Spending, precious, time trying to fit my vision of an application into the framework designers’ vision of how an application should be structured.
(Whilst deliberating my creative methodology I thought of Richard Williams’ comments in his book ‘The Animator’s Survival Kit’ -page 61)*
Lets compare web development with animation. Just because someone else has created an animated walk before, and that’s a very time consuming thing to do, it does not mean that all animators should use that walk instead of their own. You could use Poser, an animation tool, to help the process. But, the fundamental essence of an animated walk is directly related to its framework.
So, I have decided to give up trying to use other people’s frameworks. I’m going to steel their ideas and make my own version of ‘the wheel’.
My way forward:
- Plan what I want to do
- Do it until I realise I’m repeating myself
- Adapt my framework to help me to reduce repetition and increase efficiency
- Do it more
[As I read over this rant - i see i lost site of the point - perhaps one day i’ll come back and edit it to force it to make sense!]
* Foot note:
The Animator’s Survival Kit:
There are many similarities between creating a website and creating an animation. Both processes involve a lot of painstaking work to create a fleeting dynamic experience for the end user. An animation can be created using the ‘Straight Ahead’ method - e.g just start drawing and see what happens. This style looks amazing. But, if you actually want a team of people to work together to tell a coherent story (giving characters ‘weight’ and ‘life’), you have to plan it using the ‘Pose to Pose’ method. The timing and pacing of a Tom and Jerry cartoon was definitely not a product of laissez fair animation! Good animation is a combination of both methods - plan the key frames and free form the frames between them (the inbetweenies).