TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Stability by Design

72 点作者 potetm大约 7 小时前

6 条评论

Animats大约 6 小时前
I&#x27;m currently struggling with instability in the Rust 3D graphics stack.<p>All this stuff has been around for about five years now, and was mostly working five years ago. The APIs should have settled down long ago. Despite this, there are frequent &quot;refactorings&quot; which cause breaking changes to APIs. (I&#x27;m tempted to term this &quot;refuckering&quot;.)<p>Some of this API churn is just renaming types or enum values for consistency, or adding new parameters to functions. Some changes are major, such as turning an event loop inside out. Code using the API must be fixed to compensate.<p>Because of all the breaking changes, the related crates (Wgpu, the interface to Vulkan, etc., Winit, the interface to the operating system&#x27;s window manager, and Egui, which handles 2D dialog boxes and menus) must advance in lockstep. There&#x27;s not much coordination between the various development groups on this. Wgpu and Winit both think they&#x27;re in charge. and others should adapt to them. Egui tries to cope. Users of the stack suffer in silence.<p>When there&#x27;s a bug, there&#x27;s no going back to an older version. The refuckering prevents that. Changes due to API breaks are embedded in code that uses these APIs.<p>I&#x27;m currently chasing what ought to be a simple bug in egui, and I&#x27;ve been stuck for over a month. The unit tests won&#x27;t run for some target platforms that used to work, and bug reports are ignored while new features are being added. (Users keep demanding more features in Egui, and Egui is growing towards web browser layout complexity.)<p>Most users are giving up. In the last year, three 3D rendering libraries and two major 3D game projects have been abandoned. There&#x27;s are about two first-rate 3D games in Rust, Tiny Glade and Hydrofoil Generation, and both avoid this graphics stack.<p>The &quot;Stability by Design&quot; article is helpful in that it makes it clear what&#x27;s gone wrong in Rust 3D land.
评论 #43933067 未加载
评论 #43931329 未加载
munificent大约 1 小时前
It&#x27;s true that if you always add new functions to your library instead of changing existing ones then users can upgrade without breaking. There is real value in that.<p>But woe unto the user who first starts using your library after a decade of that &quot;evolution&quot; and they are faced with a dozen functions that all have similar but increasingly long names and do very similar things with subtle but likely important differences. (I guess a culture of &quot;the longest function name is probably the newest and the one you want&quot; will emerge eventually.)<p>Personally, I like when a library&#x27;s API represents the best way the author knows to tackle a given problem <i>today</i> without also containing an accumulated pile of how they thought the problem should have been tackled years ago before they knew better.<p>If I want the old solutions, that&#x27;s what versioning is for. I&#x27;ll use the old version.
评论 #43933237 未加载
RandomWorker大约 3 小时前
As a recent Clojure convert of 3 years or so, I love reading how amazing Clojure is. As a solo Dec there is simply no alternative. It’s so nice to return to a project 2 or 3 years ago and everything is still running and humming along smoothly as it did when I started the project.<p>I previously worked in PHP, Perl-cgi, Java, and Python- webtools mostly based on MySQL and other SQL database flavours.<p>I worked in a Clojure only shop for a while and they taught me the ways after that you don’t go back. Everything can quickly click into place, it’s daunting to start the learning curve is very unsteep, takes long to get anywhere, but as a curiosity it was fun, then I started to hate how everything else was done now I’m sold my soul to the Clojure devil.
juancn大约 6 小时前
The premise feel weird to me, I read the graphs much more as evidence of how scared the devs are to make changes rather than how &quot;stable&quot; the libraries are.<p>You add the code, and rather than change it if needed, you just leave it there and add more code.<p>You could argue too that Scala is much safer so changes to the code are not scary and it&#x27;s easier to be stable even under code changes.
评论 #43932210 未加载
alexjurkiewicz大约 3 小时前
I think code retention charts will look similar for any major library in any language. Projects accrete code.<p>You could instead consider:<p>* How many major version releases &#x2F; rewrites happen in this language? (This might be a sign of ecosystem instability.)<p>* How much new code is replacing old code? (This might imply the language needs more bugfixes.)
评论 #43932692 未加载
simultsop大约 7 小时前
TLDR.<p>The outcome is the same, statically typed or dynamically. In both cases one need to perform refactoring in case of breaking changes.
评论 #43931564 未加载