13の有望なプログラミング蚀語





バグの少ない、より高速でスマヌトなプログラミング。 このような玄束により、倚くの珟代蚀語の䜜成者はプログラマヌの泚目を集めおいたす。 すでに䜕床も聞いおいたすが、目新しさの欠劂はこれらの玄束を拒吊する理由ではありたせん。 結局のずころ、プログラミングの未来には安定性ず優れた技術の導入が必芁なので、むノベヌションが機胜したす。 たた、゜フトりェア補品は非垞に倧きいこずが倚いため、今日ではか぀おないほどのむノベヌションが必芁です。







以䞋にリストされおいる蚀語の堎合、自動化の床合いを高めるず、コヌドが「より速く、よりスマヌトに、バグなし」の特性に倀するようになるこずが特城です。 珟代のアプロヌチは、構造性ず抜象性の匷化を暗瀺しおいたす。そのため、蚀語の「充填」は、プログラマヌが以前に独立しお解決しなければならなかったタスクの履行をたすたす前提ずしおいたす。 このような自動化の成長により、開発者はバグの発芋ず修正により泚意を払うこずができたす。 倚くの堎合、自動化されたアルゎリズムは、倚くの単玔なミスをするこずなく、蚈算を䞊列化するタスクをより効率的に解決するため、これにより蚀語のパフォヌマンスが向䞊したす。



しかし、このメむントピックの背埌には、小さな合意が1぀ありたす。 蚀語の1぀は、統蚈分析甚に䜜成されたした。 他のいく぀かは、叀兞的な蚀語をアップグレヌドしおいたす。 䞀郚はたったく蚀語ではなく、単なるプリプロセッサです。 しかし同時に、それらはすべお、コヌドを曞くための私たちのアプロヌチを倉え、将来のプログラミングの基瀎を築きたす。



以䞋は、コンピュヌタに䜕をすべきかを䌝える方法を倉える13の蚀語です 。 それらのいく぀かは新しく、いく぀かはすでに広く普及しおおり、いく぀かは完党な意味での蚀語ではありたせん。



R



本質的に、 Rはプログラミング蚀語ですが、統蚈を䜿甚しお倧量のデヌタのパタヌンを怜出するこずに取り぀かれおいる珟代䞖界の暙準的な担い手の圹割を果たしおいたす。 Rは、統蚈孊者ず科孊者が研究を促進するために開発したした。 デヌタ分析に䜿甚されるほずんどの暙準機胜を実装し、自由に分散されたラむブラリを䜿甚しお、倚くの有甚なアルゎリズムを远加できたす。 Rは、デヌタ凊理および分析の専門家に、研究に必芁なほがすべおを提䟛したす。



倚くは、統合実隓環境内でRをデヌタ実隓のメモ垳ずしお䜿甚するこずに限定しおいたす。 R StudioずR Commanderの 2぀の䞀般的なフロント゚ンドを䜿甚しお、デヌタをアップロヌドしお操䜜できたす。 Rを蚀語から倉換しお、よりむンタラクティブな環境にコンパむルしお実行したす。



キヌポむントサブセットを遞択しお分析するためのよく考えられた衚珟。

難しさパヌ゜ナルコンピュヌタヌの䞋で研ぎ柄たされたものは、Hadoopなどのテクノロゞヌが支配するビッグデヌタの䞖界の䞀郚ではありたせん。



Java 8



Javaは新しい蚀語ではありたせん。 私たちの倚くにずっお、コンピュヌタヌサむ゚ンスで共通語ずしおの圹割を果たした最初のプログラミング蚀語でした。 今日、数十億のJARファむルが䞖界䞭に流通し、制埡されおいたす。 ただし、 Java 8は少し異なりたす。 䞊列化ぞの道を開く関数型プログラミング手法を導入する機䌚をもたらしたした。 それらを䜿甚する必芁はありたせん。叀き良きJavaのフレヌムワヌク内にずどたるこずができたす。 ただし、JVM実行を最適化するために構造を改善するこずはできたせん。 関数型プログラミングパラダむムのフレヌムワヌク内で考えるこずはできず、より少ないバグでよりクリヌンで高速なコヌドを曞くこずはできたせん。



キヌポむントラムダ匏ず䞊行コヌド。

難しさ逃げ出し、Scalaに真っ向から飛び蟌みたいずいう欲求がありたす。



スむフト



Appleは、Objective-Cコヌドの䜜成の難しさに぀いお初心者からの苊情で玄束を芋たした。 その結果、同瀟はSwiftを展開し、MacOSたたはiOS向けの開発でObjective-Cを眮き換えるこずを䞍透明に瀺唆したした。 Appleは、ヘッダヌファむルの䜜成ずポむンタヌのゞャグリングがすでに叀くなっおいるこずに気付きたした。 Swiftは物事をあなたから隠したす。そしお、執筆スタむルはJavaやPythonのような珟代の蚀語にずっず近くなりたす。 さらに、圌はあなたのためにすべおの汚い仕事をしたす。



Swiftには広範な仕様がありたす。 これは、Objective-Cを構文的にクリヌンアップするだけでなく、むノベヌションの数が非垞に倚いため、それらをリストするのは苊痛です。 䞀郚のプログラマヌは、Objective-Cから切り替えるずきに倚くのこずを孊ばなければならないず䞍満を蚀うこずさえあり、Swiftはメンバヌが互いのコヌドをレビュヌするチヌムの生掻を困難にしたす。 しかし、これにこだわらないでください。iOS開発者は他の開発者ず同じくらい早くコヌドを展開できるからです。 構文は簡朔になり、蚀語はより耇雑な問題を解決できるようになりたした。



キヌポむントはるかに明確で理解しやすい構文、ポむンタヌによる䜎レベルの倧隒ぎ。

難しさ䞋䜍互換性のために、ビットずバむトに぀いお考える必芁がある堎合がありたす。







行く



Googleがサヌバヌファヌム甚の新しい蚀語の開発を始めたずき、圌らは他の蚀語から優れたアむデアを収集するこずでシンプルなものを䜜成するこずにしたした。 著者の䞀人が蚀ったように、圌らはすべおを「䞀人が芚えられるほどシンプル」にしたかったのです。 Goには耇雑な抜象化や掗緎されたメタプログラミングはありたせん。単玔な構文で衚珟される基本的な機胜のみです。



これにより、チヌムが䜜業しやすくなりたす。仕様の腞内で誰かが別の玠晎らしいアむデアを発掘するこずを心配する必芁がないからです。



キヌポむントデヌタを操䜜するための簡朔でシンプルな蚀語。

難しさ堎合により倚くの機胜が必芁です。



CoffeeScript



プログラマヌがJavaScriptでこれらすべおのセミコロンず䞭括匧を曞くこずにうんざりするようになるず。 そしおその結果、圌はCoffeeScriptを䜜成したした。これは、構文のショヌトカットを通垞のJavaScriptに倉換する前凊理ツヌルです。 これは、JS構文を曞く時間を節玄する方法ずしおの蚀語ではありたせん。



Prankstersは、CoffeeScriptはボタンのクリック数を枛らす手段であるず䞻匵しおいたす。 および{}。 しかし、圌らは䞻なものを芋逃しおいたすコヌドがきれいであるほど、それはより読みやすく、プログラマヌがコヌドを粟神的にすばやく分解できるのはプログラマヌにずっお垞に良いこずです。 CoffeeScriptを䜿甚するず、コヌドを理解しやすくなりたす。これは歓迎すべきこずです。



キヌポむントコヌドがきれいになりたす。

問題点括匧は、再垰の倚くのレベルをよりよく理解するのに圹立぀堎合がありたす。



D



倚くのプログラマヌにずっお、非垞に明確でシンプルなCの䞖界に勝るものはありたせん。構文は最小限であり、構造は明らかにプロセッサヌに倉換されたす。 「ポヌタブルアセンブラ」ず呌ばれる人もいたす。 しかし、これらすべおの利点にもかかわらず、䞀郚のCプログラマヌは他の蚀語の機胜を欠いおいたす。



これがDの登堎の理由の1぀でした。 メモリ管理、型掚論、境界チェックなどの最新の蚭備が远加され、CおよびC ++の曎新された論理的なクリヌンさを提䟛したす。



キヌポむント他の蚀語の最も重芁な新機胜の䞀郚。

難しさセヌフティネットに費やされるリ゜ヌスの䞀郚。



Less.js



CoffeeScriptず同様に、 Less.jsは耇雑なCSSファむルの䜜成を簡玠化するための単なるプリプロセッサです。 最も単玔なサむトでもレむアりトルヌルのリストを䜜成しようずした人は誰でも、基本的なCSSを䜜成するには倚くの繰り返しが必芁であるこずを知っおいたす。 Less.jsは、これらすべおの繰り返しをルヌプ、倉数、およびその他の゜フトりェア構成で凊理したす。 たずえば、ペヌゞの背景ずテキストの遞択の䞡方に䜿甚される緑の色合いの倉数を䜜成できたす。 顧客が色を倉曎したい堎合は、䞀箇所で倉曎するだけで十分です。



ミックスむンやネストされたルヌルなど、より耇雑な構造がありたす。これにより、暙準レむアりトコマンドのブロックを効果的に䜜成し、任意の数のCSSクラスに含めるこずができたす。 倪字フォントを砎棄する必芁がある堎合は、ルヌトでこの蚭定を倉曎するだけで、Less.jsは新しいルヌルを他のすべおの定矩に拡匵したす。



キヌポむントコヌドの簡玠化。

難しさもっず䟿利なデザむンが欲しい。



MATLAB



MATLABは、耇雑な方皋匏系を蚈算する必芁のある筋金入りの数孊者や科孊者向けの筋金入りの蚀語です。 今日、開発者は数孊的および統蚈的な分析をたすたす掘り䞋げおおり、MATLABはより䞀般的になっおいたす。 この蚀語は䜕十幎も磚かれおきたが、今では単なる人間にずっお有甚なものになり埗る。



キヌポむント耇雑な蚈算のための高速で安定した高品質のアルゎリズム。

難しさ数孊はただ耇雑です。



Arduino



モノのむンタヌネットが積極的に登堎しおいたす。 たすたす倚くのデバむスが、䜕をすべきかを指瀺する必芁がある統合チップを取埗しおいたす。 Arduinoはそれほど新しい蚀語ではありたせんが、文字列にたずめたCおよびC ++関数のセットであり、残りはコンパむラヌが行いたす。

倚くの機胜は、特に通垞のコンピュヌタヌのナヌザヌむンタヌフェむスの䜜成に慣れおいる人にずっおは、プログラマヌにずっお新しいものです。 電圧を読み取り、ボヌドの端子のステヌタスを確認し、LEDの点滅を制埡しお特定のメッセヌゞをデバむスナヌザヌに送信するこずもできたす。



キヌポむントテクノロゞヌの䞖界はあなたの手の䞭にありたす。

難しさほずんどの堎合、これらはCおよびC ++です。



クヌダ



倚くの人が自分のビデオカヌドの力を圓たり前だず思っおいたす。 ネットワヌクシュヌタヌより䞖界が耇雑になるたで、ビデオアクセラレヌタが蚈算する䞉角圢の数に぀いおも考えたせん。 しかし、内郚を芋るず、適切なアプロヌチを䜿甚すれば、ビデオカヌドが倧量のコンピュヌティングパワヌを提䟛できるこずがわかりたす。 NvidiaはCUDA蚀語を䜿甚しお、ゟンビの殺害や戊車からの射撃だけでなく、ビデオカヌドの䜿甚を蚱可したした。



CUDAを䜿甚するには、アルゎリズムの䞊列フラグメントを識別する方法を孊ぶ必芁がありたす。 それらを芋぀けたら、䞊列蚈算でビデオカヌドの倧きな利点を掻甚できたす。 暗号通貚マむニングなどの䞀郚のタスクは、非垞に簡単に解決されたす。 カリングや分子動力孊などのその他のものには、深い反射が必芁です。 CUDAは、科孊的な倧芏暡な倚次元シミュレヌションでよく䜿甚されたす。



キヌポむント少なくずも䞊列コヌドの堎合、非垞に高いパフォヌマンス。

難しさコヌドの簡単に䞊列化できる郚分を識別するのは必ずしも簡単ではありたせん。



スカラ



プログラミング蚀語を深く研究した人は誰でも、アカデミックな䞖界が関数型プログラミングのパラダむムを愛しおいるこずを知っおいたす。 各関数は、远加の倉数なしで、明確に定矩された入力ず出力を持たなければならないこずを瀺しおいたす。 倚くの優れた関数型蚀語があり、最も人気のある蚀語の1぀はScalaです。 Java仮想マシンで実行するために䜜成されたため、Scalaで蚘述されたすべおのものをJavaが動䜜する堎所で実行できたす。 それは、ほがどこでもです。



論理的な考慮事項がいく぀かありたす。関数プログラミングの芏則に埓うず、最適化が容易で、倚くの堎合最も厄介なバグを排陀できるコヌドを䜜成できたす。 Scalaは参加する1぀の方法です。



キヌポむント機胜的ですが、JVMを䜿甚しお他の蚀語ずうたくやり取りするのに十分な柔軟性。

難しさ倚くのタスクずアプリケヌションでは、機胜的なアプロヌチを䜿甚するのは簡単ではない堎合がありたす。



ハスケル



Scalaは、倚数のナヌザヌを抱える唯䞀の関数型蚀語ではありたせん。 この点で、 Haskellは圌女ず競合しおおり、そこからプログラミングの知識を埗るこずができたす。 Facebookなどの倧芏暡プロゞェクトですでに䜿甚されおいたす。 䞀芋アカデミックコヌドに適しおいないタスクでは、Haskellが優れたパフォヌマンスを発揮したす。



キヌポむントすでに深刻なプロゞェクトでテストされおいたす。

難しさ機胜的思考には、いく぀かの悪い習慣をあきらめるこずが必芁な堎合がありたす。



衝撃



XMLがビッグデヌタの圢匏であった堎合、倧量のXMLを操䜜するための最適なツヌルの1぀はXSLT関数型プログラミング蚀語でした。 珟圚、䞖界はJSONによっお支配されおおり、これにはJoltが適しおいたす。 単玔なフィルタヌを䜜成しお属性を抜出するこずができ、 JOLTは必芁に応じおそれらを芋぀けお倉換したす。 たた、 テンポずXSLTの䜿甚を確認するこずもできたす。



キヌポむントほずんどのJSON問題を解決するための非垞にシンプルな蚀語。

難しさ䞀郚のJSON倉換は実装がほずんど䞍可胜です。



䞀般化なし



おそらく、新しい蚀語は、より速く、よりスマヌトに、より少ないバグでコヌドを䜜成するこずを玄束するずいう事実によっおのみ結合されおいたす。 はい、それらは䞀気に新しいず呌ぶこずができたすいく぀かは䜕幎もの間、いく぀かは数十幎の間存圚しおいたした。 だから、今日ではたすたす倚くのプログラマヌがそれらをマスタヌしおいるので、圌らはただ新しく芋えたす。










All Articles