I have found that presentations on performance optimization often skip HOW they found the performance problem and skip right to what was slow and how they fixed it. Knowing HOW to find the problem is also a valuable skill.
Replying to @TheGingerBill @SuperluminalSft
To be clear, I'm not talking about streaming the actual work, but going back over an example of something you investigated, how you set up and used the tools, and what you saw in the results to drive to your solution. Yes, a stream of the raw work would be boring 😂.
Replying to @TheGingerBill @SuperluminalSft
It may be boring to some, but there are precious few resources out there on how to do this work. There are those of us who would be more than happy to watch a "boring" version of how it's done. 😊
Replying to @TheGingerBill
@TheGingerBill, while you mentioned in an earlier reply that it would be boring to stream your performance analysis and optimization work with the Odin compiler, I believe it would be incredibly helpful if you walked through how you went about using @SuperluminalSft and Spall to diagnose what to work on.
Replying to @CFDevelop
You specifically mentioned F#, which is a managed runtime with a Garbage Collector. My response was based on that class of FP languages.
If you want to expand the scope to include Rust, that's a different discussion. But even in your response, you mention that Rust is "mostly" FP, so you're not actually comparing pure FP; you're comparing "mostly" FP.
Can you be productive in a FP language? Yes. I've written much high-performance F#. It's a phenomenal language. There are performance scenarios that require you to step out of the FP paradigm, though. Even Rust has "unsafe".
Replying to @TheGingerBill @CFDevelop
I can confirm that there is a potential for a massive performance boost moving from managed FP, to Odin. Any time you use a GC for memory and a runtime that enforces heavy use of pointers for memory indirection (i.e., Objects), you will never reach maximum performance.
Replying to @CFDevelop
FP is great, but it all depends on the performance requirements. I've used F# and Odin for years. If you need to push the bleeding edge of performance, you'll never get there with FP, but most apps can achieve adequate performance with well-written F#.
Replying to @cmuratori
@cmuratori I've been working on adopting the idea of Zero Is Initialization (ZII), but one area where I'm wrestling is Zero Handles.
You allude to them in this clip here:
youtu.be/xt1KNDmOYqA?si=6IYy…
I was wondering if you could expand on how you implement them and use them? Perhaps on Computer Enhance?
Replying to @TheGingerBill
Been working in it for several years now, and it's pure joy. If work continues to go well, I'm hoping to host a "chill-conf" in Europe next year for Odin devs to gather 😊
Replying to @TheGingerBill
LOL, those are essentially banned in our codebase 🤣
Replying to @TheGingerBill
What has always confused me is that I think of ECS as a style, not a library or a framework, but I appear to be a minority.
Well, Clay + Raylib appears straightforward given the example you provide. Right now I'm figuring out how to get interactions to work, such as registering an 'OnClick' and 'OnHover'
I'm actually reading through more of the Clay docs now, and already provides a clear example of how Odin, Clay, and Raylib play together.
I'm still curious how text interacts though. Since Clay isn't actually doing the drawing, how do you deal with the potential mismatch between what Clay computes and what actually gets rendered?
Replying to @its_bvisness @nicbarkeragain
Well, that's unfortunate. My understanding of Clay is that it just handles the layout compute, not the drawing of elements, so you need something to map from the Clay result to a UI.
Replying to @nicbarkeragain
@nicbarkeragain I confess I haven't looked into it deeply but I'm curios if Clay and RayGUI would be a good pairing? Clay as the layout engine and RayGUI as the projection of the result?
The snag I'm thinking of is text and wrapped text, though. I have a new project, and I am curious if this approach would be viable and coherent.
Replying to @IroncladDev
There has never been a more perfect meme
Replying to @TheGingerBill
As a former “code bodger,” I understand the perception that it’s faster to use someone else’s code. I’m actively thinking of a small course to show .NET devs how easy it is to move to Odin and roll your own collections/containers. At times, I’m actually angry about the years I lost. 😂
Replying to @nicbarkeragain
This is why I said “dedicated” student. Obviously if someone isn’t paying attention, it’s hopeless. I can also accept prerequisites. In my field, if you don’t know Linear Algebra notation, you have no hope. But I find authors often leave out critical details and I have to get several books on a subject and read them in parallel, hoping that between several references, all the details are covered.
Replying to @nicbarkeragain
Possibly hot take, a truly skilled writer/instructor can lay out a subject so that a dedicated student will be able to follow on the first pass.
Academic authors are often so steeped in their discipline that they fail to recognize how many holes are in their explanations because they have a massive amount of implicit context.
Basically, you have to already be an expert to be able to understand but at that point, you don’t need the book, except for reference.
I may be a bit salty because I recently went through this exercise.
