Microsoft recently decided to rewrite the TypeScript tool chain using Go. This has caused a stir as folks wonder why Microsoft chose the Go language instead of their own C# or even TypeScript itself. I have to say that it is a curious choice.Ā The resulting discussion around āmy language is better than your languageā takes me back.
I learned to code using BASIC in the 1970s.Ā BASIC had line numbers, and I remember hearing about this newfangled language calledĀ Pascal that didnāt have line numbers and I wondered how that was possible.Ā How will you know where to GOTO?
Somewhat ironically, it was Pascalāfirst in the form of Turbo Pascal and then as Delphiāthat launched my career in software development.Ā I began programming as a hobby, but I loved it so much I turned away from a sweet Navy pension to become a professional developer. I did pretty well with it. I wrote books and blogs and eventually became the product manager for Delphi.Ā
Death to Visual Basic
One of the nicknames Delphi had before its release (aside from the name Delphi itself) was VBKāVisual Basic Killer.Ā At the time, most software development was Windows development, and VB was very popular with Windows developers, who liked VBās visual development approach and the fact that it wasnāt C++.Ā
Naturally, the name āVB Killerā raised the ire of the developers who used and liked VB.Ā We upstartsāthe Delphi fanboisāwould love to go over to the VB forums and tell them, well, how Delphi was going to kill VB. Unsurprisingly, the VB fans took umbrage at this notion, and the language wars were on.Ā
It got ugly.Ā I mean, we hurled personal insults and argued ad nauseam about why our chosen language was better.Ā I remember getting very, very worked up about it.Ā It was personal for reasons that seemed desperately important. Naturally, that seems quite silly as I look back on it as a (hopefully) wiser and more mature person.
I think itās interesting that these were two tools you had to pay for.Ā These days, programming languages and most of the basic tools are free. Back in the 1990s, we all had to buy our development tools, and I think that spurred us to be vastly more defensive about our choice.
It is funny to look back and think that what language one chose to code in was so terribly important. I see similar disputes happening today, as you have JavaScript folks upset with TypeScript folks and Rust folks snubbing their noses at C++.
I finally came to realize that this is an endless debate. The systems, languages, and frameworks are so complex, and there are so many points to be made, that the discussion will never be settled and a final ācorrect answerā will never be arrived at. Just choose the language that you like, that works for you, and that you can use to get the job done.Ā
There are teams all over the place succeeding with Java, C#, JavaScript, TypeScript, Pascal, C++, Rust, Python⦠I could go on for a very long time.Ā So it seems that there isnāt a bad choice to be made.Ā I guess if you tried to build a web application with GW-BASIC, you might run into some roadblocks. But there are myriad ways to build a web application these days and they all work. They all have strengths and limitations, and they all will drive you crazy and they all will give you moments of lovely zen as you realize their elegance.
Mostly right answers
In other words, there is no wrong answer, only right answers, and fighting over it is, well, silly.Ā Just do what works for you and stay off the āother teamāsā message boards.Ā
To be fair, there are wrong answers. GW-BASIC probably isnāt a good choice for much of anything today, and I suspect a large enterprise isnāt going to bet the company on some upstart framework using Perl. But there are any number of obvious right answersāthe venerable languages with huge and rich ecosystemsāthat you canāt go wrong picking one.Ā
Language wars inevitably end up with people saying āChoose the right tool for the job.ā Of course, that never seems to satisfy those diehards who think their tool is the right tool for every job. And āChoose the right tool for the jobā does sound a bit trite, because why would anyone choose the wrong tool for the job?Ā But ultimately, itās solid advice.
I donāt know why Microsoft chose Go for their TypeScript rewrite. But I do know this:Ā If Microsoft thought it was the best tool for the job, Iām not going to argue with them or anyone else about it.Ā