Why did Anders Hejlsberg choose Go for Typescript instead of C# or Rust?
Ever since Anders Hejlsberg made the announcement for Project Corsa, aka Strada, aka typescript-go, there’s been a lot of unrest surrounding their decision to use Go.
On one hand, we have the Rust fans demanding to know why Rust wasn’t chosen for this, considering the popularity of Rust as the de facto modern low-level language.
The dev lead of Typescript, Ryan Cavanaugh himself, took to Reddit to address the first question1. He said, and I quote:
“In the end we had two options - do a complete from-scrach rewrite in Rust, which could take years and yield an incompatible version of TypeScript that no one could actually use, or just do a port in Go and get something usable in a year or so and have something that’s extremely compatible in terms of semantics and extremely competitive in terms of performance.”
On the other hand we have the C# community asking the real questions: Why did the lead architect of C# sit by such a decision? This one, was answered by Anders Hejlsberg himself in an interview with Michigan TypeScript2:
“C# was considered but Go is definitely the lowest-level language we can get to and still have automatic garbage-collection […] C# is byte-code first and while it has some AOT, it’s not available on all platforms and it doesn’t have decades of hardening and wasn’t engineered that way to begin with. Go has a little more expressiveness when it comes to data-structures and inline structs. Our JS codebase is written in a highly functional style with very few classes which is also a characteristic of Go […] we would have had to switch to an OOP paradigm to switch to C# […] ultimately that was the path of least resistance.”
The Box (2021) - Movie Review
This is neither my first nor last post concerning Sasha Sibley, the aspiring filmmaker from Los Angeles, scarcely older than myself, whom I recently had the pleasure of interviewing after being fortunate enough to watch his second feature film, The Painted (2024), at a local cinema. Right after getting home from said cinema, I’d discovered Sasha’s first feature film: The Box.
In his response to my initial email, Sasha had, matter-of-factly, described it as “ULB” (stands, obviously, for ultra-low-budget) and that he’d made it while he was still in college. Naturally, that had made me all the more excited to watch it. I had already seen the trailer and loved it. It was intriguing, sufficiently cryptic, and deceptive, conveying just the right amount of information and leaving the viewer wanting more. It was well-edited and had aroused my curiosity. No complaints there.
The movie lived up to the expectations. It employed some interesting storytelling devices. It started off with a junior actor, Tyler, at an audition that you almost immediately begin to care for. Interestingly, there’s also a narrator whose purpose or identity is never directly revealed. There’s parallel narratives. You follow the actor through some ups and downs, but mainly downs, leading up to his first big break. You sympathize with his loneliness, and you feel his frustration as he struggles to pay rent. You watch him giving it his all and you root for him.
You also watch him constantly have this recurring white torture dream that’s not only clearly symbolic of the high life awaiting him in his ideal future but also quite literally the script of the movie he’s trying to get cast in. This connection was left mostly unexplained. My best guess is that it just represented that like most actors who make it big, Tyler finally found a script that read like it was literally written for him and him alone. Later on, this idea is solidified, when the director of the movie turns out to be a guy he met in one iteration of his recurring dream and they both have a moment, over the phone, where they feel as if they’ve met each other before and the director exclaims that Tyler isn’t just a perfect candidate for the movie but the only guy he wants to make the movie with.
We also see an older, bearded, version of him talking to a therapist about the dream. This narrative seems mostly unnecessary and didn’t appear much except for at the very start of the movie and the very end. I think the only purpose it really served was to show us that Tyler eventually makes it big. I think by the end we see Tyler embracing his “white torture” lifestyle and maybe the purpose of the therapist sequence is just to show us that his struggles didn’t immediately end when he got his big break. They just shifted from being financial in nature to psychological.
The ending was a little underwhelming, but it was also perfect. I don’t think I wanted it any other way. Nothing ridiculous or unexpected happens, no big reveal. In the same mellow tone that the movie maintained throughout, we realize that Tyler finally got what he wanted and we’re happy for him. It’s implied that he’s famous but possibly only moderately. It’s clear that he has fans and following but he may not necessarily be a sensation.
What I loved about the movie was how perfectly paced it was. It wasn’t shot in real-time, yet it brilliantly captured the slow, deliberate hand of time—the way life unfolds gradually, almost imperceptibly, until you suddenly realize how far you’ve come. The things that were left unexplained suddenly didn’t even matter to me anymore, almost as if it was symbolic of how life doesn’t always give you clear answers, yet you move forward anyway.
It’s not often that you traverse backward through a filmmaker’s career and find yourself even more impressed, but Sasha Sibley has managed to achieve that. This is in no way a jab at his recent and equally brilliant production, but rather a testament to the strength of his earlier work. His past films don’t feel like mere stepping stones toward mastery—they already showcase a level of skill, storytelling, and vision that many directors spend years trying to refine. Watching his trajectory, it’s clear that his evolution isn’t about reinvention, but about sharpening what was already exceptional. His consistency as a filmmaker is just as impressive as his growth.
I'm glad my Wikipedia article got rejected
My second last post was a review of The Painted (2024), a low-budget film lacking a Wikipedia article due to limited marketing and visibility. As one of the first people to write about it, I also ended up creating its Wikipedia page—my first-ever contribution—which, despite being doomed to perpetual draft status, led to some interesting experiences that I’ll share in this post.
The draft had gotten rejected for having too few references and having low notability. It was hard to find even basic information about the movie outside of IMDB and Letterboxd, both of which, being community maintained, aren’t considered strong sources for references.
- I tried different combinations of keywords and went as far as the last page of google’s search results to make sure I didn’t miss anything.
- I visited Wikipedia articles for other movies to find any non-indexed but standard credible sources that might also have information for this movie. e.g. BBFC
- I updated and resubmitted my draft many times and the moderators even acknowledged that there simply didn’t exist any more sources of information for the movie but that didn’t change anything. My article will retain its draft status until more blogs write about the movie.
However, in the process, I ended up learning a lot about the people behind the film. I learned that Sasha Sibley – the producer, director and writer – was scarcely older than myself, and that the executive producer was also named Sibley and therefore was clearly a family member (his sister, perhaps?). I learned that Sasha was LA based and that this was his second feature-film and that “The Painted” had originally been a short film that was released around covid. I visited the websites of the other crew members, e.g. Peter Bui, their cinematographer with a mechanical degree. I also learned from a not too reliable source that this movie had been in the works for a very long time.
Suddenly had a newfound appreciation and love for the movie I had so brutally posted a review about a few days before. I felt like I knew the crew and was rooting for them. I was curious too. So I did what anyone else would have done in the same position: I emailed Sasha, telling him I had the pleasure of watching and reviewing his movie and that I would love to learn more about it. He replied:
[…]I am very flattered – and that was a nice, accurate if not glowing review […] I’m happy to hop on a call if you want any more info or an interview[…]
That’s right. I reviewed a movie and the director of the movie read my review.
I took him up on that interview offer and excitedly waited for the call which turned out to be an absolute pleasure, of course. Sasha Sibley was a delight and one of the nicest and most humble people I have ever met. We talked a lot, about his background, inspiration, work, and even budgets. That information, however, deserves a post of its own that I will post shortly. For now, all I can say is: I’m glad I spent all that time writing that Wikipedia article.
Oops, I did it again
A month ago, I wrote about my first contribution to an open-source, Microsoft-maintained, project, from June 2024, that got merged by November 2024. What I didn’t mention at that time was that that wasn’t my only contribution to that project. Shortly after that pull request got merged, I opened a second one. Once again, I created an issue, to report a bug, and a pull request, to solve the bug, back to back. However, this time I made them in the correct order.
The same project from the last article required me to enable ETags on the OData API that I was working on. An ETag is an HTTP header that’s used for cache-invalidation and concurrency control. It’s basically like a hash representing the state of the resource/data at said endpoint. The client may use it as a cache key and the server can use it for concurrency control when multiple requests attempt to update the resource at the same time. ETag values are based on a special field/column on the resource record that changes every time the record is updated.
Lets talk for a moment about how ETags help with concurrency control.
Read Full PostThe Painted (2024) - Movie Review
I am not a fan of cinemas. In fact, I’m quite the opposite. I particularly detest going to cinemas. I prefer watching movies in the comfort of my own home, with my own popcorn and unlimited condiments from my fridge for my hotdog. The only times I go to a cinema are when I’m forced into it.
Today was one of those occasions. While movies that I would naturally find more interesting like Mufasa, Sonic 3 and Brave New World were playing, I couldn’t buy a ticket to any of them because they belong to a class of movies that me and my sister always watch together. It’s sacred. Since she wasn’t with me today, it came down to this bunch:
Read Full PostHow to work for Microsoft without getting hired
I’ve been a fan of open-source longer than I have been an adult. The moment I first switched to Linux in 2012, I knew it would remain my daily driver until I could afford to buy a Mac. As I, both voluntarily and involuntarily, continued to ditch my usual programs in favor of free and open-source alternatives, the deeper I dove into the world of open-source and the stronger became my desire to contribute to it.
Read Full PostI made a MIPS simulator
AKA MIPS – A Java Based MIPS simulator. Browse the code on GitHub.
Long story short, my Data Structures teacher gave us this project where we hasd to use our knowledge of data structures to make something useful. She said we could do it in groups so naturally I found myself in a team of 3.
She told us about the project near the start of the semester and a week before it was due we were still trying to decide what we were gonna make. She said that we would have to present our project and pitch it and convince the audience that it’s a useful piece of shit. The problem with us was that any idea we came up with was either far too advanced and therefore not worth the time and effort or far too simple for our ego to allow us to go about presenting it as our grand project.
I thought maybe we could make like a virtual machine of the Altair or any other primitive computer and that led us to the idea of making a MIPS simulator. We opened the instruction set in a browser tab immediately and were relieved to find that it was sufficiently small and therefore we decided that this was what we wanted to do.
Within 24 hours I had written a buggy but functional parser that could read assembly files coupled with a machine object using a couple of integer arrays for simulating the RAM and registers. Downloading and running some assembly code for MIPS on my parser helped me fix some bugs and typos that had crept in.
Because the teacher had insisted that the project be a graphical program, one of our team members was tasked with creating a GUI for this and so he made a JavaFX project that ended up looking very similar to the MARS simulator for MIPS. No it wasn’t at all a coincidence because he had used MARS before.
After coupling my code with the GUI, I would say we ended up with a pretty decent program. It has a few limitations, e.g. lack of floating-point support. I learned from Steve Wozniak that it’s okay to leave that out when you’re writing your own language processor. On a serious note though, I didn’t initially plan on leaving it out but I learned after it was a bit too late that MIPS had a whole set of 64 bit registers for handling floating-points and I didn’t feel like making any changes to the otherwise working parser. Other than that, there’s no support for unsigned arithmetic. The whole program is Java based and Java doesn’t have unsigned types so neither does the simulator.
The code for the program is available on github. Feel free to check it out, give your feedback and even suggest improvements. It’s not on my teammates account because he created an pushed the code for the GUI on a separate repo and then merged the parser code directly into it.
On “Looking Backward: 2000 to 1887” by Edward Bellamy
A couple of weeks ago, I posted about “The Sleeper Awakes.” At some point in that book, Graham (the protagonist) compares his situation to that described by Bellamy; and earlier in the book, when he is sound asleep and has only been asleep for a few decades at most, we see his friends talking about the same thing. Curious as I was upon reading that name I chose to google it. (I don’t quite remember exactly what I googled but it was probably something like “Bellamy Socialist Utopia Sleeper.”) I found out that there was a book by an Edward Bellamy called “Looking Backward: 2000 to 1887” in which a man sleeps for somewhere slightly above a century and, you guessed it, wakes up in a world vastly different from the one he slept in. I downloaded that book right away and made a mental note to read it after finishing “The Sleeper Awakes.”
A few hours ago, I finished reading “Looking Backward” and I thought I might as well write about it and throw in a few words about the similarities and differences between the two books. There are SPOILERS AHEAD so proceed at your own risk.
Read Full PostEntropy of life
I know it’s kind of a weird title. I will promptly explain it. Have you ever been in one of those situations where you went ahead and did something without thinking twice only to later regret doing it and spend the next few days brooding over different ways to deal with all possible undesirable consequences of that course of action?
We often see situations like these in movies. I considered adding examples here from Harry Potter or The Flash or Infinity War but then I decided against it because I didn’t want to post any potential spoilers and because not everyone would be familiar with those scenes. Instead let me use a very general example: Something goes wrong and the protagonist(s) considers possible courses of action to take. In short, they form a plan that sounds completely nuts but they decide to do it anyway because it’s “the only way.” And all that while you’re just sitting there hoping that they’d see things your way because ot you there’s clearly another and better way but they can’t seem to think of it. Anyways, they go ahead and execute their plan only to screw up further and get themselves into a situation much worse than before and then the cycle starts again (or maybe not.)
Now that I am done typing that stupid example, I realize that it’s too general to be of any use. So let me use the example of time travel. Let’s say you have a regret. Years pass and you cannot get over it. Say you gain access to a time machine. You go back in time to fix it only to realize that you created a new world that’s equally undesirable. You try to figure out the point in time where this new world of yours went haywire and try to fix that. Again you screw shit up. Eventually you realized that you’ve messed it up to the point where it cannot be fixed. (There are actually movies about exactly this.)
Have you ever met someone and gotten to know them really well only to end up wishing you’d never met them in the first place and thinking about how your life would have been so much better if you hadn’t? Or maybe you’ve at some point said something that you immediately wanted to take back and so you keep on thinking about different ways to explain yourself should someone bring it up again and you can’t help fearing that someone would hold it against you. But anything you say to cover it up could only make matters worse.
In short, what I mean to say is that things always get worse with time. The more the time passes the greater the number of things in your life that went wrong, the more secrets you have and the more people there are that know your secrets, the greater the number of people in your life that you watch out for e.t.c. and every lame attempt to fix any of it only creates more problems. Life only gets messier and messier and there’s no way to clean up that mess.
On “The Sleeper Awakes” – H.G. Wells
I don’t exactly remember how I discovered this book. But at least a couple of months ago, I came across the name, looked up the synopsis and downloaded it with the intention of reading it on the first chance. Less than a month ago, on a particular midnight, I was unable to sleep and having little to no desire to take up something educational, I decided to go through my collection of fiction. The H.G. Wells folder caught my eye and I opened it to reveal this book along with a couple of others. Remembering suddenly what it was about, I decided to start reading it.
Fun Fact: The first chapter was called “INSOMNIA.” Also adding that although I mean to not talk in detail about any events in the book, depending on your perspective, there may or may not be spoilers ahead so proceed with caution.
Read Full Post