Blog

My language is better then yours … (Part 2)

Jim decided to respond to my post regarding language vs. language debates, specifically looking at PHP and Ruby / Ruby on Rails. He makes some good points, but there is some stuff that I’d like to respond to and clarify…

To say that one language is better than the other is meaningless. Better in what way? The question should always be asked in a particular context.

I definitely agree, in general, I’m just tired of language vs. language debates … more on that in a moment.

I don’t want to talk about the ads, though, because they have their own agenda and it certainly doesn’t match mine.

Works for me, but keep in mind that most of my original post was working towards making the point that the video’s were doing an apples to oranges comparison of PHP (minus framework) to Ruby on Rails. Jeremy and I disagreed on the validity of this comparison.

For me, that’s why I am using open-source tools in the first place.

For me, the bulk of my language preference comes from language philosophy.

but for my tastes, I appreciate the additional power that Ruby metaprogramming allows.

These are some key points that I can agree with, but again, more on that in a moment…

PHP =~ COBOL is not an analogy I would make, but at the same time I’d urge you to consider your claim “You’ll always be taking over a Java project or a .NET project or a PHP project” in light of COBOL, or FORTRAN, or VAX or any other platform that’s been a dominant success in the past. Current popularity is no guarantee of future popularity. In our industry, better mousetraps are ruthlessly adopted.

I totally agree, as I even said, I can see PHP going by the wayside one day, but today is not that day, and I still believe it’s extremely premature to be concerning myself with but so much. It seemed Jeremy was arguing that Ruby on Rails projects are more easily taken over, so my counterpoint was simply that RoR, like any other language, is not likely to be so widely adopted that his point would ever really become something you could rely on. Just to be sure I’m clear, I’m saying that it is unlikely that RoR will become so widespread that you can count on commonly taking over other RoR projects. This is not me slamming RoR, the same statement could be made in the direction of PHP, .NET, etc. You’ll always be taking over projects built on other platforms. Even as a PHP developer I experience this commonly. Just the other day I had to take over a .NET project and we chose to redo it in PHP for various reasons. I hope that’s clear, and if it’s not I wish someone would ask the questions I need to answer to make it clear.

If your focus, like in your last paragraph, is only on user experience (by which I think you mean developer experience), then language preference may truly not matter. But if your focus as a developer is on avoiding future “forced” language changes, then it might make more sense to attempt to determine which new technologies might eventually usurp the old. My claim is that Ruby and Rails are better positioned to do so that PHP and its framework set.

Ok, finally to the point I kept putting off above. I actually was not speaking of developer experience. I was speaking of end-user experience, the folks that visit our websites. THEIR experience is what matters in the end. PHP, RoR, .NET, etc are all capable of providing similar, if not identical user experiences. So if I prefer to provide that user experience with PHP, using mainly procedural based programming, then why not? If you want to do so with RoR, or any other platform, then more power to you. As you indicated, there are things about RoR that make you prefer it over PHP. I see no problem with that. But to say those ways are better then mine, if achieving a particular user experience is the ultimate measure, is sort of pointless, unless you disagree that the languages are capable of producing similar/identical experiences.

I also want to comment on the fact that it seems in these conversations I keep getting pegged as being resistant to change, not eager to learn new languages, etc. To be blunt, it’s pissing me off. I’ve lost count of the languages that at some point I’ve been well-versed in, let alone the languages I’ve “dabbled” in. Just because I’m not actively learning RoR at the moment, does not mean that I think PHP is Gods gift to programming nor does it mean that I am resistant to new languages as a whole. PHP has its flaws. One day it will be replaced (just like .NET, RoR, and even Java) but I don’t think that day is tomorrow or the day after, so I don’t feel pressure to move on yet. I think RoR is doing some great things for the development community as a whole. Some things I see in RoR, I adopt in PHP. That kind of thing is good for all of us. But again, just because I don’t choose to use RoR, doesn’t mean that if something else came along I wouldn’t take the time to consider how it might could benefit me. At some point I’m sure I’ll re-assess RoR, and who knows, maybe I’ll dive in. Right now, it just doesn’t make sense for me to.

5 Responses

  1. Thanks for taking the time to respond to Jim’s post. I feel like he was much more precise in his argument than I in mine. We’re starting to narrow down the scope of our disagreement, I think, which is helpful.

    The only thing I really think we’re not seeing eye-to-eye on is this developer experience vs. end user experience thing. Because Rails is so well suited to Agile / XP development methodlogies, it’s important to stress that Rails gives developers tools to better satisfy the ***client*** – who may or may not be the end user. The framework does a lot of the heavy lifting in ensuring that functionality can be rolled out quickly, and the language gives programmers the expressiveness to represent ideas succinctly and legibly.

    Now, if you’re a startup trying to launch a web app product and gain customers / users, then yes – end user experience matters most, and however you get to end user satisfaction is legitimate (though we can talk about time to market issues). However, if your success is not going to be determined by end users, but rather by a third party paying for the work, then the ability to deliver value quickly and flexibly matters. Rails reduces the effort involved in iteratively rolling out features that elicit feedback from stakeholders.

    Now, there’s no doubt that frameworks exist in which one can do very similar stuff in PHP. But the fact remains that PHP is not usually the tool chosen to engage in this type of development methodology. Why is that? It may not be something innate in the language, but it appears to be something innate in the way programmers approach the language.

    You may be an exception to this rule, but that’s no basis for not generalizing about how a language is used in the real world. Since languages and frameworks are developed for more than one programmer, it’s important to look not only at what these tools are capable of, but how they’re usually used. And PHP is usually used to do quick, dirty applications. Rails, on the other hand, is used to create much better structured applications – not because the programmers are better, but because the tools are better suited to the typical job.

    We talk about better or worse individual programmers, but languages and frameworks are developed with real life programmers in mind. They should be judged by how they’re usually used, not what they’re capable of. That Ruby and Rails are realizing some awesome features and building a community that understands them speaks to the viability of the tool. It’s at least worth investigating.

    Of course, you personally are welcome to use whatever tool you want. And part of the problem we’re having here, I think, is that you are taking it VERY personally, with us saying that because we think a tool is generally better suited to its intended application than your tool of choice, that that reflects on you somehow.

    No. It reflects on the general state of the developer community and which tools, over the aggregate, best suit programmers in general to web application development projects in general. Of course, the particulars of the situation apply, and comparisons can be made on the basis of a certain application or project, but that’s beyond the scope of the conversation were currently having.

  2. Honestly, I think a lot of our problem here is that you’re assuming I am taking it personally. The only time I really take it personally is when there is some sort of assertion or implication that I’m being close-minded, which is a personal attack, so responding personally doesn’t seem unjust. I remember at some point you mentioned that you would bring up “I found out how to do x in RoR” and I might mention later “I found out how to do x in PHP.” I’m not saying it because of some “oh my god I need to show PHP can keep pace with RoR!@#” thought in my head. I’m trying to connect with you on the methodology so we can talk about that, instead of worrying about which language we’re both programming in independent of each other.
    I mean, if you, or Jim, or anyone, were to say RoR is better then PHP. I would step in to defend PHP. But not for personal reasons, but because I think you’d be wrong. I don’t think either language is really better then the other, so neither should be placed above the other.
    The fact remains, I believe the end-user experience is what really matters. Clients desires, when the client isn’t the end-user/visitor, are another facet of an already complex discussion. One that I feel we don’t really need to enter into in order to finish, or have, the discussion we’re having.
    And just because it continues to glare at me even after I’ve basically finished this comment …

    “PHP is usually used to do quick, dirty applications.”

    Sorry … I didn’t realize that flickr, facebook, digg, wikipedia, etc were quick and dirty applications.

  3. Sorry … I didn’t realize that flickr, facebook, digg, wikipedia, etc were quick and dirty applications.

    I didn’t mean to imply that there aren’t some very good PHP apps out there… obviously WordPress gets a very high approval rating from me, and my favorite Web 2.0 site, Etsy, is a great PHP example.

    I just meant to say that a lot of the bad apps out there are in PHP, to say nothing of the custom sites.

  4. My point was just that while I’m willing to make some generalizations here, php being typically used for quick and dirty applications is not one of them.