Protocol Buffer: Eine Amateurkatastrophe?

2025-09-05

Dieser Artikel kritisiert die Designfehler von Protocol Buffers (protobuf) und argumentiert, dass dessen Typsystem schlecht, das Design ad-hoc ist und zu einer Reihe von Problemen führt, die sich durch den Code ziehen. Die vielen Einschränkungen von protobuf resultieren aus schlechten Lösungen für bereits gelöste Probleme und mangeln an Komposition. Beispiele hierfür sind die Unfähigkeit, oneof-Felder zu wiederholen, und verschiedene Einschränkungen bei map-Feldern. Der Artikel kritisiert auch protobufs Behauptungen hinsichtlich der problemlosen Abwärts- und Aufwärtskompatibilität und wie es Codebasen verschmutzt und Code schwer zu schreiben und zu warten macht. Der Autor argumentiert, dass protobuf nur für große Unternehmen wie Google geeignet ist, nicht für die meisten Unternehmen, und rät Entwicklern, die Verwendung von protobuf aufzugeben.

Mehr lesen
Entwicklung

Von einem Jahr auf Wochen: Optimierung der gemeinsamen Nutzung von Programmgraphen in einem Compiler

2025-05-13

Der Autor verbrachte über ein Jahr mit der Lösung eines Problems der Serialisierung von Programmgraphen in einem Compiler. Die ursprüngliche Lösung war unübersichtlich und schwer zu warten. Durch die Zusammenarbeit mit anderen und die Umformulierung des Problems als Suche nach dem niedrigsten gemeinsamen einzelnen Vorfahren (LSCA) im Graphen nutzte er bestehende LCA-Algorithmusbibliotheken und clevere Techniken der trägen Programmierung. Das Ergebnis ist eine elegante Lösung mit linearer Zeit, ein Drittel der Größe der ursprünglichen Lösung, die Leistungseinbußen effektiv behebt.

Mehr lesen