Ist ATScript die Zukunft von JavaScript?

Seit geraumer Zeit versucht Google die Script Sprache JavaScript voran zu bringen. Dabei ist die neuste Errungenschaft von Google nach Dart, die Programmiersprache ATScript. Um ATScript als ECMAScript Standard zu forcieren, wird Angular JS 2.0 in ATScript geschrieben. ATScript stellt nicht nur ein typisierte Superset von ECMAScript 5 und der bald erscheinenden ECMAScript Version 6 dar, sondern ist auch ein Superset von TypeScript (Microsoft’s JavaScript basierte Programmiersprache).

Nach der Meinung der ATScript Entwickler, soll ATScript nicht als eine eigene Sprache angesehen werden, sondern als eine Erweiterung von JavaScript betrachtet werden. Dabei stellt uns ATScript TypisierungField AnnotationsMetadata Annotations und Type Introspection mit Annotations Unterstützung als Erweiterung bereit. Um diese Eigenschaften reibungslos in JavaScript zu verwenden, wird der ATScript Code in JavaScript Code kompiliert. Der kompilierte Code ist syntaktisch nach dem ECMAScript 5/6 Standard aufgebaut.

Typisierung für Variablen, Parameter und für Methoden gibt es schon in TypeScript, folglich erfindet ATScript in diesem Bereich nichts neues. Aus diesem Grund ist die Type Annotations Syntax von ATScript vergleichbar mit der Type Annotation Syntax von TypeScript. Der ATScript Code kann durch den traceur compiler auf JavaScript und auf der Dart Plattform zum Laufen gebracht werden.

Typisierungs Beispiel in ATScript:

 class MyClass {
        methodA(name : string) : int {
            var length : int = name.length;
            return length;
        }
    }

Der kompilierte Code in JavaScript (ECMAScript 6)

 import * as rtts from 'rtts';
    class MyClass {
        methodA(name) {
            rtts.types(name, rtts.string);
            var length = tts.type(name.length, rtts.int);
            return rtts.returnType(length, rtts.int);
        }
    }

Durch diese Eigenschaft, kann man den Code schon zur Laufzeit auf Typsicherheit überprüfen.
Eine zusätzliche Erweiterung in ATScript sind Meta-data annotations. Diese Eigenschaft wird in anderen Programmiersprachen schon Jahre lang erfolgreich praktiziert. Wie zum Beispiel in Java (durch “annotations”) oder in Python (durch “decorators”) nur in JavaScript sucht man diese Eigenschaft vergeblich. Diese Lücke will nun ATScript in JavaScript schließen.

Meta-data annotations Beispiel in ATScript:

 
class Inject {}

class Component {
  selector:string;
  constructor({selector:string}) {
    this.selector = selector;
  }
}

class Server {}

@Component({selector: 'foo'})
class MyComponent {
  @Inject()
  constructor(server:Server) {}
}

Der kompilierte Code in JavaScript (ECMAScript 6)

import * as rtts from 'rtts';

class Inject {}

class Component {
  selector;
  constructor({selector}) {
    this.selector = selector;
  }
}

class Server {}

class MyComponent {
  constructor(server) {}
}

MyComponent.parameters = [{is:Server}];
MyComponent.annotate = [
  new Component({selector: 'foo'}),
  new Inject()
];

Bei genauer Betrachtung von ATScript kommt man zum Ergebnis, dass ATScript gute durchdachte Lösungsansätze bietet, wie sich JavaScript in der Zukunft weiter entwickeln kann. Ob JavaScript diesen Weg ein schlägt, hängt von zwei Faktoren ab: Ein Faktor ist der Erfolg von Angular.js 2.0 (Release 2015) und der andere Faktor ist, wie sich allgemein die Softwareentwicklung ausrichtet. Aber durch das Aufbauen auf den Vorarbeiten von TypScript, hat ATScript aktuell den richtigen Weg eingeschlagen.

Short URL for this post: http://wp.me/p4nxik-2hr
This entry was posted in Web as a Platform and tagged , , , , , . Bookmark the permalink.

One Response to Ist ATScript die Zukunft von JavaScript?

  1. Ich glaube das ATScript die Zukunft ist von JavaScript.

Leave a Reply