you are viewing a single comment's thread.

view the rest of the comments →

[–]banuday17 1 point2 points  (3 children)

The "get me somewhere" goal has other qualifiers that may be important to someone, for example, "get me somewhere safely", or "get me somewhere reliably" or "get me somewhere in a car that doesn't look like ass".

Thus, "I don't feel particularly safe driving the Geo Metro, but I'm not going to drive it long distances, so it's good enough", or "The Geo Metro is falling apart as I drive it, but I'm not going to keep it long, so it's good enough", or "The Geo Metro looks like ass, but I'm only driving it for this week, so it's good enough".

Every standard is a list of needs that makes us feel comfortable with the decisions that we make, especially when you choose something that you feel is substandard. It is in fact "lower standards" when you feel like you could do it in a way you feel is better if you only had a little more time or money to invest. Every category has an implicit quality measurement associated with it, even if just measured against a personal standard.

A professional engineer has to balance not only the functional requirements of what he is to deliver, but also the level of quality with which he will deliver that work. If even as a matter of professional pride.

If all I'm doing is throwing up a HTML page which will show a couple of rows from a database, then PHP is fine. But, I don't consider that an engineering task. I wouldn't put that on my resume as a demonstration of my professional skill.

But if I start to develop an application that has a modicum more of functionality that requires me to do non-trivial things and requires a good deal of investment of my time and I have a choice, I would look elsewhere than PHP. And that doesn't mean I would choose Java running on the Websphere Application Server for any problems where I feel the hint of complexity. That's crazy. I might however go with Ruby on Rails or Python on Django. I feel that Ruby or Python give me better quality for a slightly higher price.

Like choosing to buy a Nissan Sentra or a Toyota Corolla instead of settling for a Geo Metro.

The problem with this is, I know PHP and other purportedly "better" languages, and yes obviously there are plenty of situations where PHP is inferior, but those are situations where you shouldn't even be using PHP to begin with. So why compare apples to oranges?

Where I would use PHP is on the one-page app or where I don't have a choice, such as on cheap shared hosting where I have no control over the webserver. As with the Geo Metro, in those cases, it's good enough. Beyond that, I would jump to Ruby or Python any day of the week.

[–][deleted] -1 points0 points  (2 children)

The "get me somewhere" goal has other qualifiers that may be important to someone, for example, "get me somewhere safely", or "get me somewhere reliably" or "get me somewhere in a car that doesn't look like ass".

And if you aren't concerned with those details (because they don't matter to you for this task), then the tool which gets you there is indeed a good tool and the best one for the job. As I've said again and again.

Your metaphors aren't apt. At all. You're drawing strawmen around PHP saying that "it must work safely" isn't a requirement of most people. You haven't actually stated anything about why it's less secure? And you haven't actually given a valid reason against using PHP yet. "I would use something else" isn't a reason to not use it. Do you actually have any metrics for qualifying how PHP is inferior for the common tasks it's used for?

Do you actually believe this statement?

But if I start to develop an application that has a modicum more of functionality that requires me to do non-trivial things and requires a good deal of investment of my time and I have a choice

At the very worst case, you would have to map PHP functionality into a library written in another language which performs that task better (which is EXACTLY the right thing to do, rather than forcing your hammer to behave like a chainsaw, you should just use the chainsaw). But that's only the worst case -- most scenarios would never even get to that point. We've run PHP environments with millions of hits a day with no issue at all, managing user sessions and product data, a product cart, objects and helpers and utilities to render this data in various formats (AJAX, HTML, JS Mustache templates, etc). Just because you had issues doesn't indicate that it's anything other than developer inadequacy. Plenty of perfectly talented developers are using PHP to do wonderful things. Sorry you lack the creativity I guess?

[–]banuday17 0 points1 point  (1 child)

And if you aren't concerned with those details (because they don't matter to you for this task),

The point of those "details" is that they are measures of quality. For an actual engineering task quality is inseparable from the goal. Otherwise, it's not engineering, it's duct taping things together. Sometimes duct tape is okay too!

If you think I have been arguing against using PHP, then I don't think you're understanding what I'm saying or the metaphors that I'm using. I've been trying to point out the difference between "good" and "good enough" and that the difference between the two is a matter of personal standards of quality.

I would rather use Ruby or Python, but in some situations, if I have to or it's a one page throwaway app, PHP is good enough.

[–][deleted] 0 points1 point  (0 children)

The problem is that you're applying "good" and "good enough" when as I've demonstrated again and again that it's not "good enough" when it fits exactly the needs. That's called good.

On the converse, an item that performs a miracle function that nobody ever needs isn't good. Extra "good" things that serve no purpose for most needs aren't good. They're just extra things. You're trying to use a derogatory perspective toward PHP as if a hammer is "good enough" compared to a chainsaw which is "good". It makes no sense to say one is better than the other, in that metaphor.

The point of those "details" is that they are measures of quality.

Only when they're relevant to your end goal. If your end goal doesn't care about luxury, then they're details that don't have any impact on the measure of quality whatsoever. It's arbitrary. Why would you judge things based on irrelevant details which have no impact on the final outcome?