MageTitans LogoOn November 12th 2016, the MageTitans conference took place in Manchester for the third time in a row. It’s the biggest developer centric conference about Magento which gets a lot of attention and therefore a great lineup of speakers.
One of those great speakers was Vitaliy Korotun, Magento core developer and one of the masterminds behind the UI Components in Magento 2. The topic of his talk was announced as

“Building complex forms with Magento 2 UI Components”.

When he got on stage, his talk title had suddenly changed to

“Building pretty anything with Magento 2 frontend framework”.

Why? To understand that, we’ll first have a look at what UI components are about.

What are UI Components?

UI Components are a new technique in Magento 2 which is used for rendering, mainly for the admin area and the checkout up to now. In future versions of Magento 2 there will probably be more of them, as they have been announced as the future of what blocks are used for today. UI components combine PHP, XML and JavaScript in order to handle output more flexibly and consistently. All in all, it is a very intersting, but also very complex technology which is not easy to understand, as Alan Storm outlined in his blog series “Magento 2 UI Components” (thanks a lot for that!).

The Workshop

To understand what happened, we need to take a look at the workshop which took place the day before with about forty attendees. Its title was “Asynchronous Client-side Rendering and UI Components”, scheduled to last about three hours and held by Vitaliy Korotun too. He started off with some advanced examples of using and modifying UI components. It soon became obvious that Vitaliy expected the attendees to already have solid knowledge of UI components which clearly was not the case for the majority of attandees, including me.

In a personal conversation with Vitaliy during the break after about one hour of the workshop, he was surprised about my impression that most attendees couldn’t follow the workshop contents. He was referring to some of the smart guys such as Vinai Kopp asking clever questions, concluding that the same level of knowledge was shared by all (or most of) the other attendees. He had several reasons for his assumption:

  • UI components are out for more than a year now
  • There have been very high-level discussions and pull requests about the UI components on GitHub
  • He expected the participants of a conference named “MageTitans” to be real experts (“titans”) with Magento 2
  • UI components are a frontend technology which should mostly be used by frontend developers, who are experts in advanced JavaScript. So he expected frontend developers with a solid knowledge of advanced JavaScript background being present.

What he didn’t take into account:

  • Adoption for Magento 2 is going slow. There are a few agencies and independent developers who are already doing a lot with it, but many others are still waiting or have just begun their first Magento 2 project(s) a few weeks or months ago.
  • Among all new Magento 2 development techniques, UI components seem to be the most complex which most developers struggle with or try to avoid. I have heard this assessment even from one of the best Magento developers I know, someone who has been working with Magento 2 since the Merchant Beta release.
  • You cannot conclude from a small number of early adopters to the majority of Magento developers. The knowledge gap is huge.
  • The number of real JavaScript experts in the Magento development community is rather low.
  • Most attendees seemed to be backend or “full stack” developers. UI components are important for them too, as they’ll at least have to adjust and extend the admin area without the help of frontend developers. And as UI components have to do with PHP too, there will be tasks about UI components for backend developers as well.

What followed after the break was a restart. Vitaliy asked if there were questions left up to that point, someone else (sorry, don’t know the name) jumped in and asked basic questions about how UI components work in general, and Vitaliy answered them one after another in detail. A sigh of relief went through the room, and although even the basics of UI components are a complicated topic, it became much easier to follow. It allowed me and other developers to get a much better understanding of what UI components are and how their different parts are working together.

The Talk

On the next day, Vitaliy came up with a new talk. Not only had he changed the title, but content, too. It covered the basics of frontend development and UI components. It meant a lot of work for him as he had to throw over his existing talk, which must have taken a few hours of his night.

It became clear that UI components are a very interesting approach which should be much more future-proof than the old rendering technologies. You can overwrite nearly all parts of the layout in an upgrade-safe way. The only drawback from my point of view is that you need a lot of knowledge to utilize the full power of UI components, but also to use the basic parts well. Fortunately, there now is comprehensive documentation about all parts of UI components, and you’ll need it.

Interesting: Magento is thinking about using UI components in the backend as well.

Conclusion

Besides the fact that UI components are a beast of complexity, this case shows that Magento started taking the right approach to send their developers and other employees to conferences and other events where they get to communicate with the people actually using their software. It helps them understand their needs and their background much better and adjust their behavior and/or software accordingly.

On the other hand, it shows that the Magento people (at least all I have met so far, and that’s more than a dozen) are approachable and open for adjustment. They are asking for feedback, and we as the users should give them feedback. So, if you see anything going wrong, I recommend talking to the people in charge or approaching them virtually. If you don’t know them, you can always talk to Ben Marks or Sherrie Rohde who can forward the information to the right person(s) and/or tell you whom you should speak to.

Andreas von Studnitz

Author: Andreas von Studnitz

Andreas von Studnitz is a Magento developer and one of the Managing Directors at integer_net. His main areas of interest are backend development, Magento consulting and giving developer trainings. He is a Magento 2 Certified Developer Plus and a Magento (1 and 2) Certified Solution Specialist. He was appointed a Magento Master in 2019.

More Information · Twitter · GitHub · LinkedIn