{"id":888,"date":"2018-03-27T18:28:54","date_gmt":"2018-03-27T18:28:54","guid":{"rendered":"http:\/\/cppdepend.com\/blog\/?p=888"},"modified":"2018-03-27T18:28:54","modified_gmt":"2018-03-27T18:28:54","slug":"be-aware-of-the-programming-language-domination-syndrome","status":"publish","type":"post","link":"https:\/\/cppdepend.com\/blog\/be-aware-of-the-programming-language-domination-syndrome\/","title":{"rendered":"Be aware of the programming language domination syndrome."},"content":{"rendered":"<p>After years of using the same OS, the same programming language, the same technology, and the same tools. somewhere in our brain we will be convinced that our choice is the best, and we could reject any other alternatives, and somehow we became a slave to our choices. Regardless of the nature of the project or the client specifications, we use the same choices.<!--more--><\/p>\n<p>We can discover easily this fact by initiating a troll in a forum. Let&#8217;s say: .Net is better than Java, or Windows is superior to Linux. We will be surprised by the developer&#8217;s opinion, many of them are fanatic to one choice\u00a0and categorically reject the other one, few developers discuss the fact that each one has its advantages and its drawbacks.<\/p>\n<p>Finally, the developer became a slave to a specific programming language and he is dominated by the language.<\/p>\n<p>We know the there is no magic solution to all problems, Windows could be the best for certain cases but not in others, C++ could be suitable for some projects and not for some others. Therefore don&#8217;t fall into the trap where you are convinced that only one OS, one language, one technology are the best. Keep your mind open and discover the other possibilities and where they could be useful for you.<\/p>\n<p>It&#8217;s always interesting to take a look at the other mainstream languages evolution and discover the new programming languages.<\/p>\n<p><strong>Mainstream programming languages evolution<\/strong><\/p>\n<p><strong>C++<\/strong>:\u00a0 Many developers consider C++ as very complicated and difficult to lean, it&#8217;s an expert-friendly language. However, there are a lot of changes since 2011. Maybe taking a look at all the new features could change the opinion of many developers.<\/p>\n<p><strong>.Net and C#<\/strong>: Each new version provides many interesting new features and a big change is down recently in the framework. it&#8217;s the rising of the open source framework .<strong>Net Core.<\/strong>\u00a0It&#8217;s highly recommended to take a look at it to discover all its advantages.<\/p>\n<p><strong>Java<\/strong>: Java was stagnated for many years before Java9. However, it was a good surprise for many Java developers when they discovered that Java 10 is released this week. It&#8217;s a good news for Java developers, it&#8217;s a proof that Java is not stagnated anymore.<\/p>\n<p><strong>Explore the new programming languages:<\/strong><\/p>\n<p><strong>Rust<\/strong><\/p>\n<p><b>Rust<\/b>\u00a0is a\u00a0systems programming language\u00a0sponsored by\u00a0Mozilla\u00a0Research,\u00a0which describes it as a &#8220;safe,\u00a0concurrent, practical language&#8221;, supporting\u00a0functional\u00a0and\u00a0imperative-procedural\u00a0paradigms. Rust is\u00a0syntactically\u00a0similar to\u00a0C++, but its designers intend it to provide better\u00a0memory safety\u00a0while still maintaining performance.<\/p>\n<p>Rust is an\u00a0open source\u00a0programming language. Its designers have refined the language through the experiences of writing the\u00a0Servo\u00a0web browser\u00a0layout engine<sup id=\"cite_ref-rustinservo_12-0\" class=\"reference\"><a href=\"https:\/\/en.wikipedia.org\/wiki\/Rust_(programming_language)#cite_note-rustinservo-12\">[<\/a><\/sup>and the Rust compiler. A large proportion of current\u00a0commits\u00a0to the project are from community members.<\/p>\n<p>Rust won first place for &#8220;most loved programming language&#8221; in the\u00a0Stack Overflow\u00a0Developer Survey in 2016, 2017 and 2018.<\/p>\n<p><strong>Crystal<\/strong><\/p>\n<p>Crystal\u00a0is a general-purpose programming language with the motto &#8220;Fast as C, slick as Ruby.&#8221;<\/p>\n<p>It&#8217;s a high-level, statically typed, compiled, fully object-oriented programming language with advanced type inference and garbage collection.<\/p>\n<p>The design goals of Crystal are:<\/p>\n<ul>\n<li>Have a syntax similar to Ruby (but compatibility with it is not a goal).<\/li>\n<li>Be statically type-checked but without having to specify the type of variables or method arguments.<\/li>\n<li>Be able to call C code by writing bindings to it in Crystal.<\/li>\n<li>Have compile-time evaluation and generation of code, to avoid boilerplate code.<\/li>\n<li>Compile to efficient native code.<\/li>\n<\/ul>\n<p><strong>Clojure<\/strong><\/p>\n<p>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 \u2013 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.<\/p>\n<p><strong>Go<\/strong><\/p>\n<p><b>Go<\/b>\u00a0(often referred to as\u00a0<b>golang<\/b>) is a\u00a0programming language\u00a0created at\u00a0Google\u00a0in 2009 by Robert Griesemer,\u00a0Rob Pike, and\u00a0Ken Thompson.\u00a0It is a\u00a0compiled,\u00a0statically typed\u00a0language in the tradition of\u00a0Algol\u00a0and\u00a0C, with\u00a0garbage collection, limited\u00a0structural typing, memory safety\u00a0features and\u00a0CSP-style\u00a0concurrent programming\u00a0features added.\u00a0The compiler and other language tools originally developed by Google are all\u00a0free\u00a0and\u00a0open source.<\/p>\n<p><strong>Conclusion<\/strong><\/p>\n<p>Be always open to new possibilities, discover each day what happened, it&#8217;s the magic of the developer life, there&#8217;s no routine, every day come with new surprises.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>After years of using the same OS, the same programming language, the same technology, and the same tools. somewhere in our brain we will be convinced that our choice is the best, and we could reject any other alternatives, and somehow we became a slave to our choices. Regardless of the nature of the project &hellip; <a href=\"https:\/\/cppdepend.com\/blog\/be-aware-of-the-programming-language-domination-syndrome\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Be aware of the programming language domination syndrome.&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-888","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/cppdepend.com\/blog\/wp-json\/wp\/v2\/posts\/888","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cppdepend.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cppdepend.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cppdepend.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cppdepend.com\/blog\/wp-json\/wp\/v2\/comments?post=888"}],"version-history":[{"count":8,"href":"https:\/\/cppdepend.com\/blog\/wp-json\/wp\/v2\/posts\/888\/revisions"}],"predecessor-version":[{"id":897,"href":"https:\/\/cppdepend.com\/blog\/wp-json\/wp\/v2\/posts\/888\/revisions\/897"}],"wp:attachment":[{"href":"https:\/\/cppdepend.com\/blog\/wp-json\/wp\/v2\/media?parent=888"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cppdepend.com\/blog\/wp-json\/wp\/v2\/categories?post=888"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cppdepend.com\/blog\/wp-json\/wp\/v2\/tags?post=888"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}