Warnung: Es gibt Spoiler für Sonntag „Silicon Valley.“
Die Sonntagsfolge von „Silicon Valley“ war eine Rückkehr zur Normalität. Richard ist wieder verantwortlich für seine Firma Pied Piper und die Crew hat ein paar neue Mitarbeiter eingestellt. Da für Richard im Moment alles richtig zu laufen schien, war es eine Chance für die Episode, ein bisschen Spaß zu haben, und das kam in Form einer weitgehend trivialen Debatte in der Programmierwelt.
Zu Beginn der Episode flippt Hendricks aus, als er erfährt, dass eines der „Commits“ seines neuen Mitarbeiters — ein Stapel geschriebenen Codes — mit Leerzeichen über Tabulatoren erstellt wurde.
Die Diskussion darüber, ob Tabulatoren oder Leerzeichen verwendet werden, dominiert die Länge der Episode. Und am Ende bringt es sogar Richards aufkeimende Beziehung zu einem Facebook-Mitarbeiter zum Stillstand.
„Ich glaube nicht, dass das funktionieren wird. Es tut mir so leid. Ich meine, wie was, wir werden Kinder in die Welt bringen, mit dem, was über ihrem Kopf hängt? Das ist nicht wirklich fair, findest du nicht?“ Hendricks spuckt wütend aus.
„Kinder?“ fragt Winnie verwirrt. „Wir haben noch nicht einmal zusammen geschlafen.“
„Und rate mal was?“ Richard antwortet wütend: „Das wird jetzt nie passieren. Weil ich auf keinen Fall mit jemandem zusammen sein werde, der Leerzeichen über Registerkarten verwendet.“
Es ist eine klassische „Silicon Valley“ -Szene, die direkt an der Schnittstelle von Heiterkeit, Nerdigkeit und tiefem Schrecken sitzt, wo die Show ihre Comedy-Marke aufgebaut hat.
Aber abgesehen vom Ende der ersten echten Romanze, in die wir Richard verwickelt haben, was zum Teufel war hier los? Die Show gibt Nicht-Programmierern ein wenig Kontext zu Beginn der Episode und lässt uns wissen, dass die Tabs-vs.-Spaces eine weitgehend triviale Codierungsdebatte sind, zu der Richard neurotisch starke Meinungen hat.
Hier ist, worum es in dem Argument eigentlich geht.
Code wird normalerweise nicht in was-Sie-sehen-ist-was-Sie-bekommen-Editoren wie Microsoft Word geschrieben. Vielmehr wird es oft als Rohtext eingegeben, wobei die gesamte Formatierung Zeile für Zeile erstellt wird.
Und wie Jamie Zawinski in einem Blogbeitrag mit dem Titel „Tabs versus Spaces: An Eternal Holy War“ im Jahr 2000 erklärte, wird Code normalerweise mit unterschiedlich großen Einzügen und Leerzeichen formatiert:
Die stärker eingerückten Klauseln im Code sind im Allgemeinen den weniger eingerückten über ihnen untergeordnet. Die Formatierung dient also mehr als einem ästhetischen Zweck; Es ist Teil der visuellen Sprache, mit der Programmierer kommunizieren.
Historisch gesehen gab es jedoch zwei Möglichkeiten, dieses Leerzeichen zu erstellen: Richards Favorit Tabs erfordert weniger Tastendrücke (und damit in den meisten Fällen weniger Zeichen, an die sich das Computerprogramm erinnern kann), ist aber etwas ungenau. Winnies Favorit Spaces bietet Programmierern eine spezifischere und wörtlichere Möglichkeit, ihre Einrückungen zu erstellen. Es ist jedoch langsamer zu verwenden und verbraucht mehr Speicherplatz.
In seinem Blogbeitrag 2009 „Tod den Weltraum-Ungläubigen!“ Jeff Atwood repräsentiert visuell den Unterschied:
Leerzeichen, dargestellt durch Punkte, befinden sich links. Registerkarten, dargestellt durch Pfeile, befinden sich rechts.
So trivial die Debatte auch erscheinen mag, sie läuft in Programmierkreisen heiß. (Zum Zeitpunkt des Schreibens gibt es 277 Kommentare zu Atwoods Artikel.) Und es hat eine gewisse Bedeutung. Atwood weist auf eine Studie aus dem Jahr 1984 hin, die zeigt, dass Programmierer Code, der in dem Stil geschrieben wurde, mit dem sie vertraut sind, viel besser lesen können.
Und wenn Teams, die an Code arbeiten, nicht einverstanden sind, kann dies zu Machtkämpfen führen, wie sich beide Blogbeiträge erinnern.
Zum Glück für Programmierer auf der ganzen Welt behandelt neuere Software oft all diese Formatierungsprobleme selbst. Daher sollten weniger Codierungsteams oder fiktive Beziehungen wegen ihnen auseinanderfallen.