Today I wanted to write an essay titled Build like its 2013, because 2013-2014 when I had my most prolific creative output. However, looking back on what I built that year, I saw that some “simple” things needed to be updated, for example, Shape Type was not working on touch devices.
It seemed that the only thing I needed to do was to update Raphaël, but this caused a host of other problems, basically updating the library broke my hacks. I begun chipping away at fixing it, first undoing the update, and then trying to fix the problem with the least amount of changes possible, but I couldn’t do it, because the problem was at the library level, and upgrading Raphaël for proper drag support on touch devices was needed.
Oh boy! So I waded through my 650 line single function which drives the entire game, originally written in coffeeScript. Now I’m dealing transpiled code (which is readable enough) because I don’t have the original .coffee
file, and to tell the truth, even if I had it I wouldn’t touch it with a ten feet pole.
I considered restructuring the entire thing, because at the time I created this, I had no idea what I was doing. Hell, I still have no idea of what I’m doing, but nowadays I can write code in a much more maintainable way. But it’s a huge undertaking, not worth doing at this time. Rewriting this game would take me almost as much time as writing a new one.
But I did advance a bit, and I see that if I chip away on my afternoons on this, in two days I may have a working version on mobile without a major refactor. Is it worth it? If I can make it work on mobile, yes, many young students now have phones, let’s give them some love.
So in closing thoughts, I come to ponder if I should really code like it was 2013. The answer seems to be: yes, not in technique but in spirit: create without much regard for all the boring details. It is better to put anything out there, no matter how imperfect, than it to end in the graveyard because you cannot bring yourself to cease being such a perfectionist.