JavaScriptに぀いおの3぀の倧きな嘘

こんにちは、Habr Richard Kennethの蚘事「 JavaScriptに぀いおの3぀の倧きな嘘 」 の翻蚳を玹介したす。 この蚘事は2016幎5月に曞かれたしたが、私の意芋では、その関連性は消えおいたせん。 私は初心者プログラマなので、「理解」ずいう点で゚ラヌが発生する可胜性がありたす。 だから...



JavaScriptに぀いおの3぀の倧きな嘘



嘘には2皮類ありたす。他者に䌝える嘘ず、正圓化するように自分に䌝える嘘です。
JavaScriptファンが䜕床も蚀っおいる3぀の倧きな嘘がありたす。



嘘1



JavaScriptは、䞖界で最も誀解されおいるプログラミング蚀語です。

人々はそれを正しく䜿甚する方法を知らないため、垞にあらゆる皮類のトラブルに巻き蟌たれたす。 JavaScriptには理解できないものは䜕もないので、これは嘘です。



これは、少量のプログラミング機胜FPず、オブゞェクトプロトタむプず呌ばれる物議を醞す「オブゞェクト指向」機胜を備えた、通垞の呜什型/手続き型プログラミング蚀語です。 そしお、䜕がそんなに特別なのですか



基本的に、JavaScriptを䜿甚する際に発生する問題はすべお、それを䜿甚する人々のせいです圌らは無知で、怠zyであり、JavaたたはPythonでのプログラミング方法に慣れおいたす。 関数型プログラミング



それでは、 C、Clojure、Dart、Elm、Erlang、F、Julia、Haskell、Scala、Schemeなどの他のFP蚀語を䜿甚するずきに、人々が誀解しないのはなぜですか 関数型プログラミングは、IT業界ではかなりよく理解されおいるパラダむムです。 では、この点でJavaScriptが特に問題ずなるのはなぜですか



たぶん、人々はオブゞェクトのプロトタむプに぀いお知識がありたせん。 その堎合は、 「JavaScriptのオブゞェクトプロトタむプにないもの」をお読みください。 もちろん、プロトタむプは゜フトりェア開発には適しおいたせん。 それらは、特に高床なプログラミング抜象化ではありたせん。 プロトタむプはほずんど区別されたハッシュテヌブルであり、非垞に䜎いレベルであり、これが実際のオブゞェクト指向プログラミングクラスベヌスのOOPの「ビルディングブロック」ず呌ばれるものです。 人々はオブゞェクトのプロトタむプの䜿甚方法を理解しおいないかもしれたせんが、「レンガを眮く」方法を孊ぶ必芁があるのはなぜですか これは努力する䟡倀はありたせん。



はい、わかりたした。 プロトタむプは非垞に柔軟です。 圌らは、叀兞的なAKIが立぀すべおの「儀匏」を所有しおいるわけではありたせん。 この意味で、それらは䜿甚するのが楜しいです。 ただし、倧芏暡なアプリケヌションにはうたく察応できないため、人々はクラスに戻っおいたす。 プロトタむプがこのような䟿利な手法である堎合、プロトタむプはクラスベヌスの蚀語でモデル化できるため、クラスがプロトタむプベヌスの蚀語でモデル化できるのず同じように、至る所でその適応が芋られたす。 そしお、これはJavaScriptプログラマヌが理解できないものです。



嘘2



非同期プログラミングはJavaScriptの重芁な匷みです。 さお、最初にJavaScriptに非同期プログラミングが存圚する理由を理解したしょう。



グラフィカルナヌザヌむンタヌフェむスGUIを開発するためのむベントルヌプは、 Windows 、 X Window 、 OS XのCocoa 、たたはWebブラりザヌのいずれでも、 de rigueur通垞のものです。 それらはすべお、ナヌザヌ入力むベントを非同期的に凊理したす。 これは、非同期プログラミングがC ++たたはObjective-Cのパワヌでもあるずいうこずですか PythonずPerlおよびTcl では 、むベントルヌプ非同期ラむブラリを䜿甚も䜿甚されおいたす。 それから、それらはすべお非同期プログラミングの力を持っおいるず思いたすか 人々が存圚しない単語「 非同期性 」を䜿甚するずき、私は笑いたす  非同期は、時間内に調敎されないオブゞェクトたたはむベントを説明する圢容詞です 。



JavaScriptは、むベントルヌプず非同期凊理も䜿甚しお、Webブラりザヌのナヌザヌむンタヌフェむスをサポヌトしたす。 それは圌を玠晎らしい蚀語にしたすか



そしお今、この蚈算モデルにより、 Node.jsはサヌバヌ偎で非垞に人気があり、非GUI開発、぀たり 高いパフォヌマンスの䞊行性のため。 Nodeは明らかに倚くのアプリケヌションに圹立ちたすが、同時実行の䞖界をキャプチャするこずはたずありたせん。 最近のむベントは、 Node.jsの制限を瀺しおいたす。 そしお、はい、これは誰もがJavaScriptだけを䜿甚するように説埗する必芁がありたす。

むベントのサむクルは「貧しい人々の䞊行性」ず蚀われおいたす。
Nodeの支持者は、倧䌁業PayPal、Netflix、Walmart、Uberなどの同じ䟋を䜕床も芋せたいず思っおいたす。 各Node.jsの䟋では、回答で䜕を比范できたすか -䜕癟ものJavaの䟋 Javaは 、゚ンタヌプラむズ開発においお䜕床も実蚌されおいたす。 それが業界暙準である理由です。 Node.jsはただ蚌明されおいたせん。 Node.jsを䜿甚しようずしお最終的にそれを攟棄した䌁業の数は、実際にはわかりたせん。 Node.jsプロゞェクトの実際の成功率が䜕であるかはわかりたせん。 䌁業にずっお、 Node.jsを遞択するこずは䟝然ずしおリスクです。

フレヌムワヌクずパッケヌゞの゚コシステムが成長するず、Goは将来Nodeに取っお代わるず確信しおいたす。 その軌跡は吊定できたせん。
GoやErlang / Elixirなどの蚀語は、ほずんどの同時実行シナリオでNodeを簡単に䞊回るこずができたす。 むベント/非同期ルヌプモデルでさえ、長期的には持続可胜ではありたせん。 目暙が最倧のパフォヌマンスである堎合、実際の䞊列プログラミング蚀語を䜿甚するこずに関心があるはずです。 JavaScriptで劥協する理由。



嘘3



JavaScriptは、䞖界で最も人気のあるプログラミング蚀語です。



これは本圓にそうですか デフォルトで広く䜿甚されおいる蚀語ず、広く䜿甚されおいる蚀語には倧きな違いがありたす。

むンタヌネット以倖の地域では、開発者は1぀の蚀語に人質にされおいないこずに泚意しおください。 私たちは自己の責任においおこの事実を無芖したす。


JavaScriptはWebブラりザの唯䞀のネむティブ蚀語であるため、これはブラりザアプリケヌションを蚘述する最も盎接的な方法です。 しかし、ほずんどの開発者はこの蚀語を軜deしおおり、もし圌らが本圓により良い遞択を持っおいれば、圌らはそれを䜜るでしょう。 むンタヌネットフォヌラム、゜ヌシャルネットワヌク、りェブサむトなどでJavaScriptに関する人々の意芋を怜玢する堎合、これを自分で確認できたす 。 JavaScriptに぀いおのWATおよびWTFの長いリストは数倚くありたすが、 PHP以倖の蚀語では芋぀けるこずができたせん。 確かにわかっおいるこずは、りェブはJavaScriptではなく非垞に人気があるずいうこずです 。



ほずんどの䞻芁な蚀語ランキングむンデックスは、 JavaScriptが最も䞀般的なプログラミング蚀語であるこずを瀺しおいたせん。 2番目、3番目、たたは4番目の䜍眮でさえありたせん。 IEEE Spectrum American Journalによるず、これは8䜍、 PYPL5 、 TIOBE7 、 CodeEval6です。 Redmonk 分析䌚瀟はGithub統蚈を䜿甚したす。これは、 JavaScriptで非垞に高い数倀を瀺しおいたす。これは、すべおの蚀語で曞かれたWebアプリケヌションがブラりザヌで動䜜するために少なくずもJavaScriptを必芁ずするためです。 オプションはありたせん。 そのため、 Redmonkは JavaScriptの異垞に぀いお客芳的な評䟡をするこずはできたせん。 それ以倖の堎合、最も䞀般的な蚀語はJavaです。



たずえば、StackOverflowからのナヌザヌポヌリングにも、遞択に同様のバむアスが含たれおいたす。 JavaScriptを単独で䜿甚せざるを埗ない堎合、 JavaScriptは人気のある蚀語だず蚀えるのでしょうか。 幞いなこずに、私たちは翻蚳者を利甚できたす。

他の領域ネットワヌクサヌバヌ、ゲヌムずグラフィックス、モバむル、デスクトップなどに぀いおは芚えおおく必芁がありたす。 プログラミング蚀語の遞択にはさたざたな皮類がありたす。 Webアプリケヌションは非垞にナニヌクです。 少なくずもWebAssemblyのリリヌスが最終的に行われるたで。







本圓



JavaScriptが゜フトりェア開発に適したプログラミング蚀語ではありたせん 。 JavaScriptは、Webブラりザヌ甚の軜量で新鮮なスクリプト蚀語になるように蚭蚈されたした。 そのため、柔軟で非垞に寛容で、タむピングが匱いように䜜られたした。 正しい敎数型や正しい配列型さえありたせん。 これは䜕語ですか



匱いタむピングは、゜フトりェアの開発に䜿甚されるプログラミング蚀語のアキレス腱です。 これにより、Webブラりザヌ甚の簡単なスクリプトをすばやく簡単に䜜成できたすが、セキュリティず信頌性を必芁ずする倧芏暡なアプリケヌションを䜜成する堎合にも圹立ちたす。 これが、ほずんどの䞻芁蚀語が通垞匷く型付けされおいる理由です静的に型付けされた蚀語ず混同しないでください。 そしおそれは非垞に重芁です



匱い類型化ずその結果のarbitrary意的な匷制は、蚀語孊の芏埋が完党に欠劂しおいるこずを瀺しおいたす。 これは、 WATずWTFのリストのほずんどを説明しおいたす。





JavaScriptによっお生成されたす。 さらに、著者はJavaScriptのいがのリストを提䟛するオンラむンリ゜ヌスぞのリンクを提䟛しおいたす。



All Articles