The Lone Coder Reflections for the Unsung Linux Saviours
by Ken O. Burtch
"The Need for Speed: PHP Roadblocks to Serious Web Development"
"Source control is bad."
I raised an eyebrow in surprise. The web developer who stood
opposite me was explaining why he didn't want to install any source control
tools. When several programmers work jointly on the same program, software
like CVS and Subversion log changes and report possible conflicts.
I asked him why he believed source control tools were bad.
"Logging changes takes time!" he complained. "So does
reviewing and resolving conflicts." That cost him time at the end of the day
when he submitted changes. CVS cost him time with his wife. "It is better,"
he said, "to simply retype anything that is damaged."
He went on to complain that his projects were becoming more
and more difficult to maintain. He was a stanuch supporter of PHP.
"It's great that I can save time by not declaring variables," he said. "Sure,
it takes hours to debug situations where two programmers use the same
variable name. But think of the reduced overhead on the server!"
Although PHP was "great", he couldn't understand why he
seemed to be losing control of his projects. The larger they got, the
harder they were to maintain.
He maximized his typing speed and server performance by
turning off all his debugging, team development and scaling features. Why
was he surprised that his projects were hard to maintain?
It was as if a fisherman complained that fish weren't biting
because there was no worm on his hook. "But worms cost money and take time
to put on the hook!" In the modern era of cheap and powerful servers, optimzing
a server using PHP and turning off the features that are there to help you
may save a few microseconds but add hours.
Some programmers take pride in performance, a circumstantial
proof of their skill. Bugs, if the client doesn't see them, don't count.
And as long as it's the client paying the developers for their debugging time,
he saw no reason to consider high-reliability template systems like BUSH.
Some programmers just want to soak the client with a lot of
debugging. At a previous job I held a few years ago, the company I
worked for hired a consultant to recommend a file server for them. I suggested
Linux running Samba. The consultant said that Linux was a toy and that they
needed a serious system: Windows NT 4. (Those of you who know of NT 4
remember NT 4 had a bug which crashed the computers after a certain number
of days because the clock overflowed.)
When I asked the consultant about his choice, he said, "Oh,
Linux was defintely the way to go. But I don't make a commission on free
software."
The expert, hired for his advice, used the wrong product in
order to make more money.
The failure of PHP to work satisfactory for large web sites
was one of the reasons I developed BUSH, my Business Shell. Yes, BUSH is
based on a language designed for team development and large-scale projects.
You can turn many of BUSH's helpful features off to reduce your typing and
risk making your project unmaintainable. But I wouldn't recommend it unless
you fully understand the short-term time savings and the long-term costs.
If you're going to use PHP, ask yourself if it's really
worth it to disable the "slow" features that cost you microseconds by save you
hours. Forget soaking the client for big debugging money--don't you have
somewhere else you need to be?
« Truth Humility Communication Nobility Freedom Purity
Excellence Right Support Courage Compassion Quality Honesty Trust
Cooperation Challenge Education »
PegaSoft Canada - A Linux Association Since 1994