At the recent Mage Titans conference in Manchester Maria Kern gave a well regarded talk on what, exactly UI Components are. It is good. You should watch it.
At the same conference some other, well regarded speakers mentioned how they’re opting out of any work that requires UI Components because the system is (paraphrasing) The Swamp of Despair.
Technically speaking, this is where I mention my UI Components Series as well as my uiElement Internals series. I’m also contractually obligated to point out Commerce Bug’s UI Component debugging tool. While free UI Component tools have finally started trickling out (Maria’s talk mentions a few), Commerce Bug’s had UI Component debugging for over a year. It’s also the only tool I’ve seen that maps out the parent/child relationships between the individual components and expands Magento’s custom KnockoutJS tags to regular, readable KnockoutJS code.
Moving beyond the technical and self promotional — UI Components are a symptom of a larger trend at Magento. UI Components made a good demo. Their purpose was to present something new and modern at launch for Magento to point to and say “Yes, we have done away with the old. Tremble before the might of this fully operational ecommerce system!”. New grids that behave more like spread sheets! A dynamic, more efficient checkout! Whatever their engineering goal was, UI Component’s business goal wasn’t to create a system of easily customizable UI Widgets. Their business goal was to market the platform.
Which is — fine? Is that the polite thing to say? For-a-demoware’s always been a part of software and computers (for those of you on MacOS look for further than your dock). However — in the two years since Magento’s launch the actions needed to turn the UI Components from a demo into a functional, usable system have not been seriously authorized, taken, or pursued. Magento’s internal teams are focused elsewhere, and UI Component’s are one of many systems in the open source version of Magento that will continue to atrophy.