Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The best part of PHP is the development model. You copy some files to a server, and load the page. That's it. It is really hard to beat how easy it is to iterate, even if the language is truly terrible.


That ship has sailed a long time ago (or you're just playing around and most languages will have a REPL nowadays)

Modern PHP wears a business suit and wants to buddy the "big boys" (Java/C#) of the world. You'll have deployment pipelines, strong push towards classic OOP, strict type checking etc.

I personally think ruby for instance is leaner in its dev process in most real world projects.


Many people learn PHP as a first or at least as an early language. They don't want to know about deployment pipelines, CI/CD, or how to configure JDBC, they want to make a website store a list of names. You can't easily generate HTML from Java without some kind of templating language and framework around it, or a billion string concatenations if you're working without external libraries. ASP.NET has an advantage similar to PHP, but getting ASP.NET up and running has always been a chore in my opinion; there are a lot of moving parts that you need to configure right to get the browser to show you the end result.

I believe that PHP is the easiest way to just Get Things Done when you're starting out with a programming language. To deploy a website, you sign up for a free account somewhere, often with a free subdomain like mywebsite.cheapwebhosting.com, put the files on there and hit refresh. Seeing a result immediately is very motivating for beginners, and PHP doesn't require knowing anything complex like DOM manipulation to generate web pages the way Javascript does. If there were as many free web hosts that allowed the same ease of use for C# or some other language with inline templating, I'm sure it'd take off just as easily.

The language isn't as bad as people claim either, I think it's on par with languages like Python and Javascript. PHP has its quirks, like using a dollar sign for variables, it's really not that much worse than its competitors. Shorthands like $_POST/GET/SESSION are such a relief to work with compared to the "professional" languages with their frameworks upon frameworks and complex, layered objects representing state. It's a great tool for setting up a simple website, maybe even a very basic web shop, where the "big boys" are complete overkill. A website like HN doesn't need more than a few PHP files to function until it hits a certain scale, and even then scaling up PHP websites is relatively easy.

I think the real reason people hate PHP is because it's a language used by a lot of beginners and intermediate programmers who overestimate their ability and deliver subpar projects that someone else now needs to maintain or rewrite. I wouldn't want to inherit some kind of custom blogging engine written by an intern three years ago in any programming language, and because of its ease of development many PHP programs are just designed badly.


My issue with your approach is your first time programer still needs to:

- install/update PHP or go with the outdated version that shipped with their system.

- have a hosting service that will accept random PHP files

- know what their hosting's PHP version/configuration is to match it locally. For instance their hosting will keep the most secure config possible, thus no out of the box fetching of URLs.

- endlessly fight to find syntax errors as they are too new to have a linter. Depending on the PHP version they settled on they won't have error logs in one place but two.

- fight the endless stream of out of date tips and tricks left by 2 decades of PHP programers of various pedigree.

All of these have different variations for different languages, they all have their barriers and dead bodies in the closet. My take is that PHP isn't specially beginner friendly at this point, at least not as friendly as it was when it began.

Making a public website from scratch will be complex anyway, so they might as well go with a saner setup that uses a templating language and not write code right into the HTML. It won't be much harder and they'll have a fighting chance to find up to date tutorial to host their project easily (hosting a rails project on Heroku for instance could be miles easier in that respect)


OP is correct, you still can develop like this with PHP, and no the ship has not sailed for many.

You can have deployment pipelines etc, but if you like, you can still develop the ancient way - it still works.


Well I can still develop like this in ASP.NET if I wanted to and probably and many other languages/frameworks too, so it's not exactly unique.


apt-get install libapache2-mod-python

Now you can put .py files into your www folder, like .php files.


Sure, but would you have that in production for the company you work for?

One can also use old school CGI to serve their site, it’s super lightweight and you just upload the file at the right place, for almost any language. But that has been deprecated for the last 2 decades now.


Odd, I'm getting Perl/CGI gigs still. I should tell them to rewrite to...what's cool now?


I see a number artisans managing their business on pen and paper, and handwrite receipts.

It works for them, but I wont tell random people starting a business now to go with pen and paper, 99% of the time that would be a bad advice when there are much much better alternatives now.


Having a ci/cd pipeline is much different than having to setup and maintain local environment build pipelines.


I don't see how that makes the development cycle any better. I can just edit a file, press save, and it compiles and tests run automatically. If I'm doing something in interpreted languages, the code updates in memory.

Furthermore if I'm working with JS/TS, hot reloading even makes it so I don't even need to refresh the page. I can even inject code into arbitrary places with the debugger (as if I'm editing the source)!

So, all these other ecosystems are on par with the PHP...

I'm glad PHP adopting ideas from other communities, and that the community is becoming more cohesive, though.

Aside: I used to write PHP before (back in the 3 to 5 days), and worked for a big web hosting provider that had a big shared hosting customer base; PHP was by far the most popular technology in that space.So, I'm not trying to bash on PHP.


Javascript has come a long way, but I think there's still a different.

With PHP, you install the toolchain, save a file and the page becomes available.

With JS/TS, you install the toolchain, and then enter a complicated process of yarn/npm incantations in the command line to get the project working right. The manual may say "yarn add typescript" but in practice there's always more setup and configuration to be done before it works well.

For "real" projects, there's not that much of a difference between yarn and composer. For getting started, though, the process is a lot more involved.

Another problem is that running Javascript on the backend is almost completely different from normal frontend development. If you want to store state, you end up using the same (or even worse, a similar) programming language with completely different contexts and available libraries and methods. You can't document.createElement in the backend to tell the user that an operation succeeded or failed, even though that's what you'd do if you were working on a frontend file.

With PHP, you can't do frontend, so whenever you write frontend code, you can't get confused. In my opinion, this makes learning PHP backend dev a lot easier. It's only natural that you choose to continue working in the language you've started you development career in. You can see that by the fact that there are still people who swear by VB.NET, despite everything.

The JS ecosystem does have the advantage of coming with a debugger, but PHP users can get the same by hooking their PHP install into the PHPStorm debugger. I think it doesn't matter much which language you use at that point, it's just a tooling preference.

All in all, I think both languages have their uses. If PHP really was as bad as people say it is, it would've died out already.


I have seen people deploy php this way but I'm not aware of anyone who'd do it today.

Locally however it is save, alt-tab, ctrl-r and immediately you see the result. Absolutely no waiting.

These days I rather use Quarkus for this but until Quarkus arrived this was a huge advantage that PHP had over every other language and framework I was aware of.

Also the documentation was fantastic compared to most of the stuff I have had to suffer through on Java, .Net and even React and Angular.

Every thing you may reasonably wonder about was described in a clear, straight forward way and included examples.


I deploy with a git pull

Which I suppose is just a fancy way of a copying files to the server.


Same. Our Node applications can take up to 10 minutes to build and deploy from a pipeline, but our PHP applications are deployed in <2 seconds by executing `git pull` on a VM.


Same. And git doesn't care if I add a build process or not, or which language I am pushing.


It is kind of just a fancy way to copy but at the same time gives you versioned deployments, rollbacks etc.


I use PHP this way and I think it's great :)


> even if the language is truly terrible.

PHP already has caught up to others with 5.6, these days PHP 8 doesn't lack anything found in other major languages.

What is still confusing is the standard library, but only for people who never worked with C/C++ before - as most of the native PHP standard library actually originates as a verbatim copy of the C/C++ libraries.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: