DEV Community


Discussion on: What made you switch your main programming language?

kspeakman profile image
Kasey Speakman

The short answer is: At first, because the job required it. After that, it was to searching for something which would help me to stop making spaghetti messes. Unfortunately, language alone can't accomplish this, but it can help.

I'm old

The first language I did professional work in was PHP 3 or 4. (Not counting Pascal, C, C++ projects in college.) The very first one was because I didn't have enough to do as IT support, and I expressed an interest. I think I picked PHP because it was easy to get into and considered a beginner-friendly language for web programming. At least half of the PHP apps I wrote during this period are still in use today. (Oh the horror!)

Paying the Bills

Then I got some contract work to integrate with a VB6 system, so after some research, VB and C# on .NET seemed like the obvious choices. So I learned them for the job. For a while after that, most of my career was in C#, eventually wandering into Javascript front-ends as JS became powerful enough to make that happen. (And because it's the only choice for apps that run in browser.)

Learning FP

I still was not happy with the maintainability of the solutions I was coming up with. So I started searching for other languages, tools, patterns, ...anything. I played with F# briefly, but found it weird and put it back on the shelf. Eventually I came back and started doing some coding in it... sortof awkward hybrids of procedural code and functional trappings. But eventually, I got attuned to the functional paradigm and I love it. I feel like F# is the hidden jewel of the .NET framework. I have trouble finding a similarly well-balanced language as F# on other platforms. I use Elm on the front-end, which is similar but is not a general purpose language. I'm interested to learn Rust for a low-level project as it seems to be in the same vein as well.

But in the end...

I think if I had learned "pure OO", I might have also been happy with C#. But as it was, I thought I already knew OO programming and was disappointed with it. Turns out that just following patterns of a language doesn't work nearly as well as following the philosophy of the paradigm you're writing in. That's one of the reasons I love this post.