When comparing Imba vs Web Components, the Slant community recommends Imba for most people. In the question“What are the best solutions to "The JavaScript Problem"?” Imba is ranked 28th while Web Components is ranked 29th. The most important reason people chose Imba is:
The ‘imperative’ DOM from Imba is factors of magnitudes faster than most current virtual DOMs.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Super super fast DOM implementation
The ‘imperative’ DOM from Imba is factors of magnitudes faster than most current virtual DOMs.
Pro Transpiles to very readable Javascript
Pro React inspired approach
Pro Close alignment between language and DOM
The DOM is a first class citizen of Imba and that allows for short elegant interaction.
Pro Ruby inspired syntax

Pro Great for small—likely published—reusable libraries
Very extendable as a single-import base layer for visual controls and probably also something like a react-redux Provider.

Pro Works with any framework
Less recreation of the wheel and fewer wrappers.

Pro Fallback styling when not yet defined
Before a component's script defines the custom element—either as the page is loading or with JavaScript disabled—it can be temporarily styled via :not(:defined)
. This may prevent the need for SSR.

Pro Customizable templates via custom-recognized "slots"
slot="name"
and <slot name="name">
for customizing a component's HTML in specific areas of its shadow DOM. Also fallbacks when not defined.

Pro Stylable via custom-exposed "parts"
::part(name)
pseudo-element for styling elements within a component's shadow DOM.
Cons
Con Still a young language
But looks very promising.

Con Not well-suited for application wiring
Having to serialize/deserialize data between components is not convenient. You'll probably still need a [light/simple] framework. Some things are still quite nice, such as using the light DOM -- think <option>
with <select>
and <datalist>
.

Con SSR is potentially more difficult
…if you need more than CSS' :not(:defined)
, that is.
Check out this video to see how the creator of SkateJS handled it: https://www.youtube.com/watch?v=yT-EsESAmgA
