Rust is unforgiving, yes. PHP is forgiving, yes. You will write Rust the way Rust wants to be written, or you will suffer. You will write PHP the way you want to write PHP, and you may make yourself suffer.
One requires that you think a certain way in order to function at all. The other requires only that you can solve problems, but makes no guarantees that your solution will be the optimal one.
Regardless of language, the criteria you need to keep in mind is this:
> Am I solving a problem for people in a way that is better than other available solutions?
> One requires that you think a certain way in order to function at all.
That's a feature in my eyes. Languages with too much freedom -- C++, PHP, Javascript and many others -- suffer from (a) lack of idiomatic syntax or ways of doing basic things like map&reduce; even finding an element in a list, or formating a date/time have many library choices, and (b) give you plenty of ways to shoot yourself in the foot.
Opinionated tech is a protection against a class of brain defects of the human programmers. You cannot keep track of 50+ potential dangers in your head all the time. You will inevitably make a mistake. Opinionated tech reduces the count of things you have to constantly be aware of.
One requires that you think a certain way in order to function at all. The other requires only that you can solve problems, but makes no guarantees that your solution will be the optimal one.
Regardless of language, the criteria you need to keep in mind is this:
> Am I solving a problem for people in a way that is better than other available solutions?