<?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>DEV Community: Amine Hammami</title>
    <description>The latest articles on DEV Community by Amine Hammami (@redlez).</description>
    <link>https://dev.to/redlez</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3824606%2Fa7750928-46ca-4286-98a8-ec19c3b9d2e0.png</url>
      <title>DEV Community: Amine Hammami</title>
      <link>https://dev.to/redlez</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/redlez"/>
    <language>en</language>
    <item>
      <title>[Boost]</title>
      <dc:creator>Amine Hammami</dc:creator>
      <pubDate>Sun, 14 Jun 2026 14:57:48 +0000</pubDate>
      <link>https://dev.to/redlez/-4jdb</link>
      <guid>https://dev.to/redlez/-4jdb</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/redlez/ez-language-an-experiment-for-multi-language-project-2pcg" class="crayons-story__hidden-navigation-link"&gt;Ez-Language : An Experiment for multi-language project&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/redlez" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3824606%2Fa7750928-46ca-4286-98a8-ec19c3b9d2e0.png" alt="redlez profile" class="crayons-avatar__image" width="460" height="460"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/redlez" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Amine Hammami
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Amine Hammami
                
              
              &lt;div id="story-author-preview-content-3651330" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/redlez" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3824606%2Fa7750928-46ca-4286-98a8-ec19c3b9d2e0.png" class="crayons-avatar__image" alt="" width="460" height="460"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Amine Hammami&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/redlez/ez-language-an-experiment-for-multi-language-project-2pcg" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jun 13&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/redlez/ez-language-an-experiment-for-multi-language-project-2pcg" id="article-link-3651330"&gt;
          Ez-Language : An Experiment for multi-language project
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/challenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;challenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/opensource"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;opensource&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/learning"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;learning&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/redlez/ez-language-an-experiment-for-multi-language-project-2pcg#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            6 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Ez-Language : An Experiment for multi-language project</title>
      <dc:creator>Amine Hammami</dc:creator>
      <pubDate>Sat, 13 Jun 2026 11:39:23 +0000</pubDate>
      <link>https://dev.to/redlez/ez-language-an-experiment-for-multi-language-project-2pcg</link>
      <guid>https://dev.to/redlez/ez-language-an-experiment-for-multi-language-project-2pcg</guid>
      <description>&lt;p&gt;This is a story-like technical article about why and how I made this &lt;a href="https://github.com/Dead-Down-Studio/EZ-Language" rel="noopener noreferrer"&gt;language&lt;/a&gt; experiment.&lt;/p&gt;




&lt;h1&gt;
  
  
  Context
&lt;/h1&gt;

&lt;p&gt;It was a normal night, drinking my coffee, working on a Minecraft mod that adds a custom OBJ renderer. I was thinking it would be great if I could just have C++ or Rust doing this heavy work instead of Java… and then an idea came to me: surely by now there must be something that could do that exact job:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;a coordinator between languages&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I found a lot of options — Bazel, FFI, microservices, gRPC, WebAssembly, VM ecosystems, transpilers — but nothing really &lt;em&gt;clicked&lt;/em&gt;. I would use FFI for speed, VMs for scalability, transpilers for flexibility, but I couldn't find something I could stick with and use everywhere.&lt;/p&gt;




&lt;h1&gt;
  
  
  My Take On This Problem
&lt;/h1&gt;

&lt;p&gt;I wanted something where you describe what you want to do, and the language handles the annoying stuff for you.&lt;/p&gt;

&lt;p&gt;So after that research, I decided to make my own thing — something I would learn once and use everywhere in my poly-language projects. And also as an excuse to learn C++.&lt;/p&gt;

&lt;p&gt;My vision was to make a programming language.&lt;/p&gt;

&lt;p&gt;A picture of what I was thinking about:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdo6vo91e0femck7raf1f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdo6vo91e0femck7raf1f.png" alt=" " width="473" height="390"&gt;&lt;/a&gt;&lt;br&gt;
(I am a full-time artist :P)&lt;/p&gt;


&lt;h1&gt;
  
  
  Idea / Vision (Now)
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;a system where languages are connected together&lt;/li&gt;
&lt;li&gt;C++ / Rust / Python are not separated anymore&lt;/li&gt;
&lt;li&gt;one place to coordinate everything&lt;/li&gt;
&lt;li&gt;no manual FFI, no messy glue code everywhere&lt;/li&gt;
&lt;li&gt;focus on “what you want to do”, not “how to connect languages”&lt;/li&gt;
&lt;/ul&gt;


&lt;h1&gt;
  
  
  Implementation
&lt;/h1&gt;

&lt;p&gt;You and I both know that the first step of every project is giving it the sh**tiest name possible, then calling it a day.&lt;/p&gt;


&lt;h2&gt;
  
  
  First Steps
&lt;/h2&gt;

&lt;p&gt;That out of the way, I started building a custom lexer with a language I barely used before — fake it till you make it.&lt;/p&gt;

&lt;p&gt;I was going hard on the OOP while also trying to keep Python-like simplicity. Somewhere along the way I got lost in parser design, ASTs, interpreters, and runtime systems — and realized I was accidentally building a real programming language instead of solving my original Minecraft mod problem.&lt;/p&gt;


&lt;h2&gt;
  
  
  Core Idea (How I Started Building It)
&lt;/h2&gt;

&lt;p&gt;After all that mess, I switched to using ANTLR4 because:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;the grammar itself doubles as documentation (&lt;code&gt;.g4&lt;/code&gt; files)&lt;/li&gt;
&lt;li&gt;it gave me an easier lexer/parser pipeline&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;ANTLR also made experimenting way faster because I could focus more on the language behavior instead of rewriting parser logic every 5 minutes.&lt;/p&gt;

&lt;p&gt;At first, the interpreter directly walked the parse tree itself. Which worked… until it didn't.&lt;/p&gt;

&lt;p&gt;I later realized there's a big difference between:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“this parses correctly”&lt;/li&gt;
&lt;li&gt;and&lt;/li&gt;
&lt;li&gt;“this is architecturally sane”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So now there's a lot of future work involving proper AST lowering and separation between parsing and execution.&lt;/p&gt;


&lt;h2&gt;
  
  
  Friend Modules Concept
&lt;/h2&gt;

&lt;p&gt;Friend modules are basically a fancy name for the FFI system mixed with automatic build planning.&lt;/p&gt;

&lt;p&gt;They are declared like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;friend math : cpp as mcpp;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This line tells EZ:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;there is a file called &lt;code&gt;math.cpp&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;compile it as part of the project&lt;/li&gt;
&lt;li&gt;refer to it in EZ code as &lt;code&gt;mcpp&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then we can use it like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;print(mcpp.add(3,2));
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The goal was to remove all the annoying manual setup:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;no handwritten headers&lt;/li&gt;
&lt;li&gt;no manual linking&lt;/li&gt;
&lt;li&gt;no &lt;code&gt;dlopen&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;no random shell scripts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Just:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"this module exists, use it"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The same idea extends to Python through auto-generated bridge code, though it's rougher around the edges.&lt;/p&gt;

&lt;p&gt;Right now the system mostly supports primitive types correctly (&lt;code&gt;int&lt;/code&gt;, &lt;code&gt;float&lt;/code&gt;, &lt;code&gt;boolean&lt;/code&gt;, etc.), but I already know things will get painful once structs, buffers, callbacks, or heap-managed objects enter the picture.&lt;/p&gt;

&lt;p&gt;Because at the end of the day:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;every abstraction eventually reaches the FFI wall.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Interpreter / Execution Model
&lt;/h2&gt;

&lt;p&gt;EZ currently has two execution paths:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Interpreter Mode:
&lt;/h3&gt;

&lt;p&gt;This directly walks the parse tree and executes the program.&lt;/p&gt;

&lt;p&gt;It currently supports:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;variables&lt;/li&gt;
&lt;li&gt;arithmetic&lt;/li&gt;
&lt;li&gt;conditions&lt;/li&gt;
&lt;li&gt;loops&lt;/li&gt;
&lt;li&gt;functions&lt;/li&gt;
&lt;li&gt;returns&lt;/li&gt;
&lt;li&gt;friend module calls&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the main development path right now because it lets me experiment quickly without rebuilding an entire compiler pipeline every time I change something.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. Native / C Backend:
&lt;/h3&gt;

&lt;p&gt;The second path translates EZ code into C code, then compiles it using &lt;code&gt;clang&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;This started mostly as an experiment to answer the question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Can this language actually compile into something native?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Right now the C backend only supports a subset of the language and intentionally does &lt;strong&gt;not&lt;/strong&gt; support friend calls yet.&lt;/p&gt;

&lt;p&gt;There's also a backend comparison script that runs the same file through:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the interpreter&lt;/li&gt;
&lt;li&gt;the native backend&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then compares the outputs to make sure they behave similarly.&lt;/p&gt;




&lt;h2&gt;
  
  
  Environment System
&lt;/h2&gt;

&lt;p&gt;The friend modules problem made me think about a bigger issue: environment reproducibility. One drunken night with NixOS made it click.&lt;/p&gt;

&lt;p&gt;I loved the small Docker-like environments you could create and how reproducible everything felt. That immediately made me think:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;why isn't this feeling part of programming languages themselves?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The classic:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"works on my machine"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Issue becomes an absolute nightmare once multiple languages, compilers, runtimes, and dependencies get involved. Especially in poly-language projects.&lt;/p&gt;

&lt;p&gt;So I started experimenting with making environments part of the language itself.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;env native;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The idea is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the environment should be part of the program contract&lt;/li&gt;
&lt;li&gt;not just hidden setup instructions inside a README nobody reads&lt;/li&gt;
&lt;li&gt;reproducibility should be built into the workflow from the start&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The language uses nix-shell to run its build plan and will eventually use a config file to pin each compiler and interpreter version for the project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight toml"&gt;&lt;code&gt;&lt;span class="c"&gt;# EZ-Language Configuration&lt;/span&gt;
&lt;span class="c"&gt;# Place in project root (.ezconfig) or home directory (~/.ezconfig)&lt;/span&gt;
&lt;span class="c"&gt;# Project-level config overrides user-level config&lt;/span&gt;

&lt;span class="nn"&gt;[python]&lt;/span&gt;
&lt;span class="c"&gt;# Python interpreter path (default: python3 from PATH)&lt;/span&gt;
&lt;span class="py"&gt;executable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"python3"&lt;/span&gt;

&lt;span class="nn"&gt;[c]&lt;/span&gt;
&lt;span class="c"&gt;# C compiler (default: clang)&lt;/span&gt;
&lt;span class="py"&gt;compiler&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"clang"&lt;/span&gt;
&lt;span class="c"&gt;# Standard version (default: c11)&lt;/span&gt;
&lt;span class="py"&gt;standard&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"c11"&lt;/span&gt;

&lt;span class="nn"&gt;[cpp]&lt;/span&gt;
&lt;span class="c"&gt;# C++ compiler (default: clang++)&lt;/span&gt;
&lt;span class="py"&gt;compiler&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"clang++"&lt;/span&gt;
&lt;span class="c"&gt;# Standard version (default: c++17)&lt;/span&gt;
&lt;span class="py"&gt;standard&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"c++17"&lt;/span&gt;

&lt;span class="nn"&gt;[build]&lt;/span&gt;
&lt;span class="c"&gt;# Output directory for friend modules (default: .ezbuild)&lt;/span&gt;
&lt;span class="py"&gt;output_dir&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;".ezbuild"&lt;/span&gt;
&lt;span class="c"&gt;# Verbose build output (default: false)&lt;/span&gt;
&lt;span class="py"&gt;verbose&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
&lt;span class="c"&gt;# skip Nix env activation when set (default: false)&lt;/span&gt;
&lt;span class="py"&gt;no_env&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Right now the config system is still rough and partially ignored by the Nix environment — but the goal is clear:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"clone project → run project"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Without spending 3 hours fixing dependencies, compiler versions, or missing libraries.&lt;/p&gt;




&lt;h2&gt;
  
  
  Problems I Ran Into
&lt;/h2&gt;

&lt;p&gt;A lot.&lt;/p&gt;

&lt;p&gt;Some of the biggest ones:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the interpreter directly walking the CST instead of a proper AST&lt;/li&gt;
&lt;li&gt;type marshalling for friend calls becoming ugly very quickly&lt;/li&gt;
&lt;li&gt;more segfaults and core dumps than I'd like to admit&lt;/li&gt;
&lt;li&gt;trying to keep the language simple while the backend complexity explodes&lt;/li&gt;
&lt;li&gt;parser/runtime/features growing way faster than the architecture itself&lt;/li&gt;
&lt;li&gt;adding grammar features before implementing them properly&lt;/li&gt;
&lt;li&gt;realizing “easy syntax” does NOT mean “easy implementation”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Also: FFI is terrifying.&lt;/p&gt;

&lt;p&gt;The deeper I went into cross-language interaction, the more I understood why every existing solution feels complicated.&lt;/p&gt;

&lt;p&gt;Languages fundamentally disagree on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;memory ownership&lt;/li&gt;
&lt;li&gt;calling conventions&lt;/li&gt;
&lt;li&gt;threading&lt;/li&gt;
&lt;li&gt;exceptions&lt;/li&gt;
&lt;li&gt;object lifetimes&lt;/li&gt;
&lt;li&gt;type systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So making them “just work together” cleanly is much harder than I originally thought — but doable.&lt;/p&gt;




&lt;h2&gt;
  
  
  Current State Of The Project
&lt;/h2&gt;

&lt;p&gt;The project is still extremely experimental.&lt;/p&gt;

&lt;p&gt;There's a lot of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;messy code&lt;/li&gt;
&lt;li&gt;technical debt&lt;/li&gt;
&lt;li&gt;unfinished systems&lt;/li&gt;
&lt;li&gt;AI-assisted scaffolding&lt;/li&gt;
&lt;li&gt;“future me will fix this” moments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm also starting to hate the name — thinking of &lt;code&gt;gluCore&lt;/code&gt; as a replacement.&lt;/p&gt;

&lt;p&gt;But overall, the core idea works:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;friend modules work&lt;/li&gt;
&lt;li&gt;the interpreter works&lt;/li&gt;
&lt;li&gt;the native backend exists&lt;/li&gt;
&lt;li&gt;multi-language execution is happening&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And honestly, that's already farther than I expected when this whole thing started from a late-night Minecraft modding session.&lt;/p&gt;




&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;Somewhere between the Minecraft mod and the segfaults, this stopped being a language and started being something else — more of a coordination layer, a system that lets multiple languages work together without you managing the glue.&lt;/p&gt;

&lt;p&gt;I don't even think this is a programming language in any traditional sense anymore. It still has functions and variable declarations, but it's become more and more like a runtime that manages and connects multiple languages. I'm not sure what to call that. Maybe that's the point.&lt;/p&gt;

&lt;p&gt;Whether it's useful to anyone else, I genuinely don't know. But the core idea works, and that's already further than a late-night coffee session had any right to get.&lt;/p&gt;

&lt;p&gt;If you want to dig into the mess — or help make it less of one — the repo is linked at the top.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Also: I got accused of writing AI slop when I tried more structured technical articles on Reddit, so I figured — why not just embrace the chaos? Hopefully it made this more fun to read, and hopefully I don't get accused of being a robot this time.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>challenge</category>
      <category>opensource</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
