I recently watched a video series on YouTube from "Lionel The Tech Lead" on the "Top 11 Reasons to choose the Yii2 framework". Personally speaking, I've always respected the Yii2 framework. It's well written and instead of being 20 times slower than Trongate (like Laravel), it's only ten times slower. That's good! As for Lionel - The Tech Lead? He has positioned himself as a defender of PHP on YouTube and I like him. Having had a sneaky look at some of his work, there's no question that he's a great developer. He's cool. So, I was interested in finding out about his eleven reasons for choosing Yii2.

When I watched Lionel's videos - going over all of the reasons for choosing Yii2 - I found myself juggling between two responses:

Response 1). "That's a 'me too' feature that can be found in lots of PHP frameworks!"

Response 2). "Oooh! That's actually pretty cool!"

The first type of response is not particularly interesting. So, I won't bore you with a speech about the pros and cons of MVC! However, this second category of response played on my mind for rather a long time. I mean... for a solid week or two.

For a while I found myself thinking about features like Yii2's 'Grid View System'. This is a feature that Trongate doesn't have! I kept thinking about how I could perhaps build a similar feature and add it onto Trongate. Perhaps I could even make it into a tutorial series for YouTube. One thing's for sure - some of the bells and whistles that Yii2 has are impressive. I can well imagine having access to those features and feeling quite pleased with myself!

Then suddenly I had a moment of clarity when I remembered a famous quote from the late, great Steve Jobs:

"People think that focus means saying 'yes' to the thing you've got to focus on. But that's not what it means at all. It means saying 'no' to the hundred other good ideas that are there. You have to pick carefully. I'm actually as proud of the things we haven't done as the things I have done." - Steve Jobs

When you help to look after a framework, it's very easy get sucked into a feature-building crusade. However, I think this would be a mistake. Sometimes, the hardest thing to do is say 'no' to a good feature. After careful consideration, my personal decision is that I'd rather spend my time producing training resources and developing the Module Market, than building new features into the actual framework.

Even though it would be interesting to spend time effectively 'grabbing' features from (something like) Yii2 and adding those features onto Trongate, I'd surely find myself asking, "To what end?"

Knowing what I now know about tribalistic framework loyalties, I don't think that such an exercise would convince a single Yii2 developer to start using Trongate! Fancy features are nice. In the case of Yii2, some of the features are excellent. However, I think that what a framework represents is much more important than features.

Trongate stands for stability. Above everything else, stability is the thing that Trongate has as a priority. At this moment, the need for stability - within the web development community - has never been greater.

Within the last few days I've heard news that yet another version of Laravel has been launched. So, now they're onto Laravel v9. Rewrite culture is relentless and I'm absolutely convinced that most developers and virtually all clients don't want it. There MUST be an alternative. There MUST be one PHP framework that boldly says 'no thanks' to rewrite culture. Trongate is that framework.

Right now, Trongate is in a good place. What we have is good. We can relax. It works!

As far as Trongate goes, I make no secret of the fact that I've taken ideas from all over the place. For example, the code for form validation is heavily influenced by Codeigniter. Nevertheless, whilst I can forgive myself for a few syntax similarities, the idea of just stealing features from a framework like Yii2 would leave a bad taste in my mouth. It's not something that I want to do. That's not what Trongate is about.

So, I say let Yii2 have its flagship features! Our goal is not to copy lists of features from other frameworks. We choose a different path. We choose stability.

For Trongate developers, phrases like "top ten best framework features" should be meaningless. For good Trongate developers, the value of the framework is in the very fact that it is a framework - not a laundry-list of features. If anybody out there desperately wants a Yii-style "Grid View", unit testing, an ORM or some other feature that Trongate doesn't have then the solution is not to suddenly build it into the Trongate framework. The solution is to simply have it added to the Module Market. It's a challenge for me to imagine a single feature that another PHP framework has that couldn't be added to the Module Market as an optional add-on.

So, let's wish the Yii community every success with their fancy features and their potential new release. Let's send waves of empathy to every single Laravel developer on Earth - knowing that they've all just been lumbered with a massive and pointless to do list. Just think! Virtually every single commercial Laravel app that has ever been built is now out of date - thanks to Laravel's insane rewrite schedule.

Yes, my friends - features are nice but stability is revolutionary. If anyone out there should ever ask for eleven reasons to choose Trongate, then let the answer be clear:

"stability stability stability stability stability stability stability stability stability stability stability"

So, I'll say it again... Trongate is V1 forever. We nailed it first time and we're never going to embrace some ridiculous rewrite culture. Yes! Trongate means stability.

Now, doesn't that sound a whole lot more exciting than saying "Trongate has a grid view"?

So, keep on coding and together, we SHALL make PHP great again!

DC