How to Pick the Right Programming Language
Adron Hall is the lead developer of cloud solutions at New Relic.
During the course of every coding project, a software developer must make dozens of decisions. Sometimes this involves solving a problem unique to a particular domain space or a particular architectural issue. Other times it’s about which language is best for a job. That is actually one of the most critical pieces of getting a project right.
Too often, languages are applied to a problem space where another language would be better. Here’s a quick look at some of the major business sectors and the languages best suited for each.
Adron Hallさんは、New Relicで活躍するクラウド ソリューションの開発者である。
プログラミングをする際、その過程において、開発者は常に数多くの選択に迫られる。その選択の中には、特定のドメイン空間や、特定のアーキテクチャに起因する問題を解決することが含まれるが、各プロジェクトごとに、どの言語を使用するのが最適か、という判断をすることでもあるのだ。実際のところ、この言語の判断は、プロジェクトの命運を左右する重要なポイントの一つなのである。
しばしば、最適な言語を選択しなかったことが原因で、問題が生じることがあるのだ。ここでは、各業界で使用される、最適なプログラミング言語の概要を紹介する。
Adron Hallは、New Relicにおいてクラウド・ソリューションの開発主任を務めている。
ソフトウェア開発者は、あらゆるコーディングプロジェクトにおいて、さまざまな判断を下さなければならない。あるときは、特定分野の問題を解決しなければならなかったり、特定のアーキテクチャーに関する問題を解決しなければならなかったりする。またある時は、今の仕事にとってどの言語を使うのが最適かを判断しなければならない場合もある。そして、この言語の選択こそが、プロジェクトを成功させるための最も重要な要因のひとつなのである。
問題となっている分野に対して最適なプログラム言語が使われず、それとは別の言語が使われることが非常に多い。ここで、ビジネスの各分野とプログラム言語の最適な組み合わせの例をいくつか見てみることにしよう。
Financial Sector
The financial sector benefits from a number of languages. One of the key features for calculations is functional programming characteristics. When processing math based on financial calculations, functional paradigms often provide substantive performance benefits. This is why some of the key languages used in the financial sector, like Scala, are functional.
Another key need in the financial sector is languages that benefit from object-oriented paradigms with strong architectural patterns backed by a lot of guidance from the organizations around the languages. That’s why a lot of financial institutions have the majority of their applications written in the Java and C# languages. These languages provide maintainable options that a lot of other languages can’t do as well.
Top Languages: Scala, Java, and C#
Agency, Media, Advertising, and Design
With the overall design processes needed in creative work, languages that can prototype fast are in high demand. The best languages for this are generally scripting languages that are dynamic and contain minimal lines of code for maximum amount of functionality. Patterns and underlying code design elements are less important. Languages like Ruby, PHP and JavaScript are key for this.
In recent years, with mobile technology becoming the prominent computing medium, a larger focus has been put on developing for these platforms. Especially in agencies and design companies. Because of this some languages that are not ideal for fast-paced prototyping have come into use more frequently. Think Java for Android mobile and Objective-C for iOS devices like the iPad, iPhone and iPod.
Top Languages: Ruby, PHP, JavaScript, Java, and Objective-C
Enterprise Applications and Operational Software
In enterprises the key is reusable, pattern-based, large-scale, massive systems that are often complex and require layered architectural design approaches. This is where Java and C# shine. With a large ecosystem of server and framework support this makes these two languages ideal for enterprise scale and development practices.
Top Languages: Java and C#
Lean Startup and Small Software Business
Startups and small businesses face a brutal reality. They must continuously pivot, change, and adapt at an extremely fast rate to survive. Often this is on a minimal budget. Smaller business entities must prototype and iterate on apps and designs multiple times where many other entities may only make small or no changes to a software package.
Because of this, small business and startups often seek out languages that allow for extremely fast prototyping, extensive framework support, and have a strong community and “hacker mentality” around the languages.
This often leads startups and small business to languages like Ruby which is built to work against the Rails and Sinatra Frameworks. There’s also the PHP Scripting language, which also supports many frameworks to make prototyping and deployment fast and easy. And recently JavaScript has even jumped into the arena with the advent of Node.js (Node.js is a server side technology that allows developers to build entire web applications entirely in Javascript). Notably, there are significantly large communities of very committed developers around Ruby, PHP, and JavaScript.
Top Languages: Ruby, PHP and JavaScript
Research and Development, Scientific, and Academic
Scientific Research and academia require languages that support highly accurate mathematics, extremely fast execution, and a focus around the implementation of the language versus any specific organizational characteristics like object orientation. Because of these needs, the academic and scientific communities often use languages like Scala for mathematical calculations, C++ for heavy processing, and even languages like Erlang and Python to accomplish their tasks. Since most of the tasks are much more focused around single outcomes, these languages are an easy choice in most of these environments.
Top Languages: Scala, C++, Erlang and Python