It's bascially the same as for UI components. Adobe had the great MXML based Flex framework back then.
The web world only slowly catched up, and I think it took until the current gen of frameworks (angular2, etc.) to be at the same level. However the good thing (as you also pointed out) is that the new variants are based on standards.