Show HN: Beef, a new performance-oriented programming language
I&#x27;m blown away by the completeness of this. The IDE is extremely full featured, albeit a little weird in places (eg scrolling with my laptop touchpad basically doesn&#x27;t work). Love the Windows installer. But wow, go to definition, refactorings, debugger with great UX, callstack, etc.<p>Also love the example game. It&#x27;s written so cleanly that I learned a thing or two about 2d gamedev just from scrolling through the code.<p>I love the little pragmatisms in the language, eg:<p><pre><code>    for (let entity in gGameApp.mEntities)
    {
        if (let enemy = entity as Enemy)
        {
             &#x2F;&#x2F; .. do something with each enemy
        }
    }
</code></pre>
That if&#x2F;let&#x2F;as combo there is something I&#x27;d have loved to have in many languages.<p>Also hats off for switch&#x2F;case without break. Finally! I also love how you&#x27;re mixing C&#x2F;C++ &quot;global enum value names&quot; convenience with namespaced safety:<p><pre><code>     public static Result&lt;(char32, int32)&gt; TryDecode(char8* buf, int bufSize)
     {
          ...
          return .Err; 
          &#x2F;&#x2F; not Result.Err, because the return type is given in the signature
     }
</code></pre>
I know that these little syntactical things are not the key challenges of language design, but obviously they&#x27;re the first things I see, and I like the amount of attention you&#x27;ve given them. You really only have the opportunity to get them right at the very beginning.<p>I think the docs are a little sparse still (but that can be expected, of course). Eg:<p>- I found it hard to parse this:<p><pre><code>    public Random mRand = new Random() ~ delete _;
</code></pre>
There&#x27;s docs about it here <a href="https:&#x2F;&#x2F;www.beeflang.org&#x2F;docs&#x2F;language-guide&#x2F;datatypes&#x2F;initialization&#x2F;#destruction" rel="nofollow">https:&#x2F;&#x2F;www.beeflang.org&#x2F;docs&#x2F;language-guide&#x2F;datatypes&#x2F;initi...</a>, but the &quot;delete _&quot; part isn&#x27;t really explained. What&#x27;s that underscore? I can infer that it probably means &quot;this value&quot;, but I can&#x27;t find it back.<p>I love that you made it easy to destruct fields like that, right there in the initializer expression, btw. Will probably kill the need for 90% of destructor methods out there.<p>- Apparently this converts floats to ints:<p><pre><code>    (.)(mX - entity.mX)
</code></pre>
Or at least it does in HeroBullet.bf:15. I&#x27;m thinking maybe this does something similar as `.Err`, in that the dot makes it cast to whatever the expected type is in the function being called? I&#x27;m not sure though, it looks like a super powerful feature, maybe :-)<p>Finally, I believe .bf is also used for that other super convenient and performant language, Brainfuck. I doubt that causes any practical problems, but then again, why not just .beef?