

Ask HN: What makes PHP so difficult? - joshuahornby

Having been awake now for roughly 30 hours coding my php project what makes it such a tough and confusing language? Does MVC complicate matters? Am I reading the wrong books/website and It is actually quite simple? In my humble opinion it's quite possible the worst server side language going.
======
onion2k
Enough people get on well with it to make it the most popular language for web
development, so the implication is that it's you not finding it easy rather
than the language being especially hard. It doesn't fit with your mindset.
Presumably, as you say it's "possibly the worst server side language going",
you've tried a lot of them. Use what works for you.

Three other points though;

Firstly.. being awake for 30 hours is going to make you sleep deprived and
confused, which will make it harder to code things. You'll probably find
you're more productive coding for 10 hours, sleeping for 10 hours, and then
coding for a further 10 hours than trying to code for 30 hours straight.

Secondly, the language you're using is a small part of app development. Tiny
in fact. In my experience the "40/20/40" rule is right ... designing and
building an app is 40% planning, 20% coding, and 40% testing. That's with
about 15 years web development experience.

And lastly, if you think PHP is the worst server side language, you've
obviously never written a large scale site in Perl. ;)

------
carloc
PHP offers a lot of choice.

You can use it rather nicely, but it also allows you to write some really
awful code. Admittedly, it does not do much to help you write good
(=understandable, maintainable) code.

This post is rather interesting in terms of using the good parts of PHP:

[http://fabien.potencier.org/article/64/php-is-much-better-
th...](http://fabien.potencier.org/article/64/php-is-much-better-than-you-
think)

I have been using the author's PHP framework for 2 years now and have
experienced huge improvements in the quality of the code I write simply by
being exposed to his example. He basically uses a lot of objects but very
little inheritance. He also is religious about the DRY principle.

~~~
debacle
Silex or Symfony?

~~~
carloc
Both, but mainly Symfony.

------
aleprok
Go to sleep, it's not good to be awake for 30 hours. You are sleep deprived
and this makes it tough and confusing. MVC does not complicate matters. MVC is
just a standard way to structure your code. You probably are reading somewhat
right books and websites, but every source is biased towards something. In my
humble opinion you have not tried any other language for http server
scripting.

~~~
joshuahornby
I have tried Ruby and I am starting to become confident in this. Also had a
play with JS.

------
fruchtose
You've been awake for 30 hours. You are far from peak efficiency. Sleep.

------
kappaloris
PHP is old. OO was added later, same for Funcional syntax and IMHO they feel a
bit awkward compared to other languages that were created with these contructs
from the beginning.

The only real difference I find is that you need more discipline than you
would with django/ror because you can mess it up more easily. PHP feels like C
for web programming.

If you feel your MVC framework complicates things it probably is for the
former reason (more awkward syntax compared to dj/ror).

------
duiker101
depends on what you mean with difficult. PHP was the first "real" language I
learnt and back then I was like 13 years old. Maybe I wasn't working on
amazing project but I had a decent knowledge. Now, after about 10 years and
having tried many many other languages when I look at some PHP code I find it
more confusing than other but still not the worst(which is Perl for
readability IMHO). One thing that I think really add to much clutter to the
PHP code is the $. It might be needed but if now find it kind of "hurts" my
eyes. Another this is that is not object orientated(mostly, or at least the
more used versions) and I think => adds as much noise as $. Personally I find
much easier to read string.length than strlen($string). But in the end I think
all of this things come end up being just personal preference.

~~~
balac
What makes you say PHP is not object oriented? It has had proper object
support since 5.0 (2004).

------
xauronx
What framework are you using? I found CodeIgniter to be pretty helpful. PHP as
a language is kind of frustrating because there's so little consistency in it.
I usually just keep a second window up to the PHP manual and search a lot.
Just go to sleep and come back to it with fresh eyes.

