<?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: Rad Sarar </title>
    <description>The latest articles on Forem by Rad Sarar  (@mrsa1).</description>
    <link>https://forem.com/mrsa1</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%2F3338262%2F3a4a5e6e-8157-43a8-92d6-c3fb8b44b576.png</url>
      <title>Forem: Rad Sarar </title>
      <link>https://forem.com/mrsa1</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/mrsa1"/>
    <language>en</language>
    <item>
      <title>Understanding Bootstrapping: How Go’s Compiler Is Written in Go</title>
      <dc:creator>Rad Sarar </dc:creator>
      <pubDate>Fri, 22 Aug 2025 11:00:01 +0000</pubDate>
      <link>https://forem.com/mrsa1/understanding-bootstrapping-how-gos-compiler-is-written-in-go-5ann</link>
      <guid>https://forem.com/mrsa1/understanding-bootstrapping-how-gos-compiler-is-written-in-go-5ann</guid>
      <description>&lt;p&gt;Do you know most of the codes of Go programming language, even its compiler is written with Go? There may be a question in the head after hearing this, "How is that possible?" You need another Go compiler to make a Go compiler, right? "&lt;br&gt;
It's a classic "egg before or chicken before" kind of question. And the answer lies in a cool computer science concept called Bootstrapping.&lt;br&gt;
What is the Bootstrapping thing?&lt;br&gt;
In simple terms, bootstrapping is using a small or simple system to create a bigger and stronger system. Something like lifting yourself up by holding your shoe lace! This is exactly what happened to Go.&lt;br&gt;
Let's see how it works step by step:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The first compiler was written in another language:
The first compiler of Go was not written in Go language. It was written using C language. This C-based compiler had only one job: compiling the Go Source Code into an executable program.&lt;/li&gt;
&lt;li&gt;Written a new compiler with Go:
After that, Go developers wrote the source code for a whole new compiler using Go language.&lt;/li&gt;
&lt;li&gt;The real magic: 
Bootstrapping is done in this stage. The Go Team used their old compiler made with C to compile the source code of the new compiler written with Go. So they got a compiler (executable file) made of Go.&lt;/li&gt;
&lt;li&gt;Go Self-Sufficient: 
Once Go could build his own compiler, there was no need for the old C-based compiler. From now on Go starts building himself.
Means, Go 1.4 is used to compile the Go 1.5 version. Used Go 1.5 to compile Go 1.6 again This is how the chain goes.
So, next time you hear "Go is written in Go", don't be surprised! This bootstrapping method uses not only Go, but also large programming language like C, Rust, Java. This is the sign of maturity or maturity of a language.
Some questions may arise in your mind as such:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;_&lt;/p&gt;

&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;Q: What is the advantage or profit of this? Wouldn't the compiler made of C be faster?
Answer: There are many benefits such as maintenance, contributor productivity, tooling consistency, portability, and feature development speed etc. will be easy. Many common bug of RC can be avoided.&lt;/li&gt;
&lt;li&gt;Q:At the end of the day, then, the base of the Go compiler is in C, right?
Answer: A compiler written in C, called the C-Compiler, is used to build the first version of the Go compiler from its Go source code. This process creates an executable file: go_compiler_v1.exe. Next, go_compiler_v1.exe is used to compile a newer version of the Go source code. This creates go_compiler_v2.exe, which can then be used to compile the next version, and so on. Thus, the C-Compiler is no longer needed.&lt;/li&gt;
&lt;li&gt;Q: Isn't it the same for Java?
Answer: Many important languages follow the bootstrapping technique, but by no means is it a universal rule for success.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;

&lt;p&gt;_&lt;br&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%2Fuverhb4tz3ibgogpwzds.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%2Fuverhb4tz3ibgogpwzds.png" alt=" " width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>beginners</category>
      <category>discuss</category>
      <category>go</category>
    </item>
    <item>
      <title>Software is changing! (AGAIN)!!</title>
      <dc:creator>Rad Sarar </dc:creator>
      <pubDate>Wed, 09 Jul 2025 10:00:33 +0000</pubDate>
      <link>https://forem.com/mrsa1/software-is-changing-again-285j</link>
      <guid>https://forem.com/mrsa1/software-is-changing-again-285j</guid>
      <description>&lt;p&gt;A few days ago, Andrej Karpathy told us a new story about software change in his video "Andrej Karpathy: Software Is Changing (Again)". And the story is so funny that when you listen to it, you will think - if you learn English, the world is in your hands. Is it really so? Let's take a deeper dive!&lt;br&gt;
Three lives of software: 1.0, 2.0, and 3.0&lt;br&gt;
Karpathy says that the world of software has changed in three stages. Let's write it with a little fun:&lt;br&gt;
Software 1.0: "Daddy, I'll do whatever you say!"&lt;br&gt;
It's slowly becoming like the old days. Back then (or still) programmers would sit in front of the computer, writing code line by line, just like calculating in a ledger. The computer had to say, "Look, brother, do 2+2, then put the result here." If there was a slight mistake, the poor computer would throw up its hands and legs and say, "I don't understand anything!" This was the legacy coding style—just like teachers, everything had to be taught step by step.&lt;br&gt;
Software 2.0: "I'll learn it myself, you just give me the data!"&lt;br&gt;
Then came the era of neural networks. Here, computers became a little smarter. Karpathy says, during this time, we programmed with the "weights" of the neural network. That is, we would give the computer a bunch of data and say, "Here, look at these and you'll figure out what to do." For example, instead of showing a picture of a bird and saying, "This is a bird," if you showed it thousands of pictures, the computer would say, "Oh, this is a bird, and that is a cat!" This was Software 2.0—a little less work, more fun.&lt;br&gt;
Software 3.0: "Say it in English, I'll do it!"&lt;br&gt;
Now comes the most fun part, Software 3.0. Here, Karpathy says, we are now programming with prompts. What does that mean? Now you can say to the computer in English, "Brother, write a song for me," and it will write the song immediately! This is possible thanks to the LLM or Large Language Model. Now there is no more hassle of writing code, just saying. This is a big change, because programming has now become easy and fun for everyone. I know, this will be a fight for several years, but Software 3.0 will eat everything up.&lt;br&gt;
Later, some company (like Open AI) will come along and make an 'LLM' operating system and make all the operating systems in the world disappear. I don't want to say much more.&lt;br&gt;
So tell me, why is this a big deal?&lt;br&gt;
Answer is: "It’s big cause as it’s democratizing creation and problem solving, but LLM is new OS, how owns it is the most powerful."&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%2Filqay1qvdd3osz36kwb6.jpg" 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%2Filqay1qvdd3osz36kwb6.jpg" alt=" " width="729" height="486"&gt;&lt;/a&gt;&lt;a href="https://dev.tourl"&gt;https://youtu.be/LCEmiRjPEtQ?si=ZR1rcI-EualIpknu&lt;/a&gt;&lt;/p&gt;

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