Monthly Archives: April 2013

Quick-Hints #4

Ein paar kurze Anmerkungen und Hinweise zu verschiedenen Themen, die nicht unbedingt einen ganzen eigenen Post benötigen aber trotzdem erwähnenswert sind:

  • In Firefox gibt es ein nettes “Phänomen” bezüglich des Function-Hoistings: Theoretisch würde man eine Funktionsdeklaration unabhängig von der Platzierung im Sourcecode benutzen können, da diese immer an erste Stelle im Code gehoben wird. Immer? Erst glaubte ich es sei ein Bug, aber Firefox entspricht hier nur der Spec. Innerhalb von Blocks (z.B. if(){}) “funktionierte” das Hoisting nicht wie erwartet. Ich konnte die Funktion nicht nach dem Aufruf deklarieren. Warum? Der eigentliche Grund ist, dass innerhalb von Blocks nur Statements erlaubt sind und eine Funktionsdeklaration ist kein Statement sondern ein SourceElement. Die meisten JavaScript-Engines behandeln eine Functionsdeklaration aber wie ein Statement, was natürlich nicht korrekt ist.

  • Automatische hyphenation (weicher Wortumbruch beim erreichen des Randes) ist in CSS3 möglich und in vielen Browsern auch unterstützt. Um eine höhere Abdeckung zu erreichen kann ein JavaScript herangezogen werden: Hyphenator.js

  • Die Geeksphones mit Firefox OS sind seit heute zum Kauf erhältlich. Für ~90€ oder ~150€ gibt es gut ausgestattete Smartphones eines spanischen Herstellers. Das sind natürlich absolute Kampfpreise und es wäre allein aufgrund des Betriebssystems sicherlich eine Bestellung wert. Apps für Firefox OS können in HTML5/CSS3/JavaScript entwickelt werden.

 

Semikolon Wars

Semikolon

Dank der Automatic Semicolon Insertion (ASI) muss man in JavaScript nicht jede Angabe mit einem Semikolon beenden. In fast allen Fällen wird bei einem Zeilenumbruch automatisch durch den JavaScript-Interpreter ein Semikolon eingefügt.

Aus dieser Tatsache ergbit sich ein Streit darum, ob man JavaScript nun mit oder ohne Nutzung der ASI programmieren soll. Sprich: Dürfen wir faul sein; trägt es der Lesbarkeit zu, wenn wir JavaScript-Statements ohne Semikolon, nur mit einem Zeilenumbruch, beenden. Ob es mit einer Diskussion auf Github gestartet ist oder es nur der erste richtige öffentliche Streit war, weiss ich nicht, aber der Entwickler “fat” verhilt sich nicht sonderlich klug (aus meiner Sicht). Er ist einer der Entwickler von Bootstrap und bei Twitter angestellt. Anstelle auf Wünsche der Community einzugehen oder diese zumindest vernünftig Begründet abzulehnen, legt er sich mit einem bekannten JS-Guru (Douglas Crockford) und einem großen Teil der restlichen Nutzer in einer ungeschickten Art und Weise an.

Es gibt Gründe für und Gründe gegen das Nutzen von Semikolons in JavaScript. Der Erfinder der Programmiersprache, Brendan Eich, hatte sich dazu auch in seinem Blog geäußert. Meiner Meinung nach gibt es aber ein Argument, was alle anderen aussticht: Das Weglassen von Semikolons kann in wenigen Fällen Bugs verursachen, das Benutzen hingegen nicht.

PS: Mittlerweile scheinen übrigens einige Kommentare von “fat” gelöscht worden zu sein, was der Reputation seines Arbeitsgebers und seiner selbst sicher entgegen kommt.

Quick-Hints #3

Mal wieder eine kleine Ansammlung von Tipps und interessanten Infos.