Die Unterstützung für Bun wird nun eingeschränkt und als veraltet markiert
(github.com/yt-dlp)- Dieses Issue ist noch Open; ab dem nächsten Release von yt-dlp und/oder
ejswird der Unterstützungsumfang für Bun auf1.2.11bis einschließlich1.3.14begrenzt, und die Unterstützung selbst wird als veraltet eingestuft - yt-dlp wird Bun weiterhin als mit
ejskompatible JavaScript-Laufzeit verwenden, behält sich aber das Recht vor, die Bun-Unterstützung vollständig zu entfernen, falls der Wartungsaufwand zu groß wird - Die minimal unterstützte Version wird von bisher
1.0.31auf1.2.11angehoben; beim Builden desejs-Pakets mit Bun vor1.2.0wird dieejs-Lockdatei ignoriert, was angesichts der jüngsten npm-Supply-Chain-Angriffe als erhebliches Sicherheitsrisiko angesehen wird - Der Grund, warum nicht
1.2.0, sondern1.2.11als Untergrenze festgelegt wurde, ist, dass sich mit Bun vor1.2.11dieejs-Testsuite nicht ausführen lässt - Die Obergrenze wurde auf
1.3.14festgelegt; als Begründung wird angeführt, dass dies das letzte Release war, das noch auf der ursprünglichen Zig-Codebasis gebaut wurde - Dass Bun kürzlich mit Claude in Rust neu geschrieben wurde und die Entwicklungsrichtung auf ein „vollständig vibe-coded“ hindeute, wird als künftige Belastung für Wartbarkeit und Vertrauen genannt
- Ein Kommentar entgegnete, dass auch Deno „vibe coded“ werde, worauf der Maintainer antwortete, dass es einen großen Unterschied zwischen der Nutzung von Claude und der vollständigen Abhängigkeit von Claude gebe
- Auf die Frage, ob dann nicht auch
1.3.4bis1.3.14wegen möglicher Einflüsse von „vibe coding“ nach der Anthropic-Übernahme von der Unterstützung ausgeschlossen werden müssten, antwortete der Maintainer, dass dies geprüft werde - Einige Nutzer widersprachen und meinten, das Blockieren neuer Bun-Versionen noch vor dem Auftreten realer Probleme sei eine unbegründete präventive Einschränkung; stattdessen solle es Warnungen oder Flags geben, damit die Ausführung weiter möglich bleibe
- Ein anderer Kommentar erklärte, dass sich über
--js-runtimesder Pfad zu einer Bun-Binärdatei direkt übergeben lasse; dadurch könne man die neueste Bun-Version wie gewohnt weiterverwenden und nur für yt-dlp statisch Bun1.3.14angeben - Als verwandte Hinweise wurden außerdem ein Issue zum Ende der Unterstützung für Node v20·v21 und ein Issue zur Anhebung der minimal unterstützten Deno-Version auf
v2.3.0verlinkt; zudem wird darauf hingewiesen, dass das EJS-Wiki-Dokument diese Änderung noch nicht widerspiegelt - Der Maintainer hinterließ mit Blick auf Kommentare von Hacker News einen angehefteten Kommentar mit der Bitte, vor dem Posten erst zu überlegen, ob tatsächlich ein Interesse an Problemen mit Bun in yt-dlp besteht
1 Kommentare
Hacker-News-Kommentare
Die Entscheidung ist nachvollziehbar. Wenn der Großteil des Codes nicht vom Maintainer selbst geschrieben wurde, ist es vermutlich schwer, die Codebasis wirklich zu verstehen.
Selbst den komplett neu geschriebenen Code zu prüfen, ist praktisch unmöglich. Es sind immerhin genau 1 Million Zeilen Code https://github.com/oven-sh/bun/pull/30412
Im Grunde ist es fast derselbe Inhalt in einer anderen Syntax, und deshalb sieht es für Rust-Entwickler wohl unschön aus. Die Bun-Entwickler wollten anscheinend Code, der ihnen vertrauter vorkommt.
Allerdings hätte man das meiner Meinung nach 2.0 nennen sollen. Dann hätte es sich auch weniger überstürzt angefühlt. Selbst in 1.3.14 gibt es schon ein paar Regressionen, aber gerade scheint es so viele kleine Rust-bezogene Brände zu geben, dass sich kaum jemand groß daran stört.
Das größere Problem ist, dass Bun ständig glänzenden neuen Features hinterherjagt und sie nicht zu Ende bringt. Tests sind größtenteils, aber nicht vollständig, Vitest; größtenteils, aber nicht vollständig, Jest; und pnpm größtenteils, aber eben auch nicht vollständig. Jetzt gibt es auch Bildfunktionen, also größtenteils sharp, aber ebenfalls nicht vollständig. Der Dev-Server ist größtenteils Vite, aber wieder nicht komplett. Lang laufende Prozesse sind größtenteils wie bei Node, haben aber Memory Leaks, und das dürfte wohl die Motivation für den Rust-Wechsel gewesen sein.
Als ich den Beitrag über die Bildroutinen gesehen habe, ist mir etwas das Herz gesunken. Wieder ein neues glänzendes Objekt, und zusammen mit den Test-Bugs bin ich am Ende komplett zu Vitest gewechselt
Ich bin nicht sicher, ob dieses Rewrite selbst eine gute Idee ist und gut ausgehen wird, aber die Gegenargumentation überzeugt mich genauso wenig
Niemand weiß, was diese über 1 Million Zeilen eigentlich tun. Niemand geht mit Begeisterung daran. Man bekommt Anforderungen, und abgesehen von der Oberfläche, die man anfassen muss, behandelt man alles andere als Blackbox.
So entstehen 14 Implementierungen desselben Background-Service, 8 Abhängigkeiten mit derselben Aufgabe, 6 sich überschneidende Frameworks und ein völliges Durcheinander aus Stil und Herangehensweise. Und trotzdem gilt das kaum als wichtig
Ich halte das für besser als reines „Vibe Coding“, aber bei unwichtigen Teilen mag das noch in Ordnung sein — bei wirklich durchdachter Kerninfrastruktur ist es schwer akzeptabel
Es ist ja nicht so, als würde man jemanden wegen Ethnie oder Religion diskriminieren. Wenn man keinen großflächigen vibe-gecodeten Oberflächenbereich will, muss man sich dafür doch nicht rechtfertigen.
Das fällt unter den „künstlerischen“ Ermessensspielraum von Entwicklern, und man scheint vergessen zu haben, dass Software von Natur aus Meinungen enthält
Wenn es funktioniert, wird es weiter funktionieren. Sie wollen es nur nicht unterstützen und warten und dafür Issues lösen
Wenn das auf Rust portierte Bun in jeder messbaren Hinsicht besser wäre, alle Tests bestünde, gleich gut oder besser performte und bestehende Bugs behöbe, warum sollte dann wichtig sein, in welcher Sprache es geschrieben wurde und wie es implementiert wurde? Entscheidend wäre doch, dass die Qualität höher ist.
Wenn man dem Bun-Team nicht traut, nachdem es die Rust-Version veröffentlicht und abgesegnet hat, ist es logisch auch fragwürdig, warum man der Zig-Version vor zwei Wochen getraut hat. Die yt-dlp-Entwickler wirken dadurch töricht
Ich benutze Bun wirklich sehr gern, deshalb macht es mich etwas traurig, dass sich die Richtung seit der Anthropic-Übernahme so verändert hat.
Ich möchte ein gutes Node mit Batteries Included, aber ich möchte nicht, dass es vibe-gecodet ist
Das heißt nicht, dass ich den Merge unterstütze. Ich bin gegen solche YOLO-artigen Engineering-Ansätze. Ich habe seit der Ankündigung nur nichts mehr verfolgt und frage mich, wie die Umstellung läuft
Natürlich im furchtbar traurigen Sinn von komisch
Diese Entscheidung wirkt eher wie eine politische Bewertung als eine technische. Habt ihr seit dem Rust-Rewrite bei Bun mehr Segmentation Faults, Out-of-Memory-Fehler, Sicherheitslücken oder Bugs gesehen?
Natürlich nicht, denn das Rewrite ist ja noch gar nicht integriert. Es wirkt so, als würde hier nach Bauchgefühl gegen AI-Beteiligung entschieden.
Engineering-Tools wählt man nicht nach Gefühl aus, sondern danach, ob sie tun, was man will. Wenn Bun mehr Bugs bekommt und sich wie schlechtere Software anfühlt, würde ich es nicht nutzen, aber diese Einschätzung würde auf Daten basieren. Jarred hat mit Bun schon viele beeindruckende Dinge gemacht, und es erscheint unwahrscheinlich, dass er ein Rewrite veröffentlicht, das seinen Qualitätsmaßstäben nicht genügt — ich würde also erst einmal abwarten
Wenn man vernünftigerweise von einem erhöhten Risiko für Sicherheitsprobleme ausgeht, wäre es eher fahrlässig, an den Nutzern zu experimentieren.
Die verantwortungsvolle Entscheidung ist eher: „Wir unterstützen die Ausführung unserer Software auf dieser neuen Bun-Version, die gerade vom main abgeschnitten wurde, vorerst nicht sofort.“
Schade ist nur, dass es nicht wie ein Plan wirkt, spätere Releases neu zu bewerten, sondern eher wie die Absicht, es niemals wieder zu unterstützen. Natürlich schulden die yt-dlp-Entwickler niemandem etwas
Ein vollständiges Rewrite von 1 Million Zeilen ist faktisch eine neue Runtime mit demselben ABI wie zuvor, und für viele Downstream-Nutzer ist das als Produktionsabhängigkeit unangenehm.
Selbst wenn wir für die Diskussion annehmen, dass Bun komplett von Hand neu geschrieben worden wäre, wäre die Lage dieselbe. Ich halte solche Entscheidungen für ziemlich standardmäßig, und obwohl ich persönlich glaube, dass die Qualität des LLM-Rewrites insgesamt wohl gut sein wird, würde ich weder mein Produkt noch mein Unternehmen darauf verwetten. Riskante Änderungen möchte ich in meiner Software selbst auswählen und nicht wegen einer transitive Abhängigkeit aufgezwungen bekommen
Ich werde nicht untätig zusehen, bis Bugs explodieren und alles auseinanderfällt.
Wenn ein Projekt von Menschen betrieben wird, die nur darauf schauen, ob „das Tool tut, was ich will“, würde ich es aus meinen Abhängigkeiten entfernen
Am einfachsten steigt man von einem Tool aus, das zum Zugunglück werden könnte, bevor man es überhaupt integriert hat
Es geht hier zwar um die Rust-Portierung, aber sie ist noch nicht veröffentlicht.
Es ist von „vorhersehbaren Kompatibilitäts- und Sicherheitsproblemen“ die Rede, aber auch die Zig-Version von Bun crasht ziemlich oft.
Ich wünschte, yt-dlp hätte genauer begründet oder verlinkt, warum es vorhersehbare Kompatibilitätsprobleme geben soll. Beide Projekte haben Test-Suites, also sollte in einer idealen Welt ein schnelles Rewrite möglich sein.
Vielleicht will man die Lage nicht weiter anheizen, aber wenn konkret gefundene Probleme existieren, würde ich sie gern sehen.
Bun.rs hätte keine Minor-Version, sondern eher 1.4 oder 2.0 sein sollen, und Alpha-/Beta-Releases wären ebenfalls wünschenswert gewesen
Aber es ist erst seit einer Woche öffentlich, und bislang sieht man kaum echte Regressionsdaten. Es wirkt eher wie bloßes „gefällt mir nicht“-Genörgel
Diese Logik liest sich für mich kaum anders als: „libfoo wird jetzt mit emacs statt vim entwickelt, also kann man ihm nicht mehr trauen.“
Natürlich ist es nicht exakt dasselbe, aber es fühlt sich aus einem bestimmten Grund ähnlich an.
Die einzige Wahrheit bei Software ist, ob sie in meinem Use Case funktioniert. Auch vor AI wusste man nicht, ob der Autor streng methodisch vorgegangen ist oder einfach zufällig Dinge ausprobiert hat, bis etwas lief.
Anders gesagt: Ich habe Software nicht danach beurteilt, welche Methodik oder welche Tools bei ihrer Entstehung verwendet wurden. Ich habe jede Menge Software benutzt, deren Test-Suite nicht existierte oder miserabel war, und Leute, die Memory Safety lieben, nutzen auch Tools in C, und umgekehrt genauso.
Deshalb klingt die Logik „Ich mag die Art des AI-Einsatzes nicht, also benutze ich es nicht“ für mich kaum überzeugender als zu sagen, man höre auf, etwas zu benutzen, weil einem die Wahl des Editors des Autors nicht gefällt
Sonst gäbe es auch keine Konzepte wie Fair-Trade-Schokolade/-Kaffee
Wäre das für Kunden des Produkts dann auch fast dasselbe wie ein Editorwechsel des Maintainers, also ein irrelevantes Detail?
Aber über LLMs würden das wohl nicht viele behaupten.
Vibe-Bun könnte genauso gut oder besser sein als das frühere Bun, aber woher sollen wir das zum jetzigen Zeitpunkt wissen?
Und auch die Aussage „man konnte nie wissen, ob Software streng gemacht wurde, und hat sie nicht nach Methodik beurteilt“ stimmt nicht. Manche prüfen vor der Übernahme eines Projekts oder bei der Entscheidung über die weitere Nutzung durchaus, ob ein erträgliches Maß an Strenge vorhanden ist. Ich mache das bei wichtigen Dingen ebenfalls so.
Noch mehr Menschen verlassen sich auf Reputationssignale; die sind nicht perfekt, korrelieren aber und können ausreichen — und sind viel einfacher als eine direkte manuelle Prüfung
Wir brauchen dringend einen neuen Begriff, um die Art der LLM-Nutzung in der Entwicklungsarbeit zu beschreiben. „Vibe Coding“ hat zwar eine strenge Definition, aber gefühlt interessiert sich niemand dafür.
Es ist wirklich schwer zu glauben, dass die Rust-Portierung zu 100 % nur „Vibe“ im ursprünglichen Sinn gewesen sein soll.
Das Ganze ist zu einem emotionalen Schlammkampf geworden, egal ob positiv oder negativ, und wenn man „Vibe Coding“ als generellen abwertenden Begriff für LLM-Nutzung benutzt, wird es viel zu schwer, noch zu verstehen, welches konkrete Problem eigentlich gemeint ist.
Ich selbst nutze LLMs zur Unterstützung bei der Entwicklung und mache schneller bessere Arbeit, gemessen an allen Kennzahlen, die einem Engineer wichtig sein dürften
https://x.com/karpathy/status/1886192184808149383
Bei genau dieser Portierung ging es offenbar so schnell, dass ein Mensch die Validität der Übersetzung nicht überprüft hat. Ob künftig überhaupt eine manuelle Validierung stattfindet, ist ebenfalls unklar.
Nach Dijkstras Maßstab haben allerdings schon lange vor AI die meisten Softwareprojekte „Vibe Coding“ betrieben — im Sinne von: dem Gefühl folgen und vergessen, dass Korrektheit überhaupt existiert.
Die Korrektheit komplexen Codes sicherzustellen, ist schwer, aber in einer Welt mit 1 Milliarde Hackern im Datacenter wird das immer weniger optional werden.
Zusatz: „Der unveröffentlichte Rust-Port von Bun enthält 13.365 unsafe-Blöcke“
https://news.ycombinator.com/item?id=48239790
Die Technik ist noch so neu, dass Forschung schwierig ist, aber selbst optimistisch betrachtet zeigt die empirische Evidenz in manchen Bereichen nur etwa 3 % Verbesserung.
Code zu schreiben ist in unserer Arbeit ohnehin selten der Flaschenhals
Ich verstehe nicht, warum so viele Menschen sich von dieser Entscheidung derart unter Druck gesetzt fühlen. Wenn man wirklich ein Vibe-Coding-Enthusiast ist, warum vibe-codet man dann nicht einfach selbst ein besseres yt-dlp oder forkt das bestehende und passt es nach Bedarf an?
Es hieß sogar, Menschen würden für alles mögliche einmalige persönliche Software vibe-coden.
Dann sollte es für Vibe-Coder doch keinen Grund geben, sich über irgendeine Software-Entscheidung zu beschweren. Einen persönlichen Fork zu vibe-coden, der einem besser gefällt, müsste doch kinderleicht sein. Ist das nicht das Versprechen von Vibe Coding?
Das ist dieses verbreitete, falsche Anspruchsdenken gegenüber Projekten, die von der Zeit und Mühe anderer getragen werden. Es ist immer wieder erstaunlich, wie Menschen für ihre gewünschten Features einfach die Zeit und Arbeit anderer verplanen wollen.
Diejenigen, die die Arbeit machen, haben das Recht, Entscheidungen zu treffen, und wenn es einem nicht gefällt, kann man selbst forken. So funktioniert dieses Ökosystem seit jeher.
yt-dlp lässt sich auch jetzt schon überraschend leicht anfassen
Ich erlebe solche Situationen auch am Arbeitsplatz, und es macht mich wahnsinnig, dass bei AI ehrliche technische Meinungsverschiedenheiten anscheinend nicht erlaubt sind
Ich weiß nicht recht, wie ich mich bei diesem Bun-Rewrite fühlen soll.
Einerseits fühlt es sich sehr beängstigend an, dass der Großteil der Codebasis nicht geprüft wurde.
Andererseits heißt es, dass die Tests mit kaum Regressionen durchlaufen.
Vielleicht liegt das an meiner mangelnden Erfahrung in diesem Bereich, aber ich würde Tests nicht so stark vertrauen, dass ich mich völlig darauf verlasse, ohne den Code zu lesen