I'm a frontend developer working on angular for two years. Initially I thought this could be actually better than other frameworks, since it forces you to use typescript and has a standard, easy and clear way to do forms. But seems like that for everything else, angular and it's community like to hug a more-complex-than-it-should-be approach. No single file components. No straightforward export of a component to be used from a third party app. Http requests are even exposed as observables in the official docs. Don't really know how so many companies use this.

Hey, Angular team member here.

The decision to use Observables was made after an extensive discussion. You can follow the thread here https://github.com/angular/angular/issues/5876. If that's an interface that doesn't align with your expectations, you can use fetch and/or wrap it in a service to take advantage of the DI mechanism we provide. Another popular third-party solution is https://github.com/axios/axios.

There's a straightforward way to export components to be used by a third-party app directly via the Angular CLI. If you'd prefer to use a component outside of Angular, we have @angular/elements.

Hope this addresses some of the concerns you had.