Hacker News new | ask | show | jobs
by warent 1137 days ago
Their own website renders the Angular "template" as a string with no syntax highlighting.

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

6 comments

Sadly, those statements are objectively false.

> 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 can be syntax highlighted and linted easier. What if a variable that is being referenced is missing at that time in the component's lifecycle?

JSX makes so much more sense, making code the parent of the template, instead of keeping code and template as siblings.

This has been a debate since long before React or Angular existed. Keeping code and templates together typically makes sense to programmers while keeping the template as html in a separate file means you can edit it in any html editor, no special tools needed. I've always been partial to keeping them together, but working with designers who prefer it the other way, I can at least respect where they are coming from.
I mildly agree.

I note that Vue and Svelte have the same issue, and yet I rarely hear this criticism of them.

> The framework is extremely overengineered requiring multiple files for "hello world"

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.

>Their own website renders the Angular "template" as a string with no syntax highlighting.

That's not even a criticism of the framework.

Lots of web developers love complexity, it makes the work you do seem more important.
> It uses invalid HTML, with attribute syntax including brackets and parentheses

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.

[0] https://html.spec.whatwg.org/#attributes-2

I wrote this on Quora 8 years ago, and it's still true:

https://qr.ae/pypHJw

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?"

We're talking about a framework here, not a programming language. I don't think the above poster's assessment about the amount of files needed for hello world offers a charitable conclusion either, given frameworks are not languages. The same file usage would apply to many other popular 'heavy' opinionated frameworks.
My point is, nobody writes Hello World webapps for a living. The number of lines or files is irrelevant. There is precisely zero value in this metric.
There’s a grain of truth in that thought. First impressions matter, frameworks aren’t exempt from that basic psychological fact. If you treat ’complexity of hello world’ as a proxy for learning curve steepness (again, people do things like that subconsciously), you may end with a very wrong assessment very early. It’ll probably tell more about the assessor than the framework but it’s a real risk.
Indeed - if my goal is a minimal Hello, World, I don't even need javascript, I can put "Hello World" in a text file and name it index.html.

Problem is, this doesn't lead me to solve any harder problems.

Sorry, I misread your comment.