新しいプロセッサ、ロジックボード、そしてさらなる性能が求められる現代では、GoやRustのような新しいプログラミング言語が登場し始めている。 開発者は、よく同じ質問を受けることがある。「次に何を学ぶべばよいのか??」業界は非常に速いペースで変化しており、あなたはいつも学習するたびにに新しい何かを発見することができる。 しかし問題は、あなたがどのようにあなたの次の言語を選ぶのか、ということだ。
あなたの知識、興味、そしてキャリアの目的が主な鍵である。 PythonやJavaScriptのように、コンピュータ業界を支配するスター言語がいくつかあるが、あなたが、特定の知識を得るためにあまり一般的でない言語を学びたいのであれば、どうであろうか。 この疑問を解決するために、これから業界の主力となる可能性がある新しいプログラミング言語をいくつか集めてみた。 慎重に選び、あなたの武器にしてほしい。
9. Kotlin
関連プログラム:JavaScript, Java, C#, Scala
Kotlinは、現代のマルチプラットフォームアプリケーション用の静的型付け言語だ。 JetBrainsのチームによって開発され、2011年に最初に登場した。ユーザーがJavaからKotlinに徐々に移行できるように、Javaよりも優れた工業用オブジェクト指向プログラミング言語として設計されている。
オブジェクト指向アプローチのメソッドとクラスと共に、Kotlinは関数を使った手続き型プログラミングをサポートしている。 LinuxとPerlのシェルスクリプトスタイルの文字列補間とTypeインタフェースもサポートしている。
Kotlinは、中置記法、ヌルポイント安全性、および拡張機能を備えている。 Google I / o 2017では、Kotlinが公式のAndroid開発プラットフォームとして発表された。 C ++とJavaに続いて、Androidと完全に互換性のある第3言語となった。
この言語はPinterest、Square、Trello、Amazon Web Services、Uberによって使用されており、Cordaのコードベースには90%以上、Kotlinが使用されている。
8. Elm
関連プログラム:Standard ML, F#, Haskell,OCaml
Elmは楽しい言語であり、特にWebブラウザベースのグラフィカルユーザインタラクションを作成するために設計されている。 JavaScriptとは異なり、ランタイム例外は発生しない。 その代わり、Elmは型推論を使用してコンパイル中の問題を検出し、ユーザーにわかりやすいヒントを提供する。
この言語は、パフォーマンス、使いやすさ、および堅牢性という3つの要素に焦点を当てている。 let式、無名関数、if式、case式、リスト内挿など、表現力豊かな言語構成要素のセットが含まれている。
Elmはそれ自身の仮想システムを持っているが、より高階の型をサポートしていない。 そのため、一般的なマップやフィルタ機能など、さまざまな一般的な操作の抽象化は提供されていない。
Elmを使用している会社は、NoRedInk、Futurice、Gizra、Hearken、PivotalTrackerなどがある。 モバイルの台頭により、Elmは市場に参入してしばらくの間健闘するチャンスがある。
7. Julia
関連プログラム:Fortran, Lisp, Lua, Python, Perl, Ruby ,MATLAB
Juliaは数値解析と計算科学のための高級プログラミング言語だ。 広範囲の数学関数ライブラリ、分散並列実行プログラム、洗練されたコンパイラ、そして数値の正確さを持っている。
これには、信号処理、線形代数、文字列処理、および乱数生成用のオープンソースのFortranおよびCライブラリが含まれている。 Juliaで書かれたプログラムは複数のディスパッチを中心に編成されているので、さまざまな引数タイプの組み合わせにわたって関数の動作を定義することができる。
Juliaは、特定のスタイルの並列処理をユーザーに課すことはしない。 分散計算にさまざまな重要な構成要素を提供し、幅広いスタイルの並列処理をサポートするのに十分な柔軟性を提供し、ユーザーがさらに追加できるようにしている。
JuliaでWebアプリケーションをすばやく簡単に作成できるだけでなく、結果として得られるプログラムもすばやく対応し、使いやすくなっている。 Facebook、McAfee、Zulily、Disney、Capital One、IBM、Forioなど、多くの有名企業がJuliaを使い始めている。
6. Elixir
関連プログラム:LFE, Clojure, Erlang, Ruby
Elixirはリアルタイム分散アプリケーションを作成するために開発された。 低遅延でフォールトトレラントなシステムを実行するために知られている、Erlang VMを活用する動的で機能的な言語である。 この言語の目的は、異なるCPU間で実行されているRailsアプリのパフォーマンスを向上させることだ。
Elixirコードは、BEAMとして知られるErlang仮想マシン上で実行され、Erlangバイトコードにコンパイルされる。 あなたがデータ処理、ネットワークアプリあるいはある種の銀行ソフトウェアに取り組んでいるなら、これは考慮すべき素晴らしい選択肢である。 しかし、関数型プログラミングを知らないのであれば、使用するのはおそらく簡単ではない。
Elixirのすべては式であり、関数は実行時間に影響を与えずに呼び出すことができる。 この言語は、副作用ベースのループではなく、高階関数と再帰を重視しており、さらに、パターンマッチング、軽量な並行性、およびストリームを使用したLazyおよびasynコレクションを備えている。
ElixirはMoz、Pinterest、Inverse、Bleacher Reportのような企業で使用されるようになった。 ヨーロッパとアメリカ合衆国での年次イベントだけでなく、マイナーな会議や地元のイベントも組織している。
5. Rust
関連プログラム:C#, Ruby, C++, Alef, Haskell, NIL, Cyclone, Limbo, Erlang
Rustは、Mozillaによって開発されたシステムプログラミング言語だ。 2016年と2017年のStack Overflowの開発者アンケートの「最も愛されている」カテゴリでトップの座を獲得した。 コードの設計は、Servo WebブラウザのレイアウトエンジンとRustコンパイラによって洗練されており、C ++や習得しやすい構文に非常によく似ている。
Rustは、安全で並行して実用的なプログラミング言語であることを目的として設計されており、命令型手続きと関数型メソッドをサポートしている。 これはエンドユーザー向けのアプリを開発するためのものではなく、ハードウェア、より具体的にはパフォーマンスを維持しながらより良いメモリの安全性(セグメンテーションを防ぐ)のためのものだ。
自動化されたガベージコレクション(JavaやGoなど)を使用する代わりに、Rustはオプションの参照カウントを使用して、Resource Acquisition Is Initializationを介し、メモリやその他のリソースを管理する。 さらに、最小限のオーバーヘッドでリソースを確定的に管理し、値のスタック割り当てを優先している。
Telenor Digital、SmartThin、Dropbox、Wire、Braintree、daZta、Ather、Onesignal、Faraday、といった企業で使用されている。
4. Crystal
関連プログラム:C, Ruby, C# , Python
Crystalは、非常に抽象化されたWeb開発者の世界にCのようなパフォーマンスをもたらしたいという願いのもと開発された、オブジェクト指向言語である。 構文は主にRubyに触発されており、経験豊富なRuby開発者にとっては習熟しやすいという長所がある。
Crystalは、ネイティブコードの生成をLLVMに依存しているため、ツールチェーンに組み込まれているすべての最適化を利用する。 さらに、静的に型チェックされているため、実行時に失敗するのではなく、あらゆる種類のエラーが早期に検出される。
この言語はマクロシステムを持ち、オペレータのオーバーロードと自動ガベージコレクションをサポートしている。 ネイティブライブラリを簡単に呼び出すための専用の構文があり、低レベルのタスクを再実装する必要がない。 さらに、同時実行性を実現するために繊維として知られている緑色の糸を使用している。
参考: 20 Greatest Computer Programmers Of All Time
クリスタルは現在開発段階だが、Neopoly GmbH、Appmonit、Bulutfon、Protelなど、数人の勇敢な人々がすでに使い始めている。
3. Groovy
関連プログラム:Python, Java, Smalltalk, Objective-C, Perl
Groovyは2003年に初めて登場したオブジェクト指向のスクリプト言語だが、2007年に安定版がリリースされた。Javaバイトコードに動的にコンパイルされるため、あらゆるJavaライブラリとシームレスに統合される。 つまり、Javaや中括弧の構文を使用するその他のコードでプログラミングしたことがあれば、すぐにGroovyを学ぶことができる。
Groovyは、開発者の生産性を向上させ、Grails Webアプリケーションフレームワークへのアクセスを可能にするため、人気も高まっている。 それはNoSQLサポート、強力なビュー技術、プラガビリティなどを含むたくさんのクールな機能がたくさん用意されている。
Javaとは異なり、Groovyは動的および静的な型付け、正規表現のネイティブサポート、ヘルパーメソッドの追加、演算子のオーバーロード、および安全なナビゲーション演算子を備え、nullポインタを自動的にチェックする。 また、HTMLやXMLなどの多くのマークアップ言語をネイティブにサポートしている。
この言語は、Oracle Sales Cloud、eXoプラットフォーム、LinkedIn、XWiki Saas、DataMelt、Mastercard、Netflix、Airbus、Apache OFBizなど、いくつかの大企業で使用されている。
2. R
関連プログラム:S, XLispStat, Common Lisp, Scheme
Rプログラミング言語は新しいものではないが、ビッグデータ革命のおかげで、近年人気が高まっている。 1993年に初めて登場し、現在ではデータ分析や統計ソフトウェアの開発のためにデータマイナーや統計学者の間で広く使用されている。 コマンドラインインターフェイスとグラフィカルフロントエンドの両方が付属している。
R言語には、行列計算のための一連の演算子、効果的なデータ処理機能、およびデータ分析のための中間ツールが搭載されている。 ほとんどの統計的計算言語よりも強力なオブジェクト指向プログラミング機能を備えている。
Rのデータ構造には、配列、行列、データフレーム、ベクトル、リストなどがある。 拡張可能オブジェクトシステムは、時系列、地理空間座標、および回帰モデルのためのオブジェクトを持っており、さらに、RはMATLABやOctaveに匹敵する性能ベンチマークを備えた一般的な行列計算ツールとして動作する。
参考: 8 Best Artificial Intelligence Programming Language
Rは、2008/2012/2016年の大統領選挙および2010/2014年の中間選挙の可能性をモデル化するために、政治予言者FiveThirtyEightによって使用された。 また、共和党全国委員会および民主党全国委員会でも、潜在的な有権者を特定し、最大人数の投票権を得るための取り組みを管理するために使用されている。
1. Go
関連プログラム:C, Python, Smalltalk, Alef, CSP, Modula, Pascal, Limbo , BCPL
Goは、大規模な組織が日常的に直面しているコーディングの問題を管理する目的で、2009年にGoogleによってリリースされた。 開発者がGoに満足している主な理由は、使い易さ、単純さ、並行性の機能、そしてパフォーマンスだ。 2016年には、今年のTIOBEプログラミング言語賞が授与された。
Goはクラスの継承を置き換える2つの機能を提供する。1つは自動化された合成形式と見なすことができる「埋め込み」、もう1つはポリモーフィズムを提供する「インタフェース」だ。 CPUの並列性だけでなく非同期性のためにも、並行コードを書くための機能とライブラリサポートが組み込まれている。
この言語には、テストやマイクロベンチマークのためのgo test、コードのフォーマットのためのfmtなど、デバッグ、テスト、およびコード検証ツールが含まれている。 また、デバッグやプロファイリングのサポート、競合状態テスター、ランタイム計測(ガベージコレクションの一時停止など)も含まれる。
Goには、YouTube、Dropbox、Cloudflare、Netflix、BBC、Soundcloud、Zerodha、MaxCDN、Tumbler、Twitter、Yandex、Yahoo、Wikia、Uber、CoreOSなど、多くの大企業ユーザーがいる。