X
    Categories: Insights from Interview With PHP MagiciansInterviews With Experts and Influencers

“Yii Is All About Practice,” Shares Framework Contributor Alexander Makarov

Alexander Makarov is a senior engineer and one of the core contributors of the Yii Framework. He is the author of Yii Application Development Cookbook.

In his interview with Cloudways, Alexander talks about his career path, his contributions to the Yii framework, makes a comparison of Yii with other frameworks and at the end gives wonderful advice to students. Enjoy the interview 🙂

Cloudways: Alexander, tell our readers about yourself. How did you start your career in developing, who motivated you and what is your best work until now?

Alexander: Hello readers! I’m Alexander Makarov, IT engineer from Russia known mostly for my work on Yii PHP framework and involvement in PHP-FIG. Currently, I work fulltime at Stay.com and spend some of my free time to maintain Yii. You probably saw me at GitHub under @samdark handle.

When I was a kid, my father assembled Z80-based computer. It ran sinclair basic and there, of course, were games. After playing too much, I started wondering how it all works and how these games function. I loved what I found out, so it was decided that I needed to learn computer science properly. After 5 years in university and getting a master’s degree, I’ve got a job at Siemens as DBA and Java/SAP developer. 10 years passed after that. Since university days, I’ve used PHP for personal projects because it was more suitable than J2EE for simple web stuff.

First, it was plain PHP, then I did CodeIgniter, but soon found it was too limiting. After that, there was a long search for a perfect framework. After checking CakePHP, Zend and some others, I’ve accidentally opened the Yii website (it was awful then) and checked documentation. It made perfect  sense. After trying the framework, I found out that it’s fast and well balanced between complexity and simplicity and fits my workflow well. I joined the Yii team in 2010 and so far, it’s the most significant open source work I’ve made.

Cloudways: What are your core responsibilities at stay.com?

Alexander: I’m mainly developing websites, CMS and API. When there’s a need, I’m helping with Android app, servers, SOLR and whatever is needed.

Cloudways: Alexander, you are a certified Zend developer. Then why did you choose Yii instead? How would you compare them both?

Alexander: I’m ZCE, that’s correct. But you’re probably confusing this certification with the zend framework one. ZCE is about PHP itself.

Despite that, I’m familiar with Zend framework, so I can answer second part of the question. At the time when I was choosing a framework, there was the first version of Zend Framework. The way it was built was too formal for me. Everything according to RFCs, pattern books etc. While it was theoretically coded the best possible way, in reality it was a bit overcomplicated. Moreover, there were deviations from RFCs (I remember ones about email component) which Zend team refused to include patches for.

On the other hand, Yii was all about practice. If, in practice, there was deviation from RFCs, framework was patched accordingly to function well in a real environment. Also, it was much faster than Zend and had nicer syntax, making everyday coding more pleasant.

Cloudways: You are one of the core contributors of one of the top PHP framework Yii. How do you feel about it?

Alexander: Mostly good. It’s a great feeling when you realize that you’re creating something other developers are using for their daily jobs. When there are contributions, you really feel the community spirit. Also, I love digging into coding quirks and developing a framework gives me lots of opportunity to do that.

Of course, there are not so good parts. Maintaining such a big open source project drains your time like crazy. Sometimes, there are rude people demanding things fixed immediately etc. But overall, I think, there are more good parts than bad parts.

Cloudways: What are your main contributions in Yii Framework. Which version of Yii have you worked on the most?

Alexander: Since I came to Yii having background in J2EE, CodeIgniter and some experience with other frameworks, in 1.1 time I was mainly contributing good features that were there during my past experience but were missing in Yii. Yii 2.0 is another story. I’ve participated in it from the very beginning of the project, designing it together with Qiang Xue and Yii core team members.

Cloudways: According to a 2015 survey by sitepoint, Laravel tops the list of the most used framework, and Yii2 stands on the 4th position. Do you think Yii2 can get the top position in future?

There’s a chance, but I don’t think Yii will be at the top of the list in the US next year. It’s hard to compete in marketing with local US commercial players. Yii is slightly more popular outside US. Especially in Russia, Ukraine and ex-USSR countries which are easily reachable for conferences.

Cloudways: How would you compare Yii with Laravel and Symfony?

Alexander: All three are good frameworks with their own pros and cons.

Laravel has excellent marketing, good public API, lots of cool infrastructure, good events in US. Until recently, it wasn’t really suitable for lengthy projects because new major versions were released one after another and old ones were just dropped. Now it’s much better. The framework management and development is a bit fragile since it depends a lot on its founder but, hopefully, it will change with time.

Symfony has a very long history. It’s mature and is backed by a strong company which could afford full time documentation team, and developers team. The framework community is strong as well. The framework leans slightly towards enterprise solutions and is suitable for really complicated applications. Because of that, some parts of the framework are really complex.

Yii is all about practice. It’s very fast to develop prototypes with, because of Gii code generator and well-made enhanced implementation of ActiveRecord design pattern. Yii provides lots of features out of the box. The community is strong, docs are good, code is stable and we care about backwards compatibility. We cut lots of edges for a reason. As a result, Yii performs better than Laravel or Symfony using the same hardware with the similar application implemented. As for downsides, Yii doesn’t stand in your way much when you’re trying to go against best practices, clean code and domain driven design. Still, if you know what you’re doing, all the tools are there for you.

Cloudways: What are the best features of Yii according to you?

Alexander: Error handling and debug toolbar, code generation, forms, query builder and active record, data providers and data widgets, strong i18n layer, REST API framework.

Cloudways: Alexander, what are your activities when you are not working at all? How do you spend your time?

Alexander: Traveling, bicycling, watching movies, playing games, doing various family activities.

Cloudways: Just for our readers, can you send a picture of your workstation?

Alexander: Here you go!

Cloudways: What advice would you like to give to students who are going to start their career as a developer?

Alexander: Spend time to learn computer science fundamentals. You won’t need it in the first five years, but later there will be no way to get further without a good base and it will make a big difference.

Cloudways: We at Cloudways are providing one click installation for PHP stack and different PHP frameworks. I would like you to check it yourself and share your opinion about the platform. What can we do to further improve the outlook and performance of the platform?

Alexander: Overall, the service is fine. It may save time on setting up everything from scratch. Pricing is reasonable especially for lower tiers. There are downsides, of course:

  1. The default stack is made to meet the needs of many different developers so while it’s OK, custom stack may perform much better.
  2. Some DigitalOcean features aren’t available yet.

As for Yii, all the requirements for Yii 2.0 are OK so it should work fine.

Ahmed Khan: Ahmed was a PHP community expert at Cloudways - A Managed PHP Hosting Cloud Platform. He is a software engineer with extensive knowledge in PHP and SEO. He loves watching Game of Thrones is his free time. Follow Ahmed on Twitter to stay updated with his works. You can email him at ahmed.khan@cloudways.com