Why I Switch From [Language_1] to [Language_2]
Published: 2017-01-27 16:27:43

---
title: Why I Switch From [Language_1] to [Language_2]
published: true
description: A very reasonable technical post that is not at all based on subjective judgement calls about aesthetics.
cover_image: 
tags: 
---
I am a big fan of [Language\_1] and one of its early adopters, having been disappointed with the utter failures of [Language\_0]. I have been an avid contributor to many open source projects such as [Obscure\_Project\_1], [Obscure\_Project\_2], and [Obscure_Project\_3]. However, after using [Language\_1] for over 5 years, I have been dealing with [Minor\_Technical\_Flaws]. At first, I ignored and even tolerated these flaws, but I was forced to confront reality. I could not live with these flaws, and since [Language\_1] is a mature language, it will be difficult, if not impossible, to actually fix [Minor\_Technical\_Flaws].

I also resented the opinions that [Language\_1] took. When I first used those languages, I thought those opinions were a fresh breath of air. I would constantly defend those opinions on Hacker News, because I thought that these opinions would promote good coding practices and would ulitmately lead to higher productivity. After 5 years of coding though, I realized that those opinions may have been *slightly flawed*.

And then, I heard of [Language\_2]. [Language\_2] promised to fix all the technical flaws in [Language\_1]. I also read about the opinions inherent in [Language\_2], and realized that those opinions were utterly correct, compared to the fallicious and wrong-headed opinions in [Language\_1]. And that's why I switched languages.

Let me show you an example to prove my point.

Here is an example of a “Hello World program in [Language\_1]:

```
PROGRAM HELLOWORLD
 10 FORMAT (1X,11HHELLO WORLD)
 WRITE(6,10) 
 END
```

You can see why I was drawn to this language. Its syntactic sugar was beautiful. But it was too *magical*. I didn't know what was actually going on. What did *Format* mean? Or *Write*? When I had to scale up my program, I would be cursing all night trying to debug the latest ‘magic' that [Language\_1] decided to invoke on me. Half the time, I would be fighting against [Language\_1]'s constraining limits.

And here's an example of “Hello World in [Language\_2]:

```
>+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++. [-]>++++++++[<++++>-]
<.>+++++++++++[<+++++>-]<. >++++++++[<+++>-]<.+++. — — — . — — — — .[-]>++++++++
[<++++>-]<+. [-]++++++++++.
```

You can see how easily readable and maintainable [Language\_2] is over [Language\_1]. Its syntax is just as elegant as [Language\_1], but there's no magic involved. Everything that I need to know is right there, ready to be understood in an easy-to-digest fashion. There's no fighting with the language here, just me working with my trusty new tool.

Always use the best tool for the job. That's why I have chosen to use [Language\_2] for all my obscure side-projects. It will likely not have any technical flaws whatsoever, nor will its opinions ever turn out to be wrong. And, in the rare case that [Language\_2] disappoints me…well, there's always [Language\_3]…

*Note*: This article was previously [published on Medium](https://medium.com/@igorhorst/why-i-left-language-1-for-language-2-1d2fa418cd4c#.5eu7rpg7t) under a pseudonym. After publication, [qiajigou](https://github.com/qiajigou) used this template to create [an open-source project](https://github.com/qiajigou/why-I-left-language1-for-language2) allowing you to generate your own "language switching" rant.