Watch out for low standards
PHP scares the bejeezus out of me. People defend it, stating that “it grew organically.” So did FreeBSD to a large extent, but we try to adhere to a style guide and often rewrite old code which does not fit the standard. Look at this, and tell me it’s not beautiful.
We hold all of our developers to that standard. I’ve been called out for having one space incorrect. I’ve been called out by using spaces instead of tabs. I’ve been called out for so many things, and it’s made me a better programmer because I have learned to examine code that I’ve written that much more closely. (Disclaimer: To be clear, I’m not a good programmer yet. I still have so much more to learn.)
PHP as a project doesn’t seem to enforce any type of order. I mean, just look at their function naming convention. They’ve got camelcase, they’ve got underscores, they’ve got words running together. It’s lazy. It’s bad design. However, it’s the model that Linux has promoted, a hodgepodge of code shoved together until it works, regardless of beauty.
I don’t actually have a problem with Linux; I think it’s a great OS that definitely has its uses. But I do dislike the effect that their too-many-cooks madness has had on open source.
I’ll admit I haven’t looked at Linux code in a while. The last time I had a reason to dig in, it’s because I was trying to port a Logitech USB display to FreeBSD, so I had to go poking around in Linux’s (fairly new at the time) input subsystem. The lack of documentation was terrible. When looking around at other areas, the code standards seemed nonexistent. Feel free to correct me if I’m wrong. I’d love to hear it.
A project isn’t just about the end product. It’s also about the path it took to get there, and there will be growing pains. From my perspective, it appears Linux is still going through a lot of that teenage awkwardness where it is covered in acne and knocking over things in its clumsiness. I would love to see it get out of that stage, but I haven’t yet seen any commitment to get its act together. Instead, it is teaching people that it is alright to be messy. It is alright to do things your way and not necessarily work together to put together something as simple as a coding standard as a team. People are learning these habits and applying them to other projects, and it is harming open source as a whole.
I know I’ve gone a bit off-topic as I started out talking about PHP, and I’m not implying that PHP developers and Linux developers are the one and the same. These are just my personal opinions. I’m also not going to say that FreeBSD is perfect, nor does our entire code base adhere to the standards we have in style(9). But if I have anything to say about it, we’ll get there eventually.
We hold all of our developers to that standard. I’ve been called out for having one space incorrect. I’ve been called out by using spaces instead of tabs. I’ve been called out for so many things, and it’s made me a better programmer because I have learned to examine code that I’ve written that much more closely. (Disclaimer: To be clear, I’m not a good programmer yet. I still have so much more to learn.)
PHP as a project doesn’t seem to enforce any type of order. I mean, just look at their function naming convention. They’ve got camelcase, they’ve got underscores, they’ve got words running together. It’s lazy. It’s bad design. However, it’s the model that Linux has promoted, a hodgepodge of code shoved together until it works, regardless of beauty.
I don’t actually have a problem with Linux; I think it’s a great OS that definitely has its uses. But I do dislike the effect that their too-many-cooks madness has had on open source.
I’ll admit I haven’t looked at Linux code in a while. The last time I had a reason to dig in, it’s because I was trying to port a Logitech USB display to FreeBSD, so I had to go poking around in Linux’s (fairly new at the time) input subsystem. The lack of documentation was terrible. When looking around at other areas, the code standards seemed nonexistent. Feel free to correct me if I’m wrong. I’d love to hear it.
A project isn’t just about the end product. It’s also about the path it took to get there, and there will be growing pains. From my perspective, it appears Linux is still going through a lot of that teenage awkwardness where it is covered in acne and knocking over things in its clumsiness. I would love to see it get out of that stage, but I haven’t yet seen any commitment to get its act together. Instead, it is teaching people that it is alright to be messy. It is alright to do things your way and not necessarily work together to put together something as simple as a coding standard as a team. People are learning these habits and applying them to other projects, and it is harming open source as a whole.
I know I’ve gone a bit off-topic as I started out talking about PHP, and I’m not implying that PHP developers and Linux developers are the one and the same. These are just my personal opinions. I’m also not going to say that FreeBSD is perfect, nor does our entire code base adhere to the standards we have in style(9). But if I have anything to say about it, we’ll get there eventually.
I first posted this to Google+. See and comment on the original post here.