War Angular jemals uncool?

Natürlich nicht. Es ist neben React und Vue eines der "Big 3". Doch Angular hatte immer seinen eigenen Bereich — Enterprise–Anwendungen. Das Ökosystem hinter Angular ist riesig. Alles, was unter @angular auf github zu finden ist, ist de facto Standard. Die Lernkurve ist höher als bei anderen Frameworks oder Libraries.

Deswegen war es für mich nie attraktiv genug, es für sehr kleine Projekte einzusetzen und vermutlich war das auch das Problem von einigen anderen Entwickler*Innen. Dafür gab es z. B. React oder Vue. Einfachere Handhabung, einfacheres Setup, geringere Lernkurve und für die Integration in andere Anwendungen eher geeignet als Angular.

Lösung

Um dieses Problem zu lösen, wurden schon frühzeitig einige Verbesserungen an Angular vorgenommen. Allem voran der Ivy renderer, welcher in Angular 6 angekündigt wurde, jedoch erst wirklich in Angular 12 Einzug fand. Alles sollte besser und schlanker werden. Hat sich das ganze durchgesetzt? Durchaus. Es brauchte nur eben seine Zeit.

Aber hat es die Leute zum Umdenken gebracht? Weiß ich nicht. Vue und React waren einfach die Platzhirsche für kleinere Anwendungen. Und Angular blieb meiner Meinung nach weiterhin vor allem im Enterprise–Umfeld vertreten. Das könnte sich mit den neuen Features ab Angular 14 stark geändert haben. Nun ist es auch in Angular möglich, wirklich kleine Anwendungen und Bibliotheken zu bauen.

Das Modulsystem ist mittlerweile optional, man setzt stattdessen auf Standalone Components. Boilerplate Code fällt weg, Abhängigkeiten (Module oder andere Standalone Components) können einfach direkt in die Komponente importiert werden. Das macht den Code schlanker, verbessert das Treeshaking und bringt die Abhängigkeiten näher an die Komponente heran als gesammelt in einem riesigen Modul.

Kurzum: Es macht den Code besser wartbar. Und auch die Developer Experience hat sich deutlich verbessert, was z. B. das Bauen angeht. Man kann ab v16 esbuild verwenden, was den Bauprozess extrem beschleunigt. Da das Angular Team sehr eng mit den Chrome DevTools Entwickler*Innen zusammenarbeitet, hat sich auch das Debugging von Angular Anwendungen verbessert. Es ist noch nicht so lange her, dass der Stacktrace beim Debuggen extrem groß war. Das lag daran, dass auch sehr viel irrelevanter Angular Code angezeigt wurde, den die meisten schlichtweg nicht benötigten. Diesen kann man sich jetzt optional einblenden lassen.

Beispiel

Bauen mit esbuild:

Initialer Start ca. 2 s, gecachter Start ca. 1,5 s & weniger Dateien

Bauen ohne esbuild:

Initialer Start ca. 8 s, gecachter Start ca. 3 s

Angular Signals
@Component({
  selector: 'app-root',
  standalone: true, // Standalone component feature
  imports: [CommonModule, RouterOutlet, FormsModule], // Standalone component feature
  template: `
    <input placeholder="placeholder" type="text" [ngModel]="name()" (ngModelChange)="name.set($event)" />
    <div>{{sayHello()}}</div>
  `,
})
export class AppComponent {
  public name = signal('Chris'); // Signal feature
  public sayHello = computed(() => `Hi, my name is ${this.name()}`); // Signal feature
 
  constructor() {
    effect(() => console.log(`show me the current value on signal change: ${this.name()}`));
  }
}

SCHREIB UNS

* Pflichtfeld

SCHREIB UNS

* Pflichtfeld

Cookie-Einstellungen

Diese Website verwendet Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und Zugriffe auf die Website zu analysieren. Zudem werden Informationen zu Ihrer Verwendung der Website an Partner für soziale Medien, Werbung und Analysen weitergegeben. Die Partner führen diese Informationen möglicherweise mit weiteren Daten zusammen, die Sie ihnen bereitgestellt haben oder die sie im Rahmen Ihrer Nutzung der Dienste gesammelt haben.

Weitere Informationen finden Sie in unserer Datenschutzerklärung. Dort können Sie nachträglich auch Ihre Cookie-Einstellungen ändern.

contact icon

Kontakt aufnehmen