[HN Gopher] Stability by Design
       ___________________________________________________________________
        
       Stability by Design
        
       Author : potetm
       Score  : 30 points
       Date   : 2025-05-08 19:51 UTC (3 hours ago)
        
 (HTM) web link (potetm.com)
 (TXT) w3m dump (potetm.com)
        
       | simultsop wrote:
       | TLDR.
       | 
       | The outcome is the same, statically typed or dynamically. In both
       | cases one need to perform refactoring in case of breaking
       | changes.
        
         | ashishb wrote:
         | > The outcome is the same, statically typed or dynamically. In
         | both cases one need to perform refactoring in case of breaking
         | changes.
         | 
         | No. In statically typed languages, failures are usually caught
         | in CI. In dynamically typed languages, they end up in
         | production - https://github.com/pypa/setuptools/issues/4519
        
       | Animats wrote:
       | I'm currently struggling with instability in the Rust 3D graphics
       | stack.
       | 
       | 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 "refactorings" which
       | cause breaking changes to APIs. (I'm tempted to term this
       | "refuckering".)
       | 
       | 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.
       | 
       | Because of all the breaking changes, the related crates (Wgpu,
       | the interface to Vulkan, etc., Winit, the interface to the
       | operating system's window manager, and Egui, which handles 2D
       | dialog boxes and menus) must advance in lockstep. There's not
       | much coordination between the various development groups on this.
       | Wgpu and Winit both think they're in charge. and others should
       | adapt to them. Egui tries to cope. Users of the stack suffer in
       | silence.
       | 
       | When there's a bug, there'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.
       | 
       | I'm currently chasing what ought to be a simple bug in egui, and
       | I've been stuck for over a month. The unit tests won'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.)
       | 
       | Most users are giving up. In the last year, three 3D rendering
       | libraries and two major 3D game projects have been abandoned.
       | There's are about two first-rate 3D games in Rust, Tiny Glade and
       | Hydrofoil Generation, and both avoid this graphics stack.
       | 
       | The "Stability by Design" article is helpful in that it makes it
       | clear what's gone wrong in Rust 3D land.
        
         | potetm wrote:
         | That sounds like a complete tirefire tbh. The exact thing that
         | I'm hoping to convince people to stop doing.
         | 
         | I'm glad the article was helpful though!
        
           | Animats wrote:
           | All the players think they're doing the right thing. Each
           | group is doing a reasonably good job based on their own
           | criteria. But their collective actions create a mess.
        
       | juancn wrote:
       | 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 "stable" the libraries are.
       | 
       | You add the code, and rather than change it if needed, you just
       | leave it there and add more code.
       | 
       | You could argue too that Scala is much safer so changes to the
       | code are not scary and it's easier to be stable even under code
       | changes.
        
       ___________________________________________________________________
       (page generated 2025-05-08 23:00 UTC)