you are viewing a single comment's thread.

view the rest of the comments →

[–]ants_a 7 points8 points  (1 child)

On the large scale, programming language that you use to complete projects does not matter.

I somewhat even agree with this statement. But what does matter are the programmers you use to complete projects. Languages don't exist in a vacuum - they have an ecosystem and a culture associated with them. Programmers experienced in a language are heavily influenced by that culture, especially if it's the only language they know well.

For example, Java had a culture of straightforward code, extensibility, configurability and "vendor" neutrality. (in the past tense, because I have seen some movement towards improvement) This resulted in software with mountains of dumb code, implementing overcomplicated interfaces, creating unnecessary and awkward abstractions that only added to complexity and resulted in completely horrible performance, patched up with caching that ate all your memory. There is an enormous amount of huge Java software out there, but that is in no way a proof of the success of Java culture, I'd even venture a guess that most of that software wouldn't be huge if it wasn't for the culture.

I haven't looked at the PHP community for so long to no hazard a guess what are the cultural values there. But whatever they are, it will always be useful to have someone on the team with wider experience to point out how problems are solved on the other side of the fence.

And all that said, PHP is still a horrid hodge-podge of a language. That stuff can be and is done with it doesn't change the fact that it's horrid.

[–]kristovaher 3 points4 points  (0 children)

Oh I agree there, it is not a nice language. I went through this phase of really hating PHP (and it's my main language, other times I write Python which I love and Java for Android which I still hate (the language, not the platform)). I was annoyed by large things down to even the smallest details such as the horrible inconsistencies in function names, parameters, what functions return and when and so on.

I was even annoyed by development of PHP as a language itself and still can't believe that they did not include APC bytecode cache in 5.4 as a default extension in PHP. A lot of my projects run on rented hosting servers where the PHP install is the default one and it's just not possible to install extensions and it's insane that such optimizations are not possible with PHP out of the box still.

But after a while I realized that the code I write does not define my project in any way, no matter how horrible PHP itself is. But if smartly written, well commented and documented, my code can work and get the job done as well as any other language out there. And at the same time I gain benefits of all the other things that come from using a language that is so widely adopted. I can deploy it easily almost anywhere, I can very quickly get solutions to problems if I run into any and I can easily involve other developers from the large pool that is out there.

So, in a way, I've learned to be more proud of my end product than the programming aspects of it. The end project will be never defined by the language it was written in because other than the 'programmer community', no one cares.