DEV Community

Discussion on: Imposter Syndrome: PHP Edition

Collapse
 
imsop profile image
Rowan Collins

I'm baffled that you accept that JavaScript is evolving and improving, and then in the very same breath criticise PHP based on its origins as a completely different language over 20 years ago.

Also, if you're "not discovering things any more", you're not a developer I'd ever hire for "a proper job".

Thread Thread
 
xowap profile image
Rémy 🤖

Let me take an example.

In the medical world, there is many diseases and treatments that are worth trying for each of them. However, the usual go-to treatment used to be leeching. Although some people might have gotten cured after that, I think it's pretty safe to assume that it's not an efficient treatment for anything.

I'm not saying that PHP isn't evolving. It's not designed. Not the same thing. Most of what you put in the good sides of PHP comes from the PHP-FIG which is completely unofficial because the language is not providing any kind of help on this level.

(And even there, it's mostly importing bad ideas from Java... but it's besides the point)

Also, learning and getting your skills upgraded is indeed a very important part of the job. That's why I'm checking how PHP's doing every now and then. Still crappy to me.

Make no mistake, I judge PHP from today's perspective. And I still find it's an inefficient, inconsistent and slow way to develop.

Take another example. You can buy two houses for the same price. Let's say house A and house B.

House A has a problem with the doorlock which doesn't open well and needs to be greased. Besides, everything is nice and tidy and works well.

House B has a perfectly functioning door, however there's a window cut by a wall, a patio door in the bathroom and all the faucets randomly invert warm and cold water.

Do you prefer house A or do you consider that since the lock is broken then house B is worth the fun of fixing everyfuckingthing?

That being said it's only my opinion. I respect that you would choose house B for reasons that I cannot understand.

Thread Thread
 
imsop profile image
Rowan Collins

Boy am I bored of cute analogies like this. The fact is that every language with more than two users is evolving and coping with its legacy one way or another. Yes, PHP absolutely has its problems, maybe more than its fair share, but every time I've read someone's detailed critique, they've included things which are just as bad in several other languages. So to take your house analogy, what if house A is right next door to your family and your job, but has some leaky windows and noisy plumbing; house B only has noisy plumbing in the basement, but it's in France, and you don't speak French?

Thread Thread
 
xowap profile image
Rémy 🤖

Once again. Some things are used by more than two persons and are debatable. A lot of them.

However in the case of PHP I cannot see any reasonable argument to start a project with that language.

  • It's easy to use: well, just no. A lot of other options are excellent for beginners and bring more structure to work with
  • There is a huge community... of people coding WordPress modules of sub-amateurish quality
  • There is a lot of libraries: other languages have a lot of libraries and probably even more than PHP (due to various reasons including the better compatibility with C)
  • The language is evolving: other languages are evolved
  • It's faster to work with: personal history shows that it's false (but I can't ask you to believe me)
  • You can do stuff with it: of course, it wouldn't exist otherwise
  • Other languages have flaws too: yup, but the amount of them matters
  • There is a lot of developers: learning new languages should not be an issue for a good developer

Maybe it's just me but I honestly can't see anything good in PHP.

Thread Thread
 
xicarus profile image
Sergiu-Lucian Petrica

Just about everything that you said is clearly biased against PHP. You speak as someone who hasn't used PHP7 and is mad at Wordpress for promoting poor quality (not that I can blamr you for this last point). But I cannot take you seriously when most of your points are there to artificially inflate your post.

Easy to use: yes, it really is and you haven't used PHP if you deny this. It's not even up for debate, it's one of the core ideas of the PHP ecosystem. Setup is simple and the language is very permissive. Ease of use is the main reason you get so much low quality code, there are simply a lot of beginners using it. In fact you mentioned the ease of use when talking about beginners in your first post in this thread, did you change your mind?

Your community rant is not a real argument, sorry. A language with more than 80% presence in the backend web space is going to have a huge community even when you exclude its most popular CMS whether you like it or not.

Libraries: moot point. All popular languages have many libraries, PHP included. The number is so healthy as to be considered 'enough' anyway.

Other languages are evolving: like PHP has in the past few years? PHP has just been redesigned from the ground up and you compare this to the natural evolution of your average language? Oh boy.. Are you SURE you're aware of PHP7?

Faster to work with: your personal experience does little to affect everyone else's. A purely subjective opinion.I've always found it very quick to prototype in for example.

Flaws: aside from the naming inconsistencies of the standard library and a few quirks which look like child's play if we take Javascript into account I really don't see these numerous flaws you're implying. If you stubbornly refuse to use the === operator that's your problem, not the language's.

I understand you don't like PHP and that's fine. I respect your opinion. But do not try to build arguments based on subjectivity. They get shut down fast because they have no substance. Happy coding.

Thread Thread
 
xowap profile image
Rémy 🤖

I'm pretty aware of PHP 7. What's the point of anonymous classes when you're still at risk that a typo will print something above every JSON response a break the whole API?

What I'm trying to say is: I really don't see any good reason to use PHP. There's dirt everywhere you look. It's not about every single flaw, it's about all of them combined.

Thread Thread
 
xicarus profile image
Sergiu-Lucian Petrica

So what are you gonna use then? Javascript?

Thread Thread
 
deceze profile image
David Zentgraf

There are so many more options out there for server-side development than PHP and Javascript. So. Many. More.

Thread Thread
 
imsop profile image
Rowan Collins

Sure, and some of them are better than PHP, some of them are worse. There's a lot of comments on this page saying "use something other than PHP", but it would be a lot more helpful if people shared their favourite alternatives, and why they think they're worth learning for someone who already knows PHP.

Thread Thread
 
xicarus profile image
Sergiu-Lucian Petrica

I know there are more options, but the fact remains that PHP works very well in its space. And that space is wide, judging by the fact that it's used for all sorts of web apps, including APIs.

Thread Thread
 
xowap profile image
Rémy 🤖

If you ask for my personal favorite, I always go with Django (so Python).

The prime reason is the ORM. It has become so powerful that I rarely need to write SQL anymore (even for very complex queries). It also provides introspection onto the data model, which allows automated forms, admin and so on. Basically any CRUD backend is done instantly. But most of all there is a migration system that gives deterministic results and works really well with versionning and branching.

Also there is the Django REST Framework which uses the introspection abilities to make REST APIs dead simple.

Then comes all the nice "batteries included" things from the templating engine (which inspired Twig) to standard RSS or sitemap apps you can just configure to go.

And finally there is a lot of apps that will help you for common tasks, like Wagtail which will provide a very flexible CMS or Oscar which does e-commerce. All those things are not in the form of WordPress/Prestashop/etc. They are developer-oriented toolkit so you can match your client's needs while leveraging pre-existing building blocks.

Basically, everything is simple and works well. That's why I like it.

Thread Thread
 
xicarus profile image
Sergiu-Lucian Petrica

Well that sounds exactly like Laravel. Perhaps you should give it a try.

Thread Thread
 
xowap profile image
Rémy 🤖

I'll admit that Laravel looks like a nice piece of framework. It has a lot of good things and certainly is not too nerve-wrecking to work with.

However, it sounds a lot like Django of 2010. Just to pin one single issue down, the migrations system doesn't play well with branching. That's a serious no-goer.

Thread Thread
 
thinsoldier profile image
thinsoldier

sandor11 - Why do people constantly compare a framework (django) to raw php and feel that is a fair comparison? I see "x-framework vs php" statements 50x more often than I see "x-framework vs php-framework" statements.

Rowan Collins asked for people to "share their favourite alternatives" to PHP. Rémy replied with a framework once again and compared features of the framework like ORM to raw PHP! WTF? There are many PHP frameworks with ORM's and also standalone ORM libraries! Guess what Rémy. I don't use php frameworks but "I rarely need to write SQL anymore" also. And then Rémy goes on to list more libraries and frameworks as reasons why python+django+lots-of-frameworks is better than raw php by itself. That makes no sense.

Specifically saying Laravel's migration features are inferior to Django's is the only fair and sensible thing Rémy has said.

 
xowap profile image
Rémy 🤖

Hello no, JS is bad enough on the front-end for me not wanting to use it on the back-end.