Skip to Content

Code Gripe: Language Arguments

Code Gripe: Language Arguments

You see this all over the internet; this language is better than this other language. Maybe it is because it is static vs. dynamic typing, or strong typing vs. weak typing, perhaps because it is more object-oriented or functional. Maybe its because it executes faster, produces smaller binaries, etc. I can keep adding to the list of reasons why one language may be considered better than another. I used to make similar arguments, and I still have strong preferences for specific languages and language features. However, I have realized that it doesn't make a significant difference.

I feel language choice is a personal preference shaped by your experiences, previous jobs, personality, and influences. I am pretty sure that a genuine technical need has never driven my language choices. I learned software development using Visual Basic for Applications, VBA, then progressed to VB .NET. After that, I landed a job where the primary language was C#. These experiences have automatically given me a preference for .NET and .NET based languages. Learning a C style language has given preference to other languages that use that style. I think my early VB experiences are also responsible for my interest in Python. I see the merits of static typing. However, I like the flexibility in Python and JavaScript that brings me joy. Do I feel these languages are better than other languages? No, not really. Each has their string, but most of these are general-purpose languages, and they all do it reasonably well, in my opinion. I also have a preference for a more declarative style. I know that about myself, and hopefully, you understand the same preferences that you have.

So why did I call it a gripe? I am just tired of seeing the same style of arguments popping up. I can list all kinds of software written in languages that we wouldn't say are good languages, guess what? The software written in many of these languages is still delivering value. People say you can't create a well written procedural application. I doubt we would have many COBOL systems hanging around if they were pieces of crap. They do the job they were created to perform, and they do it well enough not to need replacing. They are still adding value. Yes, that language may require a different approach than you usually use. It may require you to think differently about your structure, but that doesn't make it a bad language or a lousy technique.

I would rather we spend our time and keystrokes approaching the problem by explaining why X is your favorite or preferred language. What features do you feel make you create better applications? What features allow you to add business value faster? What makes it fit for you? If other people feel the same way or have a similar style or personality, then they should give it a try.

I am not saying to avoid criticisms or not to criticize something. I want more constructive criticisms. Something I can learn from and make an informed decision.

We wouldn't have these opinions or criticisms if these other languages or features didn't exist. These new features, paradigms, and languages are driving us forward, and we need that. We will make mistakes, and those things will get replaced with new ones.

Thanks for reading,

Jamie