CoffeeScript

23. Juli 2010, 17:24 Uhr 13 Kommentare · Schreiben

Wie allgemein bekannt ist, ist JavaScript ein janusköpfiges Biest mit einer Syntax, die es (wie auch seinen Namen) seinerzeit nur bekommen hat, weil damals alles als cool galt, was bloß entfernt an Java erinnerte. Wie sähe JavaScript aus wenn es heute erfunden würde? Vielleicht wie CoffeeScript. CoffeeScript ist eine kleine Sprache mit entrümpelter Syntax, die zu sauberem JS-Code ohne all die bad parts kompiliert. Beispiel:

# Grupen bei der Fußball-WM, sortiert nach Platzierung in der Vorrunde
gruppen: {
  a: ["Uruguay", "Mexiko", "Südafrika", "Frankreich"]
  b: ["Argentinien", "Südkorea", "Griechenland", "Nigeria"]
  c: ["USA", "England", "Slowenien", "Algerien"]
  d: ["Deutschland", "Ghana", "Australien", "Serbien"]
}

# Die Platzierungen in einer Gruppe ermitteln
ermittle_gruppensieger: (gruppe) ->
    gruppensieger: gruppenzweiter: teilnehmer: "Unbekannt"
    ergebnis: (erster, zweiter, rest...) ->
        gruppensieger: erster
        gruppenzweiter: zweiter
        teilnehmer: rest
    ergebnis gruppen[gruppe]...
    alert "Gruppensieger wurde " + gruppensieger + " vor " + gruppenzweiter + ". Außerdem in der Gruppe: " + teilnehmer

# Wer ist in Gruppe D weitergekommen?
ermittle_gruppensieger('d')

Wird zu:

var ermittle_gruppensieger, gruppen;
var __slice = Array.prototype.slice;
gruppen = {
    a: ["Uruguay", "Mexiko", "Südafrika", "Frankreich"],
    b: ["Argentinien", "Südkorea", "Griechenland", "Nigeria"],
    c: ["USA", "England", "Slowenien", "Algerien"],
    d: ["Deutschland", "Ghana", "Australien", "Serbien"]
};
ermittle_gruppensieger = function(gruppe) {
    var ergebnis, gruppensieger, gruppenzweiter, teilnehmer;
    gruppensieger = (gruppenzweiter = (teilnehmer = "Unbekannt"));
    ergebnis = function(erster, zweiter) {
        var rest;
        var _a = arguments.length, _b = _a >= 3;
        rest = __slice.call(arguments, 2, _a - 0);
        gruppensieger = erster;
        gruppenzweiter = zweiter;
        teilnehmer = rest;
        return teilnehmer;
    };
    ergebnis.apply(this, gruppen[gruppe]);
    return alert("Gruppensieger wurde " + gruppensieger + " vor " + gruppenzweiter + ". Außerdem in der Gruppe: " + teilnehmer);
};
ermittle_gruppensieger('d');

Sieht gut aus, oder? Wer mehr wissen möchte kann sich die neueste Episode von The Changelog reinziehen, in der CoffeeScript-Erfinder Jeremy Ashkenas interviewt wird oder sich in den folgenden nur 30 Minuten langen Talk ansehen. Hierin erklärt und demonstriert Ashkenas alles, was es zu CoffeeScript zu wissen gibt:

Blip.tv

CoffeeScript demonstriert genau die Einstellung, die man haben muss: Wenn die Browser es so schwer haben, den Müll, den sie in sich tragen, loszuwerden, muss man als Entwickler halt selbst ran.

Videos gehen auch in der Blogpause. Heute: JavaScript - The Evil Parts, ein Talk von Billy Hoffman auf der JSConf 2010, in dem es darum geht, welche irreperablen Designfehler von Javascript gigantische Sicherheitslücken darstellen. Anschauen! Aber hinterher nichts böses machen …

Da wird dann klar warum Douglas Crockford gerne HTML5 abreißen würde um zuerst die XSS-Problematik zu fixen.

Node.js Logo

Ich wünsche mir ja schon lange, dass mir endlich mal etwas einfällt, was ich mit Node.js anstellen könnte. Node.js ist serverseitiges Javascript auf Basis von V8, mit dem man performante eventbasierte Echtzeit-Sachen bauen kann. Im folgenden Video erklärt der Node-Erfinder Ryan Dahl die Grundlagen und Vorzüge seines Projekts. Die Vortrags-Performance ist eher unaufgeräumt und der Pullover geht mal gar nicht, das Thema ist wirklich spannend.

Link zur YUI Theater-Seite

Nach Ansicht des Vidos würde ich empfehlen, mal bei Github die Node.js-Projekte zu durchstöbern. Die Leute bauen schon allerlei verrückte Sachen damit – Express ist zum Beispiel ein Sinatra-inspiriertes Webframework auf Node-Basis.

Changes to Javascript

30. April 2010, 01:41 Uhr Keine Kommentare · Schreiben

Wer viel Zeit hat oder heute das Abgleiten in den Feierabend vorverlegen will und Javascript nicht nur in abgefederter Darreichungsform (jQuery und Co) benutzt, dürfte sich für die folgenden Videos interessieren. Es geht um die Neuerungen, die Javascript durch den EcmaScript5-Standard in Zukunft erfahren wird: Ein Strict Mode, eingefrorene Objekte und vieles mehr.

« Neuere Artikel  ·  Ältere Artikel »

Hallo!

Dies ist das Blog von Peter Kröner, Webworker aus der Nähe von Osnabrück. Hier geht es um alles rund um Webdesign und Webentwicklung.

Kauft mein Buch!

Das HTML5-Buch
Bei Amazon kaufen

Mehr Infos auf html5-buch.de/

Unterstützt mein Blog!

Wenn dir gefällt was du hier liest, wirf einen Blick auf Flattr und klick‘ die kleinen orangenen Buttons unter den Artikeln an!

Neue Kommentare

Klaus

Zitat Michael ↑: Zitat Klaus ↑: Solche Aussagen sind es die Tür und Tor öffnen für Lohndumping. Man läuft bei allzu flexiblen (vorallem nach unten) Gehaltsvorstellungen Gefahr, dass...

Robert

Da saß ich wirklich verwundert vor der Mashi-Seite, und habe mich gefragt was der Shit soll, bis mir aufgefallen ist, dass das ganze im FF4b nicht läuft, im FF3.6 hingegen...

Axel

Er hat in dem Video fast wörtwörtlich behauptet, dass “Threads in Java eine schlechte Idee waren”. Wie soll man das sonst interpretieren? Das mit den NaNs hat er in...

Axel

Jetzt behauptet er auch noch, dass Threads in Java eine schlecht Idee waren und man sowieso alles mit einem Event Loop ersetzen kann. Der sollte mal dringend über seinen...

Axel

Klar, aber ich habe das Gefühl, er sollte mal bissel zurückschrauben mit seinem Ego. Bei HTML5 hat er übrigens sehr gute Punkte vorgebracht. Aber jetzt ist das Kind eh schon in den...