It's my answer to what I can tell you agree is the most important question in software engineering - "What programming language has the shortest 'Hello World' program?"
Problem is, this doesn't lead me to solve any harder problems.
That's not even a criticism of the framework.
Is that a valid criticism?
Angular is for writing medium to heavy complexity applications. Sure, if you want to write hello world programs in it, then it is going to be complex.
This is a generic comment thrown about for all large frameworks.
> It introduces a lot of unnecessary complexity for projects of any size
This I agree.
> It uses invalid HTML, with attribute syntax including brackets and parentheses
True, but so does React and other frameworks. To me, it seems like this is a limitation of HTML rather than a transgression of Angular.
> Sadly It's just not a good framework
It is a good choice for a large organization, with team members changing and all sorts of other goodness.
> requiring multiple files for "hello world"
False (unless you're counting angular.json conf file for Angular CLI??)
> It uses invalid HTML, with attribute syntax including brackets and parentheses
And what, JSX is valid HTML????
FWIW Angular templates is completely valid HTML. (The only non-standard thing is that the attributes are case-sensitive.)
JSX makes so much more sense, making code the parent of the template, instead of keeping code and template as siblings.
I note that Vue and Svelte have the same issue, and yet I rarely hear this criticism of them.
Brackets and parens are valid in attribute names.
Section 13.1.2.3 of the HTML standard[0] states:
> Attribute names must consist of one or more characters other than controls, U+0020 SPACE, U+0022 ("), U+0027 ('), U+003E (>), U+002F (/), U+003D (=), and noncharacters.
The framework is extremely overengineered requiring multiple files for "hello world"
It introduces a lot of unnecessary complexity for projects of any size
It uses invalid HTML, with attribute syntax including brackets and parentheses
Sadly It's just not a good framework