Understanding Circumstance

Posted: 2012-08-22
Tagged: kumbaya php

I have been working for years in this industry and I have never needed to do what you do. Therefore your opinion is obviously wrong.

Unless...

What is it you do as a developer? As I see it in web dev there are a few different types:

  • Hobbiest
  • Client Web Dev
  • Distributed Application Devs
  • Web App Developer (SaaS)
  • Corporate Dev

What do they all have in common? They're all using some sort of language to make some sort of system for somebody somewhere. That is about the last connecting factor that most of us developers actually share.

Now, if you're a web app developer who is working for yourself then you can literally use whatever you like. The crazy thing here is that most developers who are in a situation where they can use whatever system they like, often end up picking a specific tool and using it to death. This is ridiculous, as every developer should use the best tool for the job. If its a project that involves real-time chat then not using NodeJS with some SocketIO would be a huge oversight.

The web app developers are the kind of guys I expect to be the smartest, most well informed types out of the lot, but they often end up being the most elitist. "I've been using Ruby to build applications for the last 5 years, and it always works out well for me". Right, does that make it the right tool for the job EVERY time? I doubt it!

So we have the hobbyists. They just do whatever seems fun at the time, so lets discount them straight off the bat. They aren't being paid to make anything, so they can just kick around having fun with code. envy

We're only half way through the list. Who else is left? Client Web Devs. These guys (myself included for the last year or two) are some of the unluckiest buggers. Working for a client that EXPLICITLY requires PHP, or even a specific framework? You won't convince them to use Ruby, or Python, or Node, even if it does provide a better solution for the situation. You can try, but 9/10 they are already set, because their cousins nephew said that this one thing was better once. It probably means you're using WordPress for the job or something...

Even if you want to use PHP these bastard clients require you to use PHP 5.2, because they are on a shit old server that requires it. PHP 5.3 is awesome, supports Namespaces and all sorts of features that bring it into the correct century, but this client says "Nope, tough, you need to use PHP 5.2". In these situations I am OVER THE MOON that PHP frameworks still exist for PHP 5.2, like CodeIgniter and Kohana. If those guys had changed their requirements to be PHP 5.3 only I'd be screwed here. You wouldn't believe how many clients force PHP 5.2 on me, even if it's way out of date. Hell, I even know developers who have PHP 5.1 forced on them. It's horrendous, but it happens.

Despite these unfortunate paid developers, who need to make things work on old-school servers, you also have the distributed application developers. This is me too. Besides knowing that PHP 5.4 is obviously the best version of PHP to ever exist, I am stuck knowing that more than 70% of my users [for PyroCMS] are using PHP 5.3, and another 20% are on PHP 5.2. So, should I just tell 20% of my users to fuck off? No, I have to keep supporting them - for now at least. If I used PHP 5.3 I could use SO MANY COOL NEW THINGS, but I would also have to fire my part-time support developer. That doesn't sound worth it to me.

Then you have the corporate developers, who have to maintain whatever crazy system is already there. You would be scared by what percentage of the entire worlds financial systems run on Fortran and Cobalt. Are they going to replace it all with NodeJS just because its trendy? No, they are going to learn Fortran so they can maintain it, probably until the end of time. This stuff hasn't changed since the 70's so I doubt it will change next month.

The point I am trying to make in all of this, is that while you might have really strong opinions about what language, framework, version of the framework or version of the language you use, EVERYONE has a totally different situation to you. I have a different situation to many other CodeIgniter developers, and a very different situation to most PHP developers, so when I get to talking with my Ruby zealot buddies its amazing to me that they just don't understand why we use different tools. If you don't agree, consider their environment, their requirements and what they do for a job before you throw an opinion at their face.

I am really tired of short sighted people throwing around inexperienced opinons as fact on Reddit, IRC, Twitter, Email and Forums. Generally if you think somebody is an idiot for using whatever they do then think for a minute. It may well turn out that their situation is TOTALLY different to yours, because you probably have very little in common apart from the fact you are both web developers who both want to get shit done.

Comments

Gravatar
Nigel

2012-08-22

<0.02-cents-worth>
Now that's 100% true. You should bottle it and sell it Phil. End user couldn't give a flying fuck at a rolling donut what the app is written in - with - on.
At the end of the day you're rendering html, who gives a fuck how you got there as long as it works.
</0.02-cents-worth>

Gravatar
Mike Murko

2012-08-22

Throwing myself in with the SaaS group there, so I don't have a lot to complain about. I heavily use CodeIgniter as part of my work, but have started factoring code out of it to use more 5.3 features (i.e. my models are all just namespaced PHP classes with SPL autoloading). But to start with, CodeIgniter was my dream MVC framework.

For your clients who demand specific versions of PHP, why can you not just use old versions of libraries? Let's assume in the next version, CI moves to minimum 5.3 support ... you could still use CI version 2.1.1 on future projects that stubbornly demand to be stuck in old versions? Is it security concerns? A lot of software projects maintain old releases with security updates until the point they become unsupported. I guess this increases demand on development and support resources.

That 20% of people you talk about ... heck, they can use the old versions of PyroCMS! No need to tell them to fuck off - but they can upgrade if they want to use the new stuff. It depends on the release, but sometimes you just need to bite the bullet and say - hey, this next version might break your code - and move on.

My 3.14159 cents.

Gravatar
Jaaprood

2012-08-22

Totally agree. In the end it's all about choosing the right tool for the job within the constraints that you have. When those constraints are an older version of PHP, which with client work does happen, that's what your best choice is limited to. The people that piss me off are the ones without those constraints and then not choosing the best tool for the job, simply because they don't like to get out of their comfort zone.

"I've been doing it like this for years" is not an argument to stick with what you have, it's an argument for the opposite.

Gravatar
Coldclimate

2012-08-22

Agree. Where possible it's generally our jobs to educate clients and try and move things forward but sometimes that's not doable and dealing with it is hard. The easy thing it is to walk away and slag off clients/other devs/frameworks/etc, the harder thing is to knuckle down and deliver. It's shit, but where there's muck there's brass.

Gravatar
Ryan Marshall

2012-08-22

Agree on this one, I am one of those corp devs stuck having to use crappy software and ancient methods for most projects. I have had condescending looks/tweets/opinions from many a dev due to some of the methods/software I have to use in my day job.

Gravatar
Sergio

2012-08-22

"if you see something strange in some code, don't assume it's because they're dumb. At first assume it's because you're dumb".... a comment in a recent HN topic.

Gravatar
Dgx

2012-09-25

Tell me about it. YO! I am forced to use Symfony 1.4 ;).

Posting comments after three months has been disabled.