This is a weekly roundup of awesome DEV comments that you may have missed. You are welcome and encouraged to boost posts and comments yourself using the #bestofdev tag.
The answer is simple.
When you begin coding, you shouldn't worry about those. At all.
And then, when you write sufficiently complex projects, your code will become a horrible mess... and then you will understand. :)
It's always heartening to hear that a global event like Hacktoberfest is what brought someone to DEV. We're thrilled to have you as part of the community, @busseyl
— and congrats on completing Hacktoberfest 🎉
I've been reading DEV articles for years now and have always enjoyed the articles. Finally signed up to claim my Hacktoberfest (something else I've been participating in since the very first year).
Thank you to everyone who supports this great community!
I've got 17 years of PHP under the belt and there are some points to be said:
- PHP is a victim of its popularity. With lots of sites across the internet in PHP, there are many old versions there, each bearing significant differences, enough to be a pain to developers migrating between projects
- Wordpress. Just look at it. Its development is soundly grounded in early php 5 versions. If you have any format programming training, looking at the Wordpress API will leave you wondering if those guys simply hated OOP or any kind of engineering best practices (spoiler: no, but PHP became OOP-ish fairly late for Wordpress to change). Many say that Wordpress is what helped PHP survive enough to become a real language in the later 7.x installments
- inconsistent API. The core PHP API has always been messy (tons of 'utility' functions thrown around, inconsistent parameters, interfaces you can't implement, etc)
- it's a web language but ... needs a third-party server to run? That's the biggest pain and WTF for me. At some point PHP got a server as part of its platform, but with a big "don't use in production" sign. Just about any language comes with some webserver implementation as part of its core platform (Java, nodejs, Go, Rust, you name it). Some still recommend using an efficient reverse proxy / balancer (eg: node) but for most others you get it out of the box. PHP has FPM but still can't function without Apache/Nginx. Rubbing salt on the wound: in today's cloud-native world, you can't containerize PHP to simply work with an Nginx ingress or Cloud LB, you still need to package another damn webserver. Ok, nowadays there's a nice multithreaded application platform (Roadrunner) that removes the need for fpm & nginx.
- the fact that some many radically different versions still live make it difficult to progress as a developer and easy to get trapped in bad code world. Myself as a job candidate keep underlying that I 'support' only PHP >= 7.3, I won't take jobs developing PHP for older versions unless their primary medium-term goal is migration.
That's some great advice, @toddpress
Thank you for articulating this in your own way and publishing :) This topic reminds me of something a favorite mentor once taught me, when confused about naming a particular function:
"If you're having trouble naming a function, then it's most likely doing too many things."
Years later, when encountering similar issues, I play this back in my head and have found it very useful. It can be expanded to naming just about anything.
Again, love the article!
Congrats to @codebyjustin
for their first post here on DEV!
My win was publishing my first Dev.to article :D
See you next week for more great comments ✌