Blog 4 min read

Beware of Programming Language Domination Syndrome

Share this article
Beware of Programming Language Domination Syndrome

After years of using the same OS, programming language, technologies, and tools, we may become convinced that our choices are the best and start rejecting alternatives. In a way, we become slaves to those choices. Regardless of the nature of the project or the client’s requirements, we keep making the same decisions.

You can easily observe this by starting a flame war on a forum: just say, “.NET is better than Java” or “Windows is superior to Linux.” You may be surprised by the reactions. Many developers are fiercely loyal to one option and categorically reject the other, while few stop to discuss the fact that each has its own advantages and drawbacks.

In the end, a developer can become a slave to a specific programming language, allowing the language to dictate their choices.

We know there is no single solution to every problem. Windows may be the best choice in some cases but not in others, just as C++ may be suitable for some projects but not for others. So don’t fall into the trap of believing that one OS, language, or technology is always the best. Keep an open mind, explore other possibilities, and consider where they might be useful.

It’s always worth following the evolution of other mainstream languages and exploring new programming languages.

The Evolution of Mainstream Programming Languages

C++: many developers consider C++ very complicated and difficult to learn — an expert-friendly language. However, a lot has changed since 2011. Taking a look at all the new features might change the opinion of many developers.

.NET and C#: each new version provides many interesting new features, and a big change recently happened in the framework: the rise of the open source framework .NET Core. It’s highly recommended to take a look at it to discover all its advantages.

Java: Java stagnated for many years before Java 9. However, it was a good surprise for many Java developers when they discovered that Java 10 was released this week. It’s good news for Java developers — proof that Java is no longer stagnating.

Explore New Programming Languages

Rust

Rust is a systems programming language sponsored by Mozilla Research, which describes it as a "safe, concurrent, practical language", supporting functional and imperative-procedural paradigms. Rust is syntactically similar to C++, but its designers intend it to provide better memory safety while still maintaining performance.

Rust is an open source programming language. Its designers have refined the language through the experiences of writing the Servo web browser layout engine

[

and the Rust compiler. A large proportion of current commits to the project are from community members.

Rust won first place for "most loved programming language" in the Stack Overflow Developer Survey in 2016, 2017 and 2018.

Crystal

Crystal is a general-purpose programming language with the motto "Fast as C, slick as Ruby."

It's a high-level, statically typed, compiled, fully object-oriented programming language with advanced type inference and garbage collection.

The design goals of Crystal are:

  • Have a syntax similar to Ruby (but compatibility with it is not a goal).
  • Be statically type-checked but without having to specify the type of variables or method arguments.
  • Be able to call C code by writing bindings to it in Crystal.
  • Have compile-time evaluation and generation of code, to avoid boilerplate code.
  • Compile to efficient native code.

Clojure

Clojure is a dynamic, general-purpose programming language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language, yet remains completely dynamic – every feature supported by Clojure is supported at runtime. Clojure provides easy access to the Java frameworks, with optional type hints and type inference, to ensure that calls to Java can avoid reflection.

Go

Go (often referred to as golang) is a programming language created at Google in 2009 by Robert Griesemer, Rob Pike, and Ken Thompson. It is a compiled, statically typed language in the tradition of Algol and C, with garbage collection, limited structural typing, memory safety features and CSP-style concurrent programming features added. The compiler and other language tools originally developed by Google are all free and open source.

Conclusion

Always stay open to new possibilities and keep exploring what is happening in the industry. That is part of the magic of being a developer: there is no routine, and every day brings something new.

Share this article