Svelte has made the classic mistake of creating a template-based framework, which inevitable leads to a DSL, then to a miniature programming language, then to a nightmare of incidental complexity. React won for a lot of reasons, but near the top of the list is JSX.
JSX is not a templating language, it’s just syntactic sugar for plain JavaScript. I never have to wonder what new features have been added to JSX, I never have to struggle with extensions to JSX that some 3rd-party library depends upon. Template-based frameworks are akin to Lisp reader macros, and this is especially true for Svelte in that it is a compiler. But reader macros will kill a language’s ecosystem quickly, in that they break composability. JSX was a clear winner over Angular’s directives for exactly this reason.
Svelte has some cool ideas, but regressing back to another Handlebars or Mustache isn’t one of them.
JSX is not a templating language, it’s just syntactic sugar for plain JavaScript. I never have to wonder what new features have been added to JSX, I never have to struggle with extensions to JSX that some 3rd-party library depends upon. Template-based frameworks are akin to Lisp reader macros, and this is especially true for Svelte in that it is a compiler. But reader macros will kill a language’s ecosystem quickly, in that they break composability. JSX was a clear winner over Angular’s directives for exactly this reason.
Svelte has some cool ideas, but regressing back to another Handlebars or Mustache isn’t one of them.