<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Nikolas Skyl</title>
    <description>The latest articles on Forem by Nikolas Skyl (@nikolas_skyl).</description>
    <link>https://forem.com/nikolas_skyl</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3935119%2F4c704ad4-b394-4c1f-ba3e-85a07aacc29a.png</url>
      <title>Forem: Nikolas Skyl</title>
      <link>https://forem.com/nikolas_skyl</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/nikolas_skyl"/>
    <language>en</language>
    <item>
      <title>Donna v0.3.0</title>
      <dc:creator>Nikolas Skyl</dc:creator>
      <pubDate>Mon, 25 May 2026 18:16:20 +0000</pubDate>
      <link>https://forem.com/nikolas_skyl/donna-v030-4kj1</link>
      <guid>https://forem.com/nikolas_skyl/donna-v030-4kj1</guid>
      <description>&lt;p&gt;Donna released &lt;strong&gt;v0.3.0&lt;/strong&gt; today. What this version brings to &lt;a href="https://donna-lang.org" rel="noopener noreferrer"&gt;Donna&lt;/a&gt;?&lt;/p&gt;

&lt;p&gt;Donna designed to be a small functional language that compiles to native binaries and focus on DX(Developer Experience).It's also statically typed and bootstrapped. In the past versions we focused to make the experience of using Donna better. We focused on a list of things that needed to refined. Let's take a brief look on those:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Error messages. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Using donna revealed plenty of errors that happened because of linker failure that didn't help with further information. We tried to catch as many of those and create Donna errors that will contain more details.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Type errors.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We improved type errors so users will have the info needed to debug their programs.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Todo &amp;amp; Panic.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We implement todo and panic in the language. Todo used as a placeholder in a function that is not implemented yet. It raises a warning though, so users will have to return.&lt;/p&gt;

&lt;p&gt;Panic crashes the program by throwing an error.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;We implement Opaque types correct behaviour. So far opaque types had the same functionality asa pub types and their constructors was accessible from other modules. Now they work as they supposed to.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We implement error for duplicate function names&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;echo&lt;/code&gt; now is for debug and will raise a warning. You should use new &lt;code&gt;io&lt;/code&gt; module from stdlib:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;io.println("hello")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;We improved error structure and style. We also added a summary of total errors and warnings.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We also fixed a lot of smaller bugs. Donna will keep evolving by focusing in users happiness. In the next versions we will focus on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improve errors&lt;/li&gt;
&lt;li&gt;Fix bugs&lt;/li&gt;
&lt;li&gt;Improve formatter&lt;/li&gt;
&lt;li&gt;Start LSP implementation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you still didn't try donna and you want, you can visit the &lt;a href="https://github.com/donna-lang/donna" rel="noopener noreferrer"&gt;github&lt;/a&gt; repository. &lt;/p&gt;

&lt;p&gt;If you want to learn more about donna visit the &lt;a href="https://donna-lang.org" rel="noopener noreferrer"&gt;website&lt;/a&gt; and take the tour.&lt;/p&gt;

&lt;p&gt;There is also a list of donna projects in awesome-donna repo &lt;a href="https://github.com/donna-lang/awesome-donna" rel="noopener noreferrer"&gt;here&lt;/a&gt; (Even it is still one man show)&lt;/p&gt;

</description>
      <category>programming</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Hello, Donna (A new Programming Language)</title>
      <dc:creator>Nikolas Skyl</dc:creator>
      <pubDate>Sat, 16 May 2026 16:33:16 +0000</pubDate>
      <link>https://forem.com/nikolas_skyl/hello-donna-a-new-programming-language-2a5k</link>
      <guid>https://forem.com/nikolas_skyl/hello-donna-a-new-programming-language-2a5k</guid>
      <description>&lt;p&gt;In the past few months, I have been designing and implementing a new programming language called &lt;a href="https://donna-lang.org" rel="noopener noreferrer"&gt;Donna&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Before I explain more about it, I want to be honest and mention that its development has been heavily assisted by AI.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Donna
&lt;/h2&gt;

&lt;p&gt;Donna is a functional, statically typed, self-hosted programming language that compiles to native binaries using &lt;a href="https://c9x.me/compile/" rel="noopener noreferrer"&gt;QBE&lt;/a&gt; as its compiler backend.&lt;/p&gt;

&lt;p&gt;Donna’s syntax is inspired mostly by &lt;a href="https://gleam.run" rel="noopener noreferrer"&gt;Gleam&lt;/a&gt;, with a few Python-like touches.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bootstrap story
&lt;/h2&gt;

&lt;p&gt;The current compiler is the Stage 2 compiler (there were previously Stage 0 and Stage 1 compilers) and is independent from the previous implementations.&lt;/p&gt;

&lt;p&gt;Before every release, the compiler is tested and built through GitHub Actions. The release pipeline then generates assembly sources for each supported target and stores them in a separate repository. These generated sources are later used to build the next compiler release, continuing the bootstrap process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Easy to learn
&lt;/h2&gt;

&lt;p&gt;As mentioned before, Donna takes heavy inspiration from Gleam, so it is relatively easy to pick up and build a small project over a weekend.&lt;/p&gt;

&lt;p&gt;Donna is intentionally small and aims to stay that way. The vision is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;small language&lt;/li&gt;
&lt;li&gt;great developer experience&lt;/li&gt;
&lt;li&gt;native binaries that are easy to distribute&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Where Donna is strong
&lt;/h2&gt;

&lt;p&gt;In my opinion, some of Donna’s strongest points are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Successfully self-hosted (the Donna compiler is written in Donna)&lt;/li&gt;
&lt;li&gt;QBE implementing full C ABI, making FFI in Donna very straightforward&lt;/li&gt;
&lt;li&gt;Clean and pleasant syntax&lt;/li&gt;
&lt;li&gt;Native binaries&lt;/li&gt;
&lt;li&gt;Statically typed&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Visit us
&lt;/h2&gt;

&lt;p&gt;If you want to check Donna out, try it, discuss it, contribute, or simply follow the project, you can find it here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/donna-lang" rel="noopener noreferrer"&gt;https://github.com/donna-lang&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Website: &lt;a href="https://donna-lang.org" rel="noopener noreferrer"&gt;https://donna-lang.org&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
