知っておくべき5つの新しいプログラミング言語

一部の人々にとって、新しいプログラミング言語を学ぶことは、過剰に避けるのが最善です。なぜ、ああ、なぜ、彼らはさらに別の言語が必要なのかと彼らは主張する?


もう十分じゃないですか?

仕事を成し遂げる既存のツールではない?

そして、新しいことに挑戦したり、宝石を見つけたりする機会に飛びつく、疲れを知らない探求者がいます。彼らにとって、学習はそれ自体で終わりであり、彼らは週末を焼き払うためにコンソールベースのカードゲームをそのあいまいで新しい言語で構築することにそれほど説得力を必要としない。.

どのキャンプに所属していても、議論の余地はあります。私たちは皆、明るい未来を持つ何かに時間を費やしたいのです。.

レガシーキャンプの人々にとって、彼らの好きな既存の言語はすでに勢いがあり、明るい未来が続きます。彼らに、私は彼らの今成熟した好ましい開発ツールチェーンがかつて多くの人が飲むことを拒否した「応急処置」だったことを思い出させなければなりません。そして、今日です。新しい技術を追加して、新しい問題を解決したり、開発の苦痛を緩和したりする.

何かがこれを根本的に十分に行う場合、それはマインドシェアを奪い続け、トップに到達し続ける可能性があります。それが起こったとき、あなたは取り残されたくありません。 ��

そして、光沢のあるもので実行したい人には、警告:プログラマーとして楽しむことは不可欠ですが、私たちは意図せずにエネルギーを無駄にしないように注意する必要があります.

承知しました, ブレインファック 信じられないほどねじれた、パズルのような楽しい小さな言語ですが、真剣に追求することによって利益を得ることはほとんどありません。あなたは新しく、分別があり、強固な基盤を持つ何かを求めています.

これらの言語が選択された方法

言語の選択は、特に雇用と満足における将来の利益のために新しい言語が検討されている場合、威圧的な仕事です。すべての言語の作者は、可能な限り完璧な言語を構築し、回答するすべての問題を解決したと確信しています。では、どうやってカットするの??

この投稿では、検索を妥当な範囲内に保つためにいくつかのパラメーターに焦点を当てました.

発売日

特に、非常に新しい言語は避けました.

新しい、つまり、執筆時点で5〜6年未満の言語、特に安定性(1.0リリース)に達していない言語を意味します。残念ながら、これは以下のような本物の宝石を除外します 結晶, しかし、私はこれに戻って、いつかその成功について書いてみたいと思います。 ��

Crystalのコードスニペット(「Fast as C、Slick as Ruby」)

私にとって、5〜12年はスイートスポットであり、言語が安定し、より多くの改良が行われています。もちろん、このルールには例外があり、これらは該当する場合に考慮されます.

コミュニティの強い関心

これは非常に簡単ですが、何か新しいことに興奮したときに無視されることがよくあります。現在、多くの人々にとって、大企業の支援は成功の前例として十分ですが、常にそうであるとは限りません.

はい、AppleのObjective-Cと現在のSwiftは、高度に制御されたエコシステムで唯一のオプションであるために成功しましたが、Facebook D そして ハック (私の見解では、醜い言語はすでに醜い言葉になっています)は、実験にすぎません。.

理想的な組み合わせは、大規模で安定した企業によって支持され、人気が爆発している言語です(Reactなど)。.

しかし、問題の肉はまだコミュニティです。言語が話題を生み出しておらず、教育して普及させるのに十分な開発者がいない場合、GitHubの墓から登ることはありません.

私にとって、これは次のような成熟した魅力的な言語を除外します ラケット そして アーラン, 成長曲線は横ばいでした.

的を絞った明確なUSP

3番目に探しているのは、言語の明確な目標です。たとえば、ネーミングの問題を修正してネイティブPHPにコンパイルするより良いバージョンのPHPは、私には機能しません.

利点は、誰もがそれに移動しようとした場合に発生する亀裂を正当化するには小さすぎます。この基準によって、私は次のような試みを却下せざるを得ません CoffeeScript, および他の多くの同様のコンパイルからJavaScript言語へ.

正直なところ、私は構文のみの改善をすぐに却下する義務があります。歴史は、言語に関しては有用性が友好性よりも優先されることを示しています。そのため、すべての新しい言語に焦点を当てることがより楽しい経験である場合、私はこのリストを作成しないと思います.

明確で一貫した構文

はい、知っています。構文は問題ではないと言ったばかりです。正確には、「構文のみの改善」は重要ではないと私は言いました。ただし、そうは言っても、構文はプログラマーの生産性と保守性の重要な要素の1つであるため、ここでの計算で機能するのは当然です。.

構文に加えて、一貫性の考え方が伴います。関数の命名、モジュールの構造化などは、言語が誤解するわけにはいかない重要なことです。神のために2018年です。PHPに似た別の言語設計は、私たち全員にとって恥ずべきことです。それでは、さっそく、トップ5の推奨事項から始めましょう。.

1.ジュリア

MITの人々にとって、データサイエンスで使用できる言語は、せいぜい妥協でした。 Pythonは、そのすべての明快さと人気のために、データオブジェクトを処理するためのネイティブコンストラクトが欠けていました。また、インタプリタ言語であるため、Pythonの動作は遅くなりました(ライブラリはほとんどCで記述されているため、ライブラリではありません)。.

しかし、おそらく最大のターンオフは、不格好な同時実行モデルと、並列コンピューティングモデルの欠如でした。後者はスーパーコンピューティングの定番です。.

結果として, ジュリア うまれました.

Juliaは2018年9月29日に安定版リリースに達しました。この記事が書かれた数日前(タイミングについて話してください!)公式Webサイトがその機能について述べていることは次のとおりです。

ジュリアは数値計算に優れています。その構文は数学に最適であり、多くの数値データ型がサポートされており、並列処理はそのまま使用できます。 Juliaの複数ディスパッチは、数値および配列のようなデータ型を定義するのに自然に適合します.

構文的には、JuliaはPythonとCの組み合わせと見なすことができます。そうです、言語がこれらの品質の両方を目指して成功したのはおそらく初めてです。.

簡単にするために、ジュリアは厳密なタイピングを強制していませんが、非常に高速です。ここにいくつかのベンチマークがあります:

ジュリアの公式ベンチマーク

ご覧のように、JuliaはCより少し劣っていますが、JavaとPythonを圧倒します。ジュリアはどんなアイキャンディを提供していますか?

さて、ここに直角三角形の斜辺を計算するための関数の実装があります:

最後に、ジュリアのほとんど 生態系 数学の仕事に大きく傾いている、私はそれが明るい汎用的な未来を持っていると信じています.

これは私の知る限り最初の言語であり、並列コンピューティングをファーストクラスでサポートしているため、WebおよびIoTドメインで人気が高まるのは当然です。.

2.さび

新しいFirefoxブラウザのリリースを試したことがあれば、長年の作業を経て、ついにChromeから市場シェアを奪うことができるように見えます。.

ブラウザーが軽くてすっきりしていて、すばやくレンダリングされる場合は、Mozillaが特別に開発した言語のおかげです。 さび.

ルストに明るい未来があると言うのは嘘でしょう。言語はすでに大成功を収めており、まだ聞いたことがない場合は、アプリケーションの領域が専門化されており、その目標が恐ろしいためです。C++の置き換えです!はい、私たちはついにこれを行うことができるだけでなく、すでにそれを行っている言語を手に入れました.

C ++の過度に負担のかかった設計とメモリ管理の課題に不満を抱いている人にとって、Rustは新鮮な空気の息吹です.

Rustプログラムは次のようになります。

私の意見では、簡潔でエレガントです。 Rustは関数型プログラミングアプローチに従っています。これにより、コードがより構成可能になり、取り組むべきオブジェクト指向の階層がなくなります。.

では、RustにC ++を追いかける勇気を与えるものは何でしょうか。これが新しいメモリモデルです。 Rustは、古いnew()/ delete()ダンスに依存するのではなく、所有権の概念を導入します.

直接メモリを割り当ててアクセスするのではなく、Rust変数は互いに「借用」し、コンパイラによって厳格な制限が課されます。全体的なコンセプトは複雑すぎて一言で説明できないので、気軽にチェックしてください。 公式ドキュメント 詳しく知ることができ.

重要なのは、これにより、ガベージコレクタを必要とせずに100%のメモリの安全性が得られるということです。.

Rustはシステムプログラミングの世界を席巻しました。一部のプラットフォームではすでにサポートされており、強力なブラウザとレンダリングエンジンが本番システムのC / C ++コードをすばやく置き換え、オペレーティングシステムの記述に使用されています.

確かに、別のブラウザやデバイスドライバを作成するのは誰もが簡単なことではありませんが、Rustはすでに他のドメインに広まっています。 Rustにはすでに完全に機能し、途方もなく高速なWebフレームワークがいくつかあり、ますます多くのアプリケーションライブラリが開発されています.

正直なところ、エキサイティングな未来に興味があるなら、Rustは完璧な言語であり、今が最適な時期です。 Rustは離陸した飛行機ですが、星に向かっているため、まだ搭乗する時間があります!

学ぶ Dmitri Nesterukの錆.

3.エリクサー

開発者の幸福に焦点を当てている言語の中で、最初の場所は永久にRubyに予約されています。それは詩のように読み、精神的な摩擦を桁違いに減らすのに十分な近道がある言語です.

ですから、Railsフレームワークが真面目な開発者やスタートアップのための完全なスタック開発を支配し続けているのも不思議ではありません。しかし、誰もがRails、特にコア開発者の1人に満足しているわけではありません– ホセ・バリム. 作成者自身がこの言語の起源を最もよく説明していると思います インタビュー

長い話ですが、短くて甘いものにしていきます。 2010年に、私はマルチコアシステムで作業するときにRailsのパフォーマンスを向上させることに取り組んでいました。私たちのマシンとプロダクションシステムは、ますます多くのコアで出荷されているからです。ただし、Rubyは同時実行性の問題を解決するための適切なツールを提供していないため、エクスペリエンス全体が非常に苛立たしいものでした。そのとき、私は他のテクノロジーを検討し始め、最終的にErlang仮想マシンに夢中になりました.

私はますますErlangを使い始めましたが、経験上、関数型を含む他の多くの言語で使用可能ないくつかの構成が欠落していることに気付きました。そのとき、Erlang VMの上にさまざまな構成要素と優れたツールをもたらす試みとして、Elixirを作成することにしました。.

そして見よ, エリクサー うまれました!

ScalaがJava言語を改善するのと同じように、その下にある同じ仮想マシン(JVM)をターゲットとするように、Elixirも数十年の歴史があり、実績のあるErlang仮想マシンを利用します。.

さて、Erlangについての議論はこの記事の範囲を超えていますが、最低限知っておくべきことは、それが通信業界で最も守られている秘密であることです。電話ネットワークがWebベースのシステムよりもはるかに信頼性が高い場合は、アーラン.

さらに簡単に言えば、それはこれが意味することです。チャットのようなリアルタイムシステムを構築している場合、Elixirは、Ruby(またはPHP、Python、Java)に比べて、RAMの消費量が少なく、はるかに安定しています。.

Rubyを実行し、たとえば10,000の同時接続で最大になるマシンは、Elixirを使用すると簡単に200,000を処理でき、2Dゲームを実行するのに十分なRAMを備えています!

Elixirコードスニペット

構文的には、Elixirは恥知らずな形でRubyをコピーし、その主要なWebフレームワークであるPhoenixは恥知らずな形でRailsをコピーします。 Laravel、Grails、Masoniteなどと一緒に、すべての言語がRailsのようなフレームワークを持ち、移行を容易にすることができるようになったので、それも良いことだと思います。 「独創性の欠如」をあざ笑う人もいるかもしれませんが、少なくとも私は文句を言っていません.

最終的に, エリクサー さわやかで、快適で、実用的とは言えない技術の1つです。複数のRuby(およびRuby以外の)ショップがElixirに移行し、Pinterestのような大企業がElixirを本番環境で使用して非常に満足のいく結果を得ています.

多くの人々は、Node.jsは同時実行の間に合わせの試みであり、すぐにElixirに置き換えられると考えています。私は彼らに同意する必要があります。 ��

4.コトリン

2017年のI / Oで、Googleは無警戒な群衆に爆弾を放ちました。同社は正式に発表しました コトリン Android開発の主要言語として、業界全体に衝撃波を送ります.

現在、GoogleがJavaの後継に積極的に取り組んでいることは、Oracleの訴訟にかまれた後も当然のことです。ただし、Kotlinの採用はやや予想外であり、Googleが仮想マシンを間もなくリリースする可能性はまだあります。とりあえず、コトリンは急増している.

Kotlinは、めちゃくちゃ良いコードエディターのスイートで知られるJetBrainsによって開発されました。その1つであるIntelliJ IDEAは、Android Studioの基盤を形成しています。 Kotlinの設計目標は、安全性、簡潔さ、およびJavaとの100%の相互運用性です.

何よりも、Kotlinコンパイラーは、Javaの世界で非常に一般的なヌルポインター例外を排除するために一生懸命働きます。それはまた、ことわざのJavaの冗長性をかなり低下させます。これは多くの人にとって安心になります。.

JavaとKotlinのすばらしいコード比較は次のとおりです。

画像クレジット:hype.codes

Kotlinコードは大幅に短くなり、すり抜ける認知過負荷がはるかに少なくなります.

しかし、1つはっきりさせておきましょう。Kotlinは、Javaに取って代わる可能性が非常に低いですが、急速に急速に普及しています。 10年後、小規模から中規模のチームはKotlinにとどまらず、大規模なグループは従来の理由から純粋にJavaを使用し続けると思います.

とは言っても、KotlinはJavaの機能をすべて実行し、誰にも気付かれずにJavaコードとマージできるため、非常に明るい将来を迎えています。!

5. TypeScript

神は私がこの場所のために自分を拘束しなければならなかったことを知っています!私の中のすべてが「エルム! Elm!」、しかし、そのアイデアがどれほど革新的であるか、または構文がどれほど神聖であるかに関係なく、Elmはまだフロントエンド作業の主流の代替と見なされていません。 ��とにかく、主流であるTypeScriptに移りましょう。.

JavaScriptはワイルドベリーに似ています。醜くて不愉快ですが、フロントエンド開発のジャングルを乗り越えたいと思うなら、それをお腹にする必要があります。それを置き換えるために多くの試みが行われました(そしておそらく、新しいWebAssembly標準が成功するでしょう)が、本当にみんなの注目を集めたのは、Microsoftによって開発されたスーパーセットでした.

あなたが聞いたことのある素晴らしいチャンスがあります TypeScript:Angularは、バージョン2以降でそれを採用した最初のフレームワークであり、人々はすぐに気付きました。 TypeScriptは、世界で最も有名なプログラミング言語に、非常に必要とされている素晴らしい超能力を追加しているからです。.

はい、出産を苦しめたり、悪態をつけたりせずに、ネイティブJavaScriptコードを書くことが可能になりました!

TypeScriptがテーブルにもたらす拡張機能は次のとおりです。

✓強力なタイピング: 最後に、文字列は数値ではなく、数値はオブジェクトではなく、空の配列ではありません。!

✓コンパイル時の型チェック: コードが正しくコンパイルされれば、JavaScriptランタイムのいぼから解放されることがほぼ保証されます.

✓クラスとモジュール: はい、クラスはES6の標準ですが、クラスシステムシステムに加えて、TypeScriptにも含まれています.

✓型推論: 複雑な型の場合、型はコンパイラーによって簡単に理解できるため、頭痛の種を省くことができます.

✓非同期/待機: async / awaitのキーワードとパターンは基本的なものなので、PromiseとCallbackをいじる必要はもうありません!

名前空間、ジェネリックス、タプル。 。 。私は何度も続けることができますが、TypeScriptは最悪の開発経験の1つを最高の開発経験の1つに変換すると言うだけで十分です。.

TypeScriptコードスニペット

TypeScriptの影響は否定できません。これは、Googleのダーツのような同様の試みを分野外に押し出し(モバイル開発フレームワークであるFlutterを通じてカムバックを試みています)、より強力な型の利点にJS開発者の目を開きました.

その結果、React、D3、Vue(jQueryでさえ!)などの重要なライブラリにTypeScriptバージョンが追加され、世界中の最高のソフトウェアショップですべてのJavaScriptコードがTypeScriptコードとして記述されています。 TypeScriptヘッダーがNode.jsでも使用できるようになりました(正直なところ、ノードが同時実行性のストーリーを改善し、お粗末なメモリ管理にパッチを適用できる場合、それは永久に持続します).

公にした後、Node.jsの作成者であることを知って驚くかもしれません 後悔 彼の創造は、に取り組んでいます 新しいランタイム (現時点では公式ウェブサイトはありません。GitHubリポジトリのみです)、TypeScriptを主要言語として使用しています.

最高のニュース? TypeScriptは小さい 学ぶ言語 将来的にはかなりのメリットがあります。中級のJavaScript開発者であれば、2日以内に十分なTypeScriptを入手して、既存のすべてのコードを移植できます。!

結論と免責事項

特定の言語は、この記事の言語と同じくらい人気を得ていますが、さまざまな理由でリストに含まれていません。簡単な外観は次のとおりです。

  • Golang:あまり一般的ではないにしても、主流の言語としてすでに確立されています。この時点で、Golangには市場シェアを低く保つ競合他社がいくつかあると思います.
  • R:Rはすでにデータサイエンティストの間で熱くなっており、アプリケーション開発者をそれほど引き付ける可能性は低いです。さらに、機械学習ライブラリがすべての主要言語にゆっくりと移行していることを忘れてはなりません(神のために、PHPにも現在存在しています!)。 ��
  • Swift:Appleは彼らのエコシステムに強力なグリップを持っています、そしてSwiftはそこで利用可能な唯一の言語です。間違いなく、以前のObjective Cが大流行し、現在のSwiftも大流行しました。私はそれが不正行為だと考えているので、ここに含めることを拒否します。 ��

将来は常に不確実であり、あなたのキャリアを進める1つの方法は、すでに機能しているものに固執し、「気を散らす」ことを拒否することです。そうすれば、Java、PHP、Python、Rubyなどはすべて、使いやすい優れた言語です。ただし、一部の人にとっては、規範だけでは十分ではありません。彼らは外に出て探検し、将来に大きく賭けたいと思っています。後者のキャンプに落ちた場合、これら5つの言語の1つがTo Doリストの一番上にあるはずです。.

最後に、言語を評価しようとするとき、努力があなたを圧倒しないようにしてください。それはそれほど多くないからです。すでにいくつかのプログラミング言語を知っている場合は、週に5〜6時間を費やすことで、最大2か月以内にこれらの言語を学ぶことができます。将来発生する可能性のある幸福と金銭的利益は数倍になりますが.

ここでいくつかの重要な言葉を見逃しましたか?それとも、ここに記載されている言語に問題があるのでしょうか?もしそうなら、コメントを残して、私が改善するのを助けてください。 ��

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map