tempestphp / highlight

🎨 Fast, extensible, server-side code highlighting for web and terminal
https://tempest.stitcher.io/highlight/01-getting-started
MIT License
618 stars 36 forks source link

Consider PHP 8.2 support? #65

Closed hopeseekr closed 5 months ago

hopeseekr commented 5 months ago

While I applaud the bold decision to start the project at PHP v8.3, only 546 packages (out of 369,394 alive packages) on packagist are this limiting to the cutting-edge, and two of them are your projects. That's just 0.14%

Not only can I not use tempest in my own websites, but I also am on a perpetual license of PhpStorm from 2023 that doesn't support PHP 8.3, and for some ineffable reason, it defaults to PHP 5.6, which means its' quite hard to code for this project.

We both run our own PHP stats projects, I'm sure you're aware. So I guess this is just a plea and nothing more.

image

A full 10,004 active packages support PHP 8.2 and 8.3 only (2.71%).

image

Packagist stats by version spreads:

These stats are compiled by analyzing the composer php semvar in composer.json's of every alive project as of 2024-03-01 and later. Shocking, 101,523 (27.48%) packages do not have a PHP version requirement whatsover... The reason for the overrage is that the Bettergist archive has ~35,000 dead packages that are not reachable online any more, and it's very hard for me to differentiate in this query.

brendt commented 5 months ago

I appreciate the effort! I'm not going to change my mind though :)

Sidenote:

and for some ineffable reason, it defaults to PHP 5.6, which means its' quite hard to code for this project.

That is very annoying indeed! Can't you go to Settings | PHP and change the language level there?

laurinkeithdavis commented 5 months ago

I'm not sure what is meant "by default". PhpStorm will use the composer.json file to pull the language level - we set ours on the current PHP interpreter level we are using, or the PHP interpreter is configured otherwise. I guess if you don't configure either one of these, that's what you mean by default? It's been so long since we did not configure these settings, I can't even remember, but yes, you can also change the language level manually.

hopeseekr commented 5 months ago

Dear @brendt I am creating an API microservice in PHP 8.3 that hosts tempest/highlight and a PHP client that supports 7.2-8.4. This seems like the easiest way forward.

mwernaert commented 5 months ago

Whats the main reason to start this project at 8.3? Looks like this library works just fine in 8.2 when I remove the typehint for the 2 typed class constants in \Tempest\Highlight\Escape. Is that the only syntax making it incompatible with 8.2? Not really worth it in my opinion. But, your call ofcourse 🫡 Will definitely check back in a couple of months.

Feels like a missed opportunity to gain more traction and get more feedback/help though.

dereuromark commented 5 months ago

I also find it weird that the author posts this into the Reddit channel for traction, but at the same time denies usage to 99% of the projects/people for apparently no good reason. I wanted to try it, but as many others, I can't (none of the many projects are 8.3+) - will then stick to what I got.

aidan-casey commented 5 months ago

Man, what a whiny, entitled, lazy bunch you lot are.

When you're given the opportunity to build a high-speed sports car, you don't go for the standard engine that doesn't have the latest advancements in fuel efficiency and performance. You go for the cutting-edge engine that offers superior horsepower and efficiency.

PHP 8.3 is the cutting-edge engine. It's faster, has additional features we love to use, and won't be out of active support in 8 months. The icing on the cake? There are only 14 incompatibilities between PHP 8.2 and 8.3, and most likely, precisely zero applies to you.

that supports 7.2-8.4

None of you should be on PHP < 8.1 for security reasons.

Whats the main reason to start this project at 8.3?

What's the main reason you haven't updated your project to 8.3 yet?

99% of the projects/people

Look around, the majority of projects are still lingering in the past, but that's not a badge of honor – it's a testament to laziness. Microsoft didn't pull the plug on Windows 7 just for kicks; they did it to push people towards newer, safer, and more efficient systems. Embracing PHP 8.3 isn't about blindly following trends; it's about driving the community forward, away from older and outdated versions where they might otherwise settle.

At the end of the day, you made up this statistic anyway. It's factually inaccurate and you are likely to find more like ~60% of people are on a version below PHP 8.3.

I wanted to try it, but as many others, I can't (none of the many projects are 8.3+)

Well, guess what? That's not the maintainer's problem – it's yours. You've got options:

I'm pretty sure @brendt made his stance pretty clear in this thread and you guys are just outing yourself as being at the back of the pack.