I don’t know how many of you are musicians, but many people are surprised to find that the tone quality of a guitar has way more to do with the person playing it than the way it was built.
(yes, this is a joke, a bad one at that. badum tish)
(Also a bad joke.)
Python has byte strings, Unicode strings, format strings, regular expression strings, and probably a few others!
Rust has str and String, depending on ownership.
Why I hate Rust
[1] https://developer.apple.com/documentation/swift/substring
Framework solves a general problem, but we try to solve a specific problem, thus it will always be a mismatch, frameworks usually solves that with a combination of magic and opaque abstraction layers.
Frameworks works best for short running projects, long running projects tend to outgrow the framework.
Prefer libraries over frameworks.
Personally if I was "stepping up" from PHP and wasn't going to use something powerful (or didn't need all that power) I'd be stepping up into javascript and nextjs and stuff like that.