Skip to content
Muhammet Şafak
tr
Journal 3 min read

Four Languages in One Year: The Mental Flexibility That Polyglot Practice Brings

A reflection on how moving between PHP, Go, Python, and TypeScript within a single year shaped the way I think about software.


Looking back at this year, I realized I wrote a significant amount of code in four different languages: PHP, Go, Python, and TypeScript. It was not a deliberate goal — each language was the natural answer to a distinct problem. But by the end of the year I noticed that this practice had left something behind I did not expect: not a technical skill, but a kind of mental flexibility.

Each language made me ask different questions

Every language forces you to look at a problem from a particular angle.

  • Go made me ask “what happens to this error?” Because errors are carried as values, ignoring them simply is not an option. That habit leaked into my PHP code too — I now place exceptions much more intentionally.
  • Python made me ask “what is the fewest lines, most readable way to write this?” Its respect for simplicity helped me spot places in other languages where I had been writing more complexity than necessary.
  • TypeScript made me ask “what is the exact shape of this data?” Taking the type system seriously led me to model data more explicitly on the PHP side as well.
  • PHP remained my backbone — but I can now look at it through the eyes of an outsider too.

This cross-pollination was an unexpected gain. I started seeing languages not as separate boxes but as a system that feeds itself. Carrying Go’s error discipline into PHP is a privilege that comes from knowing both.

The hard part: context switching

I do not want to make this sound prettier than it is. Switching between languages is not free. On a morning when I write Go and then return to PHP in the afternoon, my mind still suggests the wrong language’s syntax for the first half hour. Missing semicolons, subtle syntax errors, reaching for the wrong library — the friction is real.

A concrete example: after writing error-handling code in Go and switching to PHP, I once found myself trying to write if err != nil. Laughable, but true. The reverse happens too — after a few intense days in PHP, coming back to Go means I have to flush the cache and relearn the syntax before the language stops fighting me.

Over time I learned this: jumping across four languages in the same day is not productive. The work needs to be clustered around contexts, not around languages. Staying in one language for an entire session is far healthier than bouncing four times a day.

The real gain: seeing that the language is temporary

The most valuable thing this year taught me is this: what solves a problem is not the language — it is the solution itself. Languages are different dialects of the same idea. Once you have used all four, you stop being too attached to any one of them. You can only see a tool’s strengths and weaknesses clearly when you step away from it and look back.

This perspective helps in technology selection discussions too. The question “which language is best?” becomes increasingly meaningless; the right question becomes “what is the most suitable tool for this problem?” Knowing four languages lets you give more concrete answers to that question.

Being polyglot is not about collecting languages for me. It is about being able to look at a language not as “this is the best one” but as “this is the most suitable one for this problem.” The thing that a year of roaming across four languages left with me is precisely that ease: the tool can change, the matter stays the same.

Next year I will probably stay with these same four languages. I am not thinking about adding a new one — because the goal is not quantity. The goal is to feel at home in every tool I have, and to stay distant enough from all of them to be able to choose the right one.

Share:

Comments

Sign in with your GitHub account to join the discussion. Comments are stored in GitHub Discussions.

Related Posts

Search the site

Start typing to search posts, projects and pages.

Esc to close Powered by Pagefind