<?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: Lucas Guimarães</title>
    <description>The latest articles on Forem by Lucas Guimarães (@lucas_guimaraes).</description>
    <link>https://forem.com/lucas_guimaraes</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%2F3875449%2Fd45f3256-5a0b-43bd-8de8-68a3c1872029.jpg</url>
      <title>Forem: Lucas Guimarães</title>
      <link>https://forem.com/lucas_guimaraes</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/lucas_guimaraes"/>
    <language>en</language>
    <item>
      <title>A 30-year-old language optimized for future: Building a Zero-AST Virtual Machine in Go that can run ASP</title>
      <dc:creator>Lucas Guimarães</dc:creator>
      <pubDate>Tue, 14 Apr 2026 13:10:00 +0000</pubDate>
      <link>https://forem.com/lucas_guimaraes/a-30-year-old-language-optimized-for-future-building-a-zero-ast-virtual-machine-in-go-that-can-run-bjg</link>
      <guid>https://forem.com/lucas_guimaraes/a-30-year-old-language-optimized-for-future-building-a-zero-ast-virtual-machine-in-go-that-can-run-bjg</guid>
      <description>&lt;p&gt;Hey DEV community! 👋 I'm back again.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you think Classic ASP is dead, let me tell you: it is now more alive than ever.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Recently, I completed a total refactoring of the codebase for version 2.0 of AxonASP, my open-source Go engine for VBScript and Classic ASP. The goal wasn't just to keep legacy code breathing; I wanted to push the boundaries of what this 90s language could actually achieve on modern hardware.&lt;/p&gt;

&lt;p&gt;I want to share some of the deep engineering optimizations we implemented under the hood to make this happen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;⚡ Zero AST, Pure Bytecode&lt;/strong&gt;&lt;br&gt;
In this rewrite, I made a huge architectural leap: threw out the Abstract Syntax Tree (AST).&lt;/p&gt;

&lt;p&gt;Instead, the new single-pass compiler emits bytecode directly to a stack-based Virtual Machine. By eliminating the AST, AxonASP executes scripts with virtually zero-allocation overhead. The memory footprint drops drastically, and execution is fast.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔄 IIS-Style VM Pooling &amp;amp; Advanced Caching&lt;/strong&gt;&lt;br&gt;
To handle high concurrency, I implemented an advanced VM pool modeled perfectly after the original IIS architecture, but backed by Go's native goroutines. Also I combined this with aggressive script caching, and even implemented compilation caching for dynamic execution (eval, execute, and executeglobal). The result is that request processing times are  faster compared to traditional ASP&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🛠️ Making ASP a Joy to Write Again&lt;/strong&gt;&lt;br&gt;
Pure speed is great, but developer experience matters just as much. We didn't stop at just supporting the legacy standard library. We injected over 60 custom Axon functions directly into the runtime. You now have access to advanced array manipulation, native JSON handling, and cryptographic tools right out of the box. It actually makes writing ASP a joy again.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🧪 Test-Driven ASP (Yes, really)&lt;/strong&gt;&lt;br&gt;
Say goodbye to broken scripts and regressions. I wanted to bring modern development practices to the language, so we built the new axonasp-testsuite executable. It allows you to write and run automated test suites natively, directly against your .asp files! TDD in Classic ASP is finally a reality.&lt;/p&gt;

&lt;p&gt;If you are curious about how all of this works, or if you have a legacy application you want to rescue, we’ve put together a complete, comprehensive manual right inside the repository to help you get started.&lt;/p&gt;

&lt;p&gt;Classic ASP might be a piece of retro-computing history, but with these optimizations, it's ready for the modern web. I'd love to hear what you guys think of.&lt;/p&gt;

&lt;p&gt;👉 Check out the repo and the source code here: &lt;a href="https://github.com/guimaraeslucas/axonasp" rel="noopener noreferrer"&gt;https://github.com/guimaraeslucas/axonasp&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>go</category>
      <category>asp</category>
      <category>virtualmachine</category>
    </item>
    <item>
      <title>Microsoft killed VBScript, so I built a custom Go VM to bring Classic ASP into 2026</title>
      <dc:creator>Lucas Guimarães</dc:creator>
      <pubDate>Sun, 12 Apr 2026 19:55:19 +0000</pubDate>
      <link>https://forem.com/lucas_guimaraes/microsoft-killed-vbscript-so-i-built-a-custom-go-vm-to-bring-classic-asp-into-2026-375c</link>
      <guid>https://forem.com/lucas_guimaraes/microsoft-killed-vbscript-so-i-built-a-custom-go-vm-to-bring-classic-asp-into-2026-375c</guid>
      <description>&lt;p&gt;Hey DEV community! 👋&lt;/p&gt;

&lt;p&gt;I don't have a formal IT degree—my day job is actually as a Doctor —but I am a self-taught Go developer with a massive passion for 90s retro-computing and legacy software preservation.&lt;/p&gt;

&lt;p&gt;Recently, with Microsoft officially pulling the plug on VBScript and Classic ASP having been neglected for years, I realized a lot of legacy code was going to be left in the dark. Instead of letting it die, I decided to do something a little crazy: I completely rewrote the engine from scratch in Go.&lt;/p&gt;

&lt;p&gt;Let me introduce you to AxonASP 2.0.&lt;/p&gt;

&lt;p&gt;It’s an open-source project designed not just to keep legacy code alive, but to allow Classic ASP to actually evolve into the modern web era.&lt;/p&gt;

&lt;p&gt;⚡ The Go Architecture: Why it's so fast&lt;br&gt;
Writing an interpreter in Go has been an incredible engineering journey. I wanted to achieve extreme performance, so I threw out the traditional Abstract Syntax Tree (AST) approach.&lt;/p&gt;

&lt;p&gt;Under the hood, AxonASP features a single-pass compiler that emits bytecode directly to a highly optimized, register-based Virtual Machine (AxonVM). By aggressively avoiding reflection and minimizing heap allocations in Go, the script execution overhead is practically zero. It’s insanely fast and memory-optimized, mimicking an IIS-style VM pool using Go's native concurrency (goroutines).&lt;/p&gt;

&lt;p&gt;🛠️ Bringing ASP to the Modern Age&lt;br&gt;
I didn't just want a 1:1 clone; I wanted to build the tools that ASP developers wished they had 20 years ago. Here is what the runtime currently includes:&lt;/p&gt;

&lt;p&gt;Native AI Integration: It has a built-in MCP (Model Context Protocol) server. You can hook your AI agents/LLMs directly into the runtime to autonomously write and refactor ASP code based on your local environment.&lt;/p&gt;

&lt;p&gt;A Real CLI &amp;amp; TUI: You can finally execute ASP and VBScript directly from your terminal! It features a Text User Interface, making it perfect for running cron jobs or system admin scripts.&lt;/p&gt;

&lt;p&gt;Modern Workflows: AxonASP comes with a native test suite (axonasp-testsuite) so you can write automated assertions for your old ASP scripts.&lt;/p&gt;

&lt;p&gt;Truly Cross-Platform: It runs natively on Windows, Linux, and macOS across most architectures. You are no longer chained to Windows Server.&lt;/p&gt;

&lt;p&gt;Flexible Serving: It ships with both a FastCGI daemon (perfect for Nginx/Apache) and a built-in HTTP server.&lt;/p&gt;

&lt;p&gt;📦 Try it out!&lt;br&gt;
I would absolutely love to get feedback from this community. What do you think of the architecture? What modern features would you add to a language from the 90s?&lt;/p&gt;

&lt;p&gt;You can check out the source code, the complete documentation, and architectural examples (yes, MVC in Classic ASP!) right here:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/guimaraeslucas/axonasp" rel="noopener noreferrer"&gt;https://github.com/guimaraeslucas/axonasp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ah! You can also import and convert Access databases in Windows, and create prompts for IA Agents to code the ASP pages you want.&lt;/p&gt;

&lt;p&gt;Note: If you just want to take it for a spin, the repo includes a simple Windows installer and a fully configured Docker setup so you can run it in seconds.&lt;/p&gt;

&lt;p&gt;Let me know what you think in the comments!  💻🩺&lt;/p&gt;

</description>
      <category>go</category>
      <category>opensource</category>
      <category>showdev</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
