Once in a while a new flame on this old war pops up to either put more wood on the fire or reveal all the childish behaviors on either faction’s evangelic sides.
The article in question is Derek Sivers: 7 reasons I switched back to PHP after 2 years on Rails.
After reading this article I was left with the feeling that something wasn’t completely right. This feeling endured until I found this post from Chris Hartjes: Rails Fan Boys Missed The Point.
Most of the conclusions that Chris sates in his post come to me has very well thought and quite along my way of interpreting what happened.
But I think that something more has to be said about that initial post from Mr. Sivers.
First of all, Mr. Sivers does not actually state any of the problems he encountered while recoding the CD Baby site.
He only mentions that he had problems, in a generic way. This alone is very dubious, prone to subjective assessments and flame wars. If he would be a tad more informative on the dilemmas he encountered, probably all this flame would be avoided.
But this leads to more speculation, like: did he understood the patterns behind RoR? Did he modeled his approach upon the “opinionated software” credo? Or was he only trying to port his own vision of the legacy application directly to a new paradigm?
These are questions that are not answered in his initial post, nor in the subsequent replies Mr. Sivers does to the comments left on the post.
One could get some hints from his original post to answer those questions but it would, in the end, be more speculation.
When one has the “balls” to enter such a flame war territory, one has to enter with powerful weapons. Those weapons would be more along the line of comparing apples with apples, not comparing the flavor of apples with the flavor of apples. Even worse: comparing the flavor of apples in a world where you have factions that are “taste blind” to some of those flavors!!
Second, Mr. Sivers looked like a person that was stuck in time (first version of his app) and suddenly had the urge to jump to the present (recoding of his app).
The post is a complete lack on the initial decisions that Mr. Sivers took in order to plan his approach to the task he was about to initiate. This either reveals that he had no strategy, or even worse, that his strategy was not worthy of mentioning since it was completely clear in his mind. Why is the later worse? Well, if the whole process of migration was locked inside his head, how could ANY developer tackle the task at hand with just a blank map as a beginning? I’m sure that Mr. Sivers did give some helpful guidelines to initiate the migration. Now, where those guidelines of any help to the programmer? Dunno
I’ve had a very bad experience in the past where I was coding a Delphi application to administer a back-office of a B2B web site that was of my making. It was not the PHP behind the B2B site. It was not the Delphi application. It was not the MySQL database that persisted the data and served has a channel between the Delphi app and the site. It was the HUMAN that was telling me how he wanted both things to work that was my problem. Ultimately I had a good help from another human that had a foot in both sides of the argument. He was a former programmer and was, at the moment, one of the team mates of said HUMAN, giving him the ability to translate what I was talking about to the HUMAN and vice-versa. This resulted in a very productive three-some and the product was finalized and shipped. Uffff.
All this to illustrate that lack of planning, or lack of communication could be at the core of this failure. Not the mighty “apple flavor vs apple flavor” of the month.
Third and last. Mr. Sivers mentions that he has learned a lot from the RoR way of thinking and was able to port the application applying those principles.
This for me, is the most intriguing of all the statements comprised on that post. Why? Simply put: if one understands a principle, let’s says the principle of throwing a rock, isn’t that person able to apply the same principle to another rock? Well if this is true why did Mr. Sivers apply the principle to something else than a rock? Yes, if one can extrapolate from a rock, one can throw any other object, but does this mean that you loose the ability to throw a rock?
To no confusion: if Mr. Sivers was able to extrapolate the ideas behind RoR and apply them to PHP, what really prevented him to have success on his first task?
Well, it really looks like demagogy as installed itself yet another time on an old discussion and I have already contributed enough to it.
Cheers,
Gustavo Carreno aka [Batch]