プログラミング言語を人気で分けると、それらは3つの階層に分けられます。 最初の層には、Java、JavaScript、Python、Ruby、PHP、C#、C ++、Objective-Cなどの主流言語が含まれます。 主要な言語の一部は衰退する可能性がありますが 、仕事を簡単に見つけられるようにしたい場合は、1つ以上の言語をよく知っている必要があります。
第2階層の言語は主流に侵入しようとしていますが、まだこれを達成していません。 強力なコミュニティを構築することでその価値を証明していますが、ほとんどの保守的なIT企業ではまだ使用されていません。 Scala、Go、Swift、Clojure、Haskellは私が第2層と考える言語です。 一部の企業はこれらの言語を個々のサービスに使用していますが、めったに広く使用されていません(ただし、iOSの主要言語としてObjective-Cを追い始めているSwiftを除く)。 GoとSwiftは、今後2〜3年で2段目から1段目に移行する可能性が高くなります。
最初の階層のほとんどの言語は、それぞれの立場にしっかりと根ざしています。 したがって、指導的地位からの言語の喪失は目に見える時間を要し、第2層言語の場合、第1層に侵入することは非常に困難です。
この記事の有望な言語は第3層に属しており、まだ始まったばかりです。 一部の言語は長年にわたって人気を博さずに第3層にとどまりますが、他の言語はわずか数年でシーンに登場します。 たとえば、記事で説明する言語など。
有望な言語:これら5つはなぜですか?
議論する5つのプログラミング言語は非常に新しく(初めていくつかの言語を聞く可能性があります)、今後2〜3年で2番目の層に侵入する素晴らしいチャンスがあることは明らかです。 いつか、これらの言語の1つが最初の階層の言語を抑制することができるでしょう。
このため、これらの5つの言語がこのリストに選択されました。
Elmは、主に関数型プログラミングを好むJavaScriptコミュニティで人気を集めています。 TypeScriptやDartと同様に、ElmはJavaScriptに変換されます。
Rustは、主にCおよびC ++を使用するニッチ向けに設計されたシステムプログラミング言語です。 したがって、この言語の人気がWeb開発者の間で急速に成長しているのを見るのは驚くべきことです。 この事実は、低レベルのコードを書くことを余儀なくされ、同時にPHP、Ruby、Python、またはJavaScriptよりも生産性の高いWeb開発者に最適なオプションを提供したい言語がMozillaで作成されたことを知ると、より有意義になります。 2016年にStackOverflowが実施した開発者調査によれば、Rustは「Favorite Technology自体」カテゴリでも最高と認識されました(つまり、ほとんどのユーザーはこの言語の使用を継続したいと考えています)。
Kotlinは約5年前から存在していましたが、今年になってようやく生産準備完了バージョン1.0に達しました。 彼はまだScala、Groovy、またはClojureの人気に達していませんが、JVMで最も人気があり成熟した(Javaを除く)3つの言語です。 。 この言語は、JetBrains(人気のあるIntelliJ IDEA IDEの作成者)に由来します。 したがって、 開発者の生産性に焦点を当てて考え抜かれます。
Crystalは、CレベルのプログラムパフォーマンスをWeb開発者の高レベルの世界にもたらすことを望んでいる別の言語です。 Crystalは、Rubyコミュニティを その構文はRubyに似ており、場合によっては同一です。 すでに多数のRubyスタートアップが成長を続けており、Crystalはこれらのアプリケーションのパフォーマンスを次のレベルに引き上げる上で重要な役割を果たすことができます 。
また、ElixirはRubyエコシステムからインスピレーションを得ていますが、Cのようなメリットをもたらすのではなく、 非常にアクセスしやすく、応答性の高いシステム 、つまり 批評家は言う。 Elixirは、Erlang VMでこれらの利点を実現しています。ErlangVMは、電気通信業界で25年の成功を収めていることで高い評価を得ています。 フェニックス (ElixirのWebフレームワーク)と大規模で開花するエコシステムは、この言語にさらなる魅力を与えます。
次に、これら5つの言語のうち4つが人気のはしごを登る様子を見てみましょう(StackOverflowとGitHubのデータに基づく)。
これらの各言語は、専用のコミュニティと独自の週刊ニュースレターを誇っています。 将来のエキサイティングな機会を持つ若い言語を学ぶことを検討している場合、経験豊富な愛好家とそれぞれのエコシステムのリーダーによって書かれた、これらの5つの言語のそれぞれについての短いプレゼンテーションを読んでください。
ニレ
Elmは、使いやすさに重点を置いた関数型プログラミング言語であり、高性能のJavaScriptコードにコンパイルされます。 JavaScriptとともに使用することで、インターネット上でユーザーインターフェイスを作成できます。 JavaScriptと比較したElmの主な利点は、信頼性、サポートの容易さ、プログラミングの楽しさへの集中です。 より具体的に:
- ランタイム例外なし: Elmコードは、 実行時に例外をスローしないという評判があります 。 「未定義は関数ではない」ということではありません。
- 伝説的な礼儀コンパイラ: Elmコンパイラは、競合他社の中で最も有用なエラーメッセージで称賛されることがよくあります。 「コンパイルすると、原則としてすべてが機能します」-これは深刻なリファクタリングの後でも一般的な意見です。 これにより、エルムの大規模プロジェクトは、JSの相応のプロジェクトよりもはるかに簡単に保守できます。
- :
elm-package
. API , ,elm-package
. . - : Elm , . Elm-, UI , React, Angular Ember.
- :
elm-format
. . “” .elm-test
“” , .elm-css
Elm-, css-, , , .
Elm JavaScript. JS , JS .
guide.elm-lang.org, , Elm in Action How to Use Elm at Work, , Elm .
Richard Feldman — Elm in Action elm-css
, CSS- Elm.
Rust
Rust , C , .
:
- : C- (, ). Rust C++, RAII - , , Rust .
- : , C, , . (, ). Rust " ”, .. , . , Rust ( C++, ).
- : , . Rust .
Rust :
- : Rust — , , . , , , , . , .
- : , C++ Java, Rust . , , , , , , Printable Hashable PrintableHashable.
- : C/C++ , CMake. Rust , GCC, - API.
, The Rust Book Rust by Example.
Will Crichton — , , . Rust .
Kotlin
Kotlin , JVM JavaScript. Kotlin JetBrains, ( Java). -, , - Java. , , Kotlin.
- : , .
- : , , , , desktop .
- : , , null reference exceptions.
- : Java, , .
- : JetBrains , , . , .
Kotlin — , , . , :
- Null-safe : Kotlin , , /.
- : , .
- : , , DSL, .
html { head { title {+"XML encoding with Kotlin"} } body { p { + "This is some HTML" } } }
Kotlin 1.0 2016 , . JetBrains Kotlin. , Amex, NBC Digital, Expedia Gradle.
Hadi Hariri — - JetBrains, Kotlin , .
Crystal
Crystal “ C, Ruby."
, , , - .
Crystal:
- Ruby ( ).
- , .
- C-, Crystal.
- , (boilerplate).
- .
Crystal , :
- : Crystal , CSP ( , Go) . , Fibers, . Fiber
spawn
/. - : Crystal , . , .
crystal
:crystal
. , , . .crystal play
,irb
.
:
: , . Ruby, Crystal . , .
Crystal Book Crystal for Rubyists.
Serdar Doğruyol — Crystal for Rubyists, Kemal, - Crystal, Crystal Weekly.
Elixir
2012 , Elixir , , . , -, Erlang (BEAM). Erlang VM , 25 .
Elixir - Cowboy ( HTTP-), Phoenix ( -). , Elixir Nerves.
Elixir Ruby. , , Ruby. , .
:
- ”” : .
- : .
- : , , .
Phoenix-, Elixir
:
- .
- .
- .
- , , . . 2 .
- , . . WhatsApp 50 900 .
- .
- Lisp- AST, , . ( )
Elixir Phoenix , - API , . Pinterest, Bleacher Reports Elixir . ( ), .
Christian Nelson — Carbon Five.
P.S. Top-5 ?
P.P.S. : Nim. - , ( , ).
, , — , .