Lit doesn't require decorators, and if you do use them they only require a pretty standard TypeScript or Babel compile.
Are decorators the only thing making Lit like Angular? Angular is not the only project that uses decorators, and decorators are standardized in JS now.
Stencil is good, but requires a compiler where Lit doesn't.
What tooling are you looking for? We have template type checkers and eslint plugins. Starter kits. Prettier works for formatting...
I am aware you don't need decorators, this isn't what I was saying. I said its the only way to use Lit with any measure of good developer experience.
Decorators are not the only thing that make it like Angular. The way templates work, template helpers (directives), controllers are all very Angular like in practice.
Tooling is much more than linters, eslint plugins and starter kits.
Unit & e2e testing helpers, build tools, HMR / dev server support. These all matter too and its important that they keep up to date with expectations of developers in what they expect out of these experiences. Even better when it is all rolled up in a nice CLI interface.
Not to mention it would be nice to have optimized convenience features, like Vue style SFCs for authoring components and templates.
Stencil requiring a compiler is not a negative. It makes it an end to end solution and thats very popular for a reason (Next.js, Nuxt, Sveltekit are all very popular for a reason).
I believe strongly that projects need to provide these things as 1 party concerns. I think the Vue community is proof positive of how strong this can be for the ecosystem.
I'm certain between Google, Microsoft, Ionic, and many others there could be real solutions for all this. After all, the biggest advantage of using web components is they are a shared interface
Lit templates and massively different from Angular templates, and more like React templates if anything. All Lit control flow and expressions are just JavaScript in Lit, like React, and different from Angular.
Directives in Lit are just JavaScript function calls you use in bindings. In Angular they are things that get access to the template and contents themselves.
Angular doesn't have a concept similar to Reactive Controllers that I know of. They are more similar to custom React hooks.
I still don't understand the criticism. Lit template have HTML elements, bindings, and control flow. They're pretty JSX-like just within standard JS syntax. Stencil is the same, but JSX instead of HTML strings.
Do you have any specifics on what the extra boilerplate is to you? What makes Stencil components feel like "components"? Are you just saying you like JSX?
Not how it works per se, its how it feels. I admit this to be a subjective metric, but it felt all kinds of Angular-like when I authored web components. Lots of boilerplate and indirection that I didn't enjoy. Its not the declarative authoring experience I was hoping for.
Stencil was the cleanest to me because components felt like components, and could be interacted with more naturally.
There's just alot of missing pieces. Tooling matters. Ecosystem matters. Developer Experience matters. There's a reason so many people turn to Next.js or Nuxt etc.
Having worked with both stencil and lit for years each, there's very little difference between them in how they operate? Stencil uses jsx, lit uses template literals. Otherwise there's a striking degree of similarity. You could probably convert a stencil component to lit in an hour or so (in fact, I have done this multiple times as I migrated away from stencil).
If anything lit has some additional niceties, a better ecosystem, and less restrictions that gets imposed by stencil's compiler
Are decorators the only thing making Lit like Angular? Angular is not the only project that uses decorators, and decorators are standardized in JS now.
Stencil is good, but requires a compiler where Lit doesn't.
What tooling are you looking for? We have template type checkers and eslint plugins. Starter kits. Prettier works for formatting...
https://lit.dev/docs/tools/development/