Nightly Build 2015, Teil 2

Dies ist der zweite von fünf Blogeinträgen zur Nightly Build 2015 in Köln. Hier geht es los.

  • Teil 1: Bastian Allgeier mit "Homemade Pressure". Wie geht ein Entwickler mit der Erwartungshaltung um, die Kunden an sein Softwareprodukt haben.
  • Hier: Teil 2: Ashley Williams mit "If you wish to learn ES6/ES2015 from scratch, you must first invent the universe". Code als Sprach- und Ausdruckswerkzeug.
  • Teil 3 Stefanie Schirmer mit "A Culture of Courage". Über eine Team- und Firmenkultur (bei Etsy) die Entwickler integriert und versucht "Wissensghetto" zu vermeiden.
  • Teil 4: Garann Means mit "Code is a Job". Über die richtige Einstellung zur Arbeit, wider der Ausbeutung und dem Ausbrennen von Webentwicklern.
  • Teil 5: Lizzie Mary Cullen mit "Overcoming the Fame Game". Über die Kämpfe in Kopf und Herz, die lähmen und einen Ausbrennen lassen.

Ashley Williams, "If you wish to learn ES6/ES2015 from scratch, you must first invent the universe"

Ashley Williams aus Queens/New York, ist ein kleiner, rotziger Irrwisch (von Beruf Engineer bei der Mozilla Foundation), deren Vortrag ein Assoziationsblaster zum Thema Javascript und Programmiersprachen war und damit ein Vortrag der thematisch am ehesten aus dem Rahmen des Abends fiel. Wer sich ihren Vortrag ansehen will: diesen Sommer hielt sie ihn in leicht abgewandelter Form bereits auf der JSConf.

Knackpunkt des Vortrages ist die Frage, wie abstrakt eine Programmiersprache sein soll. Anhand der Gegenüberstellung einer Schleifenfunktion von Ruby vs. Javascript veranschaulichte sie zwei Gegenpole:

  • Klarheit vs Präzision
  • Abstraktion vs Realität

Klarheit kann nicht präzise sein, da Präzision zahlreiche Ausnahmen oder Details erfordert, die die Klarheit schwinden lassen.

Die Abstraktion schafft Schichten zwischen sich und der Realität, um Klarheit zu schaffen. Dabei entfernt sie sich, z.B. in Programmiersprachen, aber von den reelen Mechanismen. Rubys array.each do |item| sieht zwar als Schleifenkonstrukt ästhetischer aus, als Javascripts for (var i=1; i<array.length; i++) – aber gleichzeitig versteckt die Abstraktion das Grundprinzip von Schleifen in der Programmierung – Status, Bedingung, Inkrement. Ist dieses "Verstecken", ist diese Abstraktion, dem Lernen von Programmierprachen wirklich förderlich? Williams sagt: Nope.

Ashley Williams tritt stattdessen für selbstgebaute Sprach-Erweiterungen und -Abstraktionen ein – Erweiterungen die zielführend für das aktuelle Problem des Programmiers sind. Gemäß Ron Jeffries:

Always implement things when you actually need them, never when you just foresee that you need them.

Ashley ruft zum Abschluss dazu auf, sich vermehrt selber einen Kopf darum zu machen, wie radikal sich Javascript erweitern lässt.

Wenn man versucht Ashleys Vortrag passend in das Rahmenthema des Abends reinzupacken, der Work/Life-Balance von Entwicklern, dann verbirgt sich dahinter der Aufruf, sich von propagierten Vorgaben der Werkzeug- und Sprachhersteller zu entfernen, und sich verstärkt um seinen eigenen Satz an Werkzeugen, sei es Software oder Programmiersprachen, zu kümmern – stellt sich nur die Frage, wie sowas im Rahmen größerer Teams passend gemacht werden kann. In was für Probleme man alleine schon in einem 3-Personen-Team mit einem Grunt-Workflow mit NodeJS, Ruby und Sass laufen kann…