• 0 Posts
  • 22 Comments
Joined 1 year ago
cake
Cake day: June 18th, 2023

help-circle


  • Honestly this is usually bad advice nowadays, for a bunch of reasons:

    1. Modern allocators do the same thing as object pooling internally, usually faster. They rarely interact with the OS.

    2. A GC will do things like zero old memory on another thread, unlike a custom clearing function in a scripting language.

    3. Object pooling breaks the generational hypothesis that most modern garbage collectors are designed around; it can actually make performance much worse. Most GCs love short-lived objects.

    4. Object pools increase code complexity and are very error prone; when you add a new field you have to remember to clear it in the pool.

    5. If you are in a non-GC language you probably want something "data-oriented" like a slotmap, not a pool of object allocations.

    Having said all that, it still all depends on the language/VM you're targeting. The guy in the video clearly benchmarked his use case.




  • Game engines had a lot of growth speculation for the past decade. There were a lot of harebrained ideas about how game engine tech could disrupt loads of existing industries and provide the foundations for various new ones. e.g.

    1. VFX studio offline rendering going to be replaced with modern game engine rendering any day now!
    2. AR is about to take off and revolutionise every industry at any moment, if only someone can render the overlays!
    3. The VR metaverse is here, and millennials love renting so much they are going to rent virtual flats and use unity to look at them!
    4. The military will be desperate to spend their infinite budget on using unity to simulate warzones or something!
    5. Wow Roblox found an amazing loophole for monetising child labour using a game engine. Let's steal their idea and scale it up!

    And so on.

    For every idiot idea there is some large R&D team full of poorly-managed developers desperately trying to apply unity's completely unsuitable technology to a problem it can't solve, on the off chance that one of them turns into a money printer. There's also probably a bunch of marketing people, sales people and suits trying to get past regulatory barriers, etc.

    Whenever reality hits on one of these hype bubbles, a lot of people get fired. It just happened to VFX, for example.



  • Aside from the anti-labour implications of this stuff, even as a consumer it is horrifying to imagine a world where we are constantly questioning whether or not some media was generated by AI. There's something violating about it.

    I don't care if a machine learning system is being used in some very self-contained way, like to do basic voice-to-speech in a game with a lot of procedurally-generated text. That can even be an important accessibility feature.

    However, as soon as it's being passed off as a real human performance with emotional depth and authorial intent, it's gross and I don't want it in my brain.



  • I use a Tokonami KX450, which is not the newest but it's the most widely available military-grade model that the average silicon shop is able to customise.

    With that in mind you'll want a uranium microreactor to really get that turbo button cranking out the keycodes (the french stuff is cheapest but ukrainian kit is worth the extra), as well as a mercury cooling solution and ideally a set of maglev keys for all the most common letters (NOT backspace; frankly you should remove that key entirely to avoid habits that damage your WPM).

    Assuming you've got a solid pair of high-torque power gloves that should get you up to at least 20000 WPM, which admittedly won't cut it if you're trying to keep all the NPM dependencies up to date in a modern bank's transaction processing software, but it's probably enough if you're just doing a bit of data analysis in python.


  • The real question is how we got any portable solution to this problem in the first place.

    To me problems are fundamentally economic and political, not technical. For example, the unique circumstances that led to a portable web standard involved multiple major interventions against Microsoft by antitrust regulators (in 2001, 2006, 2009, 2013, etc). The other tech giants were happy to go along with this as a way to break microsoft's monopoly. Very soon after, Google and Apple put the walls straight back up with mobile apps.

    If you go back before HTML, OS research was progressing swiftly towards portable, high-level networked GUI technology via stuff like smalltalk. Unfortunately all of the money was mysteriously pulled from those research groups after Apple and Microsoft stole all the smalltalk research and turned it into a crude walled garden of GUI apps, then started printing money faster than the US Mint.

    Whenever you see progress towards portable solutions, such as Xamarin and open source C#, React Native, or even Flutter, it is usually being funded by a company that lost a platform war and is now scrambling to build some awkward metaplatform on top of everyone else's stuff. It never really works.

    One exception is webassembly, which was basically forced into existence against everyone's will by some ingenious troublemakers at Mozilla. That's a whole other story though!




  • What a bunch of elitist horseshit.

    As a senior engine developer at a games company, this is how I see it:

    1. Your shitty flappy bird clone is worth less than the cheeto stain on your t-shirt as a cultural artifact
    2. I have met countless programmers who have never finished a single game, because they can't design for shit
    3. I have met countless artists and level designers who have made commercially successful games after learning how to use 10% of a single scripting language
    4. The word "developer" predates software engineering and has nothing to with tech. We changed the meaning and now 14 year olds on reddit have changed it back. It doesn't matter.
    5. If you were really some hot shit solo developer you would not need to look for validation in your job title. Seeing thousands of people enjoy something you designed every day would be enough.


  • I mentioned it elsewhere here but I think the Terra research language has explored this area more thoroughly than Rust, just because that's its only purpose. The website and academic papers are definitely worth a skim: https://terralang.org/

    It's basically a powerful LLVM-based compilation library exposed where everything is exposed through Lua bindings. The default Terra compiler is just a Lua script that you can pull apart, extend, rearrange, etc. It's all designed for ease of experimentation, whereas Rust has to worry about being a rock-solid production compiler.

    Honourable mention to C# source generators too. They are janky as hell but very effective.


  • If I understood correctly, the closest thing I know of to what you are describing is probably Terra:

    https://terralang.org/

    It is an academic project with various papers presenting case studies that do things like change the whole programming paradigm the language, or the execution model, or the syntax.

    The wider paradigm is called multi-stage programming. The other obvious languages to mention are the lisp family, and more recent spin-offs like Julia.