2019年のJavaScriptとDartの比較

2019/05/24 09:00

さて、あなたが何を既に心得ているかはわかっています。伝説のJavaScript言語を使って、Webアプリケーション、サーバーサイドアプリケーション、デスクトップ、およびモバイルアプリケーションでさえ、作ることができたんだと思ってましたよね?その点、間違っているかもしれませんよ。2019年を早送りしてみましょう。私達には、より簡単かつ効率的に、上記のものの大部分を行える(それほど新しくない)言語があるのです。ハロー、ダート! さて、両者の競争は直接対決となっているようです。 2019年に、これら2つのプログラミング言語が互いにどのように比較されるかを見てみましょう。

2019年におけるJavaScriptの必要性は何か?

この質問を誰かに聞くと、たいてい「当然必要でしょう?我々は皆、毎年JSが必要ですよ!」という答えを得るでしょう。全くその通りです。今年を見ていく前に、以前を振り返ってみましょう。 2018年に、Stackoverflowの開発者コミュニティが毎年恒例の開発者調査を実施しました。

ここでは、JavaScriptがプロの開発者と通常の開発者との間で最も人気のあるテクノロジーであったことが明確にわかります。このデータだけを見ると、JavaScriptは今年さらに盛り上がっていくものと確かに言えるでしょう。つまり、69.8%という数字は一の言語にとっては非常に素晴らしい数字です。また、人気のWebサイトPaysaを見れば、明確にこう言われています:

「Javascriptを体得しているサラリーマンの平均給与は、128,132ドルです。」

キャリアに関する開発者のスキルレベルによれば、これもかなり注目すべき数字ですね。疑いようもなく、JavaScriptは至るところで完勝しています!JS州の統計を見てください。…オーケー、昨年のことはもう十分ですね。私たちが今日いるところに戻ってみましょう。ハロー、2019👋!

あなたがこの刺激的なプログラミングの世界に慣れていないのであれば、初めてのプログラムをJavaScriptで学び、作成し始めることができますよと、私が言うのは簡単です。待ってください。あなたはまた、「いえいえ、今はプログラマーにとってJavaScriptよりもPythonを始めることが好ましいですよ」とも聞いたことがあるかもしれません。それは全く間違っていません。あなたはこの2つの言語どちらかを選択できますが、今私達はJavaScriptとDartとの2つの言語についてのみ、話題にしているのです! あなたはこの言語をざっと読んで、多様な機会に対しオープンになることができます。これらの「機会」のいくつかとは、以下のとおりです:

Web開発:

もうわかっていましたね。JavaScriptは、Web開発の世界で非常に人気があり、需要があるため、Webのコーディングに使用される他のすべての言語の出現以前から競争に出ています。Vanilla JSを使用して簡単なダイスゲームを作成するか、VueやAngularなどの有名なフレームワークを使用してショッピングカートのWebアプリケーションを作成することがフロントエンドの開発になります。そう、Reactライブラリも忘れずに!

JavaScriptはあなたがそれに置く全てを実行できるのです。もちろん、これは、新しいライブラリとフレームワークとを開発することを可能にした貢献者のオープンソースランドの登場により可能となりました。風変わりなイラスト、なめらかなアニメーション、素晴らしいWebページのデザインが見られるフロントエンド部門においてだけでなく、JavaScriptはサーバーサイドで動作する論理的なもの、つまりバックエンド開発についても同様に強力です。

Node JS、Express JS、Common JSを見ると、それらはすべて、APIリクエストだの何だのを取得するサーバーサイドコードを書くためにJavaScriptを必要とします。 - もうわかっていましたね。JavaScriptは、Web開発の世界で非常に人気があり、需要があるため、Webのコーディングに使用される他のすべての言語の出現以前から競争に出ています。Vanilla JSを使用して簡単なダイスゲームを作成するか、VueAngularなどの有名なフレームワークを使用してショッピングカートのWebアプリケーションを作成することがフロントエンドの開発になります。そう、Reactライブラリも忘れずに!

JavaScriptはあなたがそれに置く全てを実行できるのです。もちろん、これは、新しいライブラリとフレームワークとを開発することを可能にした貢献者のオープンソースランドの登場により可能となりました。風変わりなイラスト、なめらかなアニメーション、素晴らしいWebページのデザインが見られるフロントエンド部門においてだけでなく、JavaScriptはサーバーサイドで動作する論理的なもの、つまりバックエンド開発についても同様に強力です。 Node JSExpress JSCommon JSを見ると、それらはすべて、APIリクエストだの何だのを取得するサーバーサイドコードを書くためにJavaScriptを必要とします。

モバイル開発:

JavaScriptは、私たちのスマートフォン用のアプリケーションを書くことを、容易にしました。 他の言語を書いたり学んだりすることを心配せずに、高品質のネイティブアプリケーションを構築することができるのです。 必要なのは、JavaScriptの基本概念といくつかのフレームワーク固有のツールを学ぶことだけです。 React Nativeについて聞いたことがあるかもしれません。 これは、すべてFacebookの開発者たちのおかげで、最も人気のあるモバイルアプリを作るJavaScriptフレームワークとなっています。

これとは別に、JavaScriptはMeteor JSNativeScriptPhoneGapのような他のモバイルベースのフレームワークで頻繁に使用されています。 最良の点は、それらのほとんどがクロスプラットフォームであるので、一度コードを書くと、それがAndroidやiOSで動作するようにしてくれるところです。: - JavaScriptは、私たちのスマートフォン用のアプリケーションを書くことを、容易にしました。 他の言語を書いたり学んだりすることを心配せずに、高品質のネイティブアプリケーションを構築することができるのです。 必要なのは、JavaScriptの基本概念といくつかのフレームワーク固有のツールを学ぶことだけです。

React Nativeについて聞いたことがあるかもしれません。 これは、すべてFacebookの開発者たちのおかげで、最も人気のあるモバイルアプリを作るJavaScriptフレームワークとなっています。 これとは別に、JavaScriptはMeteor JS、NativeScript、PhoneGapのような他のモバイルベースのフレームワークで頻繁に使用されています。 最良の点は、それらのほとんどがクロスプラットフォームであるので、一度コードを書くと、それがAndroidやiOSで動作するようにしてくれるところです。

デスクトップアプリケーション開発

はい、デスクトップもです! そのためのElectron JSがあります。 開発するすべてのもののために、「何々JS」があるようです。HTMLとCSSを書いてデスクトップアプリケーションのコンポーネントを構造化してスタイルを設定し、そして、JavaScriptを知っているだけで機能を適用し、それがWindowsとMacOSの両方のアプリケーションとして動作され得るファイルにコンパイルするというのは、何てかっこいいことなのでしょう。

ゲーム開発:

JavaScriptもここで止まりません! この言語を知っていれば、PhaserのようなフレームワークやPixi JSのようなエンジンを利用して、フル機能のゲームを作ることができます。 UnityUnreal Engineが世界中で専門的に使用されているのは間違いありませんが、それをすべて1つの言語でできる場合に、どうして新しい言語またはツールを習得することがあるのでしょうか! また、あなたはJSが大好きなんですよね😉?それはあなたとあなたのチームにとってかなりの時間の節約となります。

さて、JavaScriptが、単にゲーム、デスクトップ、モバイル、Webアプリケーションの開発に関するものだと思っているとしたら、あなたはその点で間違っているかもしれません。この言語は、IoTから機械学習、そしてさかのぼってはロボット工学に至るまでずっと登場しています。 TensorFlow JSを使用してブラウザでマシンモデルをトレーニングし、Cyclon JSフレームワークを使用してPhilips Hueの照明色を変更することができるのです。 素敵ですね。

今年もJavaScriptが優勢な年になるだろうと、ほとんどの方が予想していたはずです。 もしそうなら、Dartがあなたを面白がらせますよ👻。

2019年におけるDartの必要性は何か?

上記の説明から明らかなように、Webサイトのクライアントサイドまたはサーバーサイドの開発に関連するものについては、JavaScriptがそこに王のように存在しているのは明らかです。この「王」にはマイナス面がいくつかあるため、どこからかともなくやって来たが、開発のクライアントサイドとサーバーサイドとの支配に確固たる嗜好性の有る新しい「王」に交代される可能性があると考えられるかもしれません。私が上記で述べたことは単なる考え事ではなく、すでに起こっていることなのです!

ですから、もしあなたがJavaScriptの堅実な代替物を必要とするならば、あなたは両手を広げてDartプログラミング言語を歓迎する必要があります👐。これは市場で最も新しい言語ではありません。2011年に最初に登場し、Googleが2017年にその安定版を発表しました。当時はDartは普及していなかったかもしれませんが、今これについていくらか調べれば、JavaScriptで行うこととほぼ同じことが簡単にできることがわかるでしょう!今年の初めに、JAXenterは「2019年のあなたのリストには、どのプログラミング言語が入っていますか?」というアンケートを作成しました。そしてその結果、Dartが最も高い割合で得票していたことがわかりました。(クイックノート:第二位は、JavaScriptではなくPythonでした。) Dartを、今年学ぶべき本当にクールでプログラマーフレンドリーな言語にしている、Dartの多くの機能があります。ここにそれらのうちのいくつかを挙げます:

  • 完全なオブジェクト指向: - JavaScriptのように、これもオブジェクトに依存しています。あなたが私のようにそれらOOPの概念が大好きなら、あなたはDartも大好きでしょう!そしておまけとして、インターフェース、ミックスイン、抽象クラス、具象ジェネリック、そして静的型付けのサポートが得られます。
  • 学ぶのが簡単: - その概念を理解するのに何年もかかる新しいプログラミング言語を学ぶことにより、頭痛の種を持ちたいと思うコーダーはいません。ダートは非常に短い学習曲線を有しています。構文は理解しやすく、C言語とJavaScriptとの中間を思い出させるでしょう。あなたは単にその概念のいくつかを徹底的に学ぶ必要があります。そして、バーン!あなたは最初のプロジェクトを作ったのがいつのことだったかもう覚えていません!
  • スーパーポータブル: - この言語を実行する特定のハードウェア構成やアーキテクチャを探す必要はありません。どのオペレーティングシステムでも実行できます。純粋なDartで書かれたアプリケーションは、主要なモバイルオペレーティングシステムのほとんどで実行でき、Webアプリケーションはどのブラウザでも実行できます。
  • 高い生産性: - 誰もが短期間でもっと多くの仕事をこなす必要があります。この点はダートが優れているところです。その構文から舞台裏の作業まで、すべてが開発者の生産性を向上させるように開発されているので、複雑なタスクでも簡単に解決できます。その言語がそれ自身ではできないことを見つけたとしても、その公式プラットフォーム上にたくさんのライブラリやパッケージがあります。
  • 1つの言語、多くのプラットフォーム: - もちろん、一度書くと、異なるプラットフォームでも簡単に実行されます。モバイルアプリ、Webアプリ、デスクトップアプリ、サーバーサイド/クライアントサイドの作業、スクリプト作成の作業など、思いつくもの何でも、Dartがぜんぶ処理します⚡!

そして、Dartコードを書くとき、それは常にAhead of Time(AOT)Just in Time(JIT)の両方でコードをコンパイルします。これは、あなたがコードを書いていて、Dartがバックグラウンドでそれを同時にコンパイルして実行しているということを単に意味します。そしてあなたはリアルタイムの結果を得ます。もうコンパイルを待つ必要はありません!

数字が大事!

これらの言語を統計と一緒に比較してみましょう。

WebサイトStackshareによると、JavaScriptには31.1Kのファン、15Kの求人があり、7.24Kの投票があります。対照的に、これについてはダートの数字はひどく低いです。見てください、283人のファン、91の求人、125の投票。はぁ。さて、明らかに、これらの数字はそれほど重要ではありませんが、今現在における両言語の使用法について、大まかなアイデアを与えてくれます。

なぜ開発者はJavaScriptまたはDartを選ぶのか?

「なぜプロジェクトにJavaScriptを使用するのですか」と聞かれると、開発者は通常このように答える傾向があります:

  • 「フロントエンドとバックエンドの両方で使用できるからです」
  • 「いたるところで使われているからです!」
  • 「多くの素晴らしい、人気のあるフレームワークが付いているからです」
  • 「高速、軽量、そしてフレキシブルだからです」
  • 「今日JavaScriptを使用していないデバイスは実行できませんよ!」

Dartに関しては、このように答えられます:

  • 「Googleの支持を得てるので、より信頼に値するからです」
  • 「JavaScriptの2倍の速度で動作するからです」
  • 「プロジェクト全体で非常にスケーラブルだからです」
  • 「Javaのようなものだからです」
  • 「FlutterモバイルUIフレームワークに広く使用されているからです」

でも、JavaScriptやDartを使うべきでない理由は何でしょうか?

まあ、両方とも欠点があります。それらが何であるか見てみましょう。 JavaScriptを使うべきでない理由は、以下です:

  • クライアント側のセキュリティが良くない:悪意のあるWebサイトがブラウザに読み込まれた場合はどうなりますか?そのコードは実行され、何らかの形であなたのデバイスに害を及ぼす可能性があります。ソリューション? JavaScriptを無効にすることです:(
  • エラーが1つ発生すると、Webサイト全体の読み込みが停止する可能性があります。
  • マルチスレッドサポートはありません。

Dartプログラミング言語に関しては、いくつかのポイントがあります:

  • JavaScriptと比較した場合の、ライブラリとパッケージの非常に小さなエコシステム。
  • 単一のオブジェクトパラダイム、すなわちクラスを有する。他に何もない。
  • 「別の代入文を書かずに関数名を変更することはできません」。これはChris Khoo氏の要旨でうまく説明されています。

どのツールが両言語と統合できるか🛠?

JavaScriptの場合、これは非常に単純で、あなたはこれらの多くを定期的に使用しているかもしれません。ここにいくつかのビッグネームがあります:

  • Auth0:アプリやAPI用のトークンベースのサインアップツール。
  • Yarn:パッケージマネージャで、NPMの良い代替物です。
  • Gatsby JS:React JSを使ってWebサイトやアプリをより高速に構築するためのオープンソースフレームワーク。
  • Parcel:高速のWebアプリケーションバンドラー
  • ESLint:人気のJavaScriptリンター。
  • Azure Cosmos DB:マイクロソフトのグローバルに分散されたデータベースサービス。
  • Algolia:検索結果を構築するためのAPI
  • Lodash:一般的なプログラミング作業のための効用関数を提供するライブラリ。
  • CircleCI:人気の高い継続的インテグレーションおよび配信プラットフォーム。
  • Jetpack:よりスムーズな開発者エクスペリエンスを実現するためにwebpackをラップしています。

Dartはこの競争に気合いをいれる必要があるようですね。見てみましょう。

  • Flutter:GoogleによるクロスプラットフォームのモバイルUIフレームワーク。
  • Aqueduct:マルチスレッドのサーバーサイドフレームワーク。
  • Dart Webdev:GoogleのサービスインテグレーションによりWebアプリケーションを構築するためのフレームワーク。
  • AngularDart:人気のあるDart Webdevのもう1つの代替物。

FlutterとAngular Dartについてのみご存知かもしれませんが、時間が経つにつれてますます多くのDartフレームワークとライブラリが登場するのを見るのはうれしいことです。

誰が現在これらの言語を使っているのか?

ツールに関する上記の説明から推測できるように、多くの企業がDartよりもJavaScriptを使用していることは明らかです。それでも、あなたはこれらの会社が誰であるかを見てみたいかもしれませんね。

JavaScriptを使用している会社:

  • インスタグラム
  • 9GAG
  • Square
  • Airbnb
  • Reddit

Dartを使用している会社:

  • Google
  • Blossom
  • Adobe
  • Health Dynamics
  • Soundtrap

次はどこへ🤔?

あなたが2つの言語のいずれにも慣れておらず、JavaScriptまたはDartを使用して美しいプログラミングの世界をさらに深く掘り下げたいという場合は、以下の推奨リソースがあります。

JavaScript

Java​Script

JavaScript Tutorial: Learn JavaScript For Free | Codecademy

Learn Modern Javascript (Build & Test Real Apps Now)

Dart

Dart Tutorials

Getting started with Dart

Top Tutorials To Learn Dart To Build Applications

他の代替物は?

あなたがこれらの言語のうちの1つを習得しようとしたけれどもついていけなかったと仮定しましょう。あなたはJavaScriptに似た言語の助けを借りてあなた自身の個人的なウェブサイトを開発したいと思っています。または、サーバーサイドコードをいくつか書きたいけど、Dartではコードを書きたくないとします。その場合は、以下の代替物を検討できます:

JavaScriptの代替物:

  • CoffeeScript
  • TypeScript
  • ClojureScript
  • Elm
  • Dart!

Dartの代替物:

  • Kotlin
  • TypeScript
  • Swift
  • C#
  • JavaScript!

注:上記のコンテンツはすべてWebから取ってきています。私は調査をしていません:) 単に結果を見せたのみです!このトピックはかなり議論の余地がありますね😉

この記事は、著者の許可を得て翻訳しています。なお、原文はこちらです。

新着ピック  






















新着ニュース

スクエニ、Nintendo Switch「ドラゴンクエストXI S」の体験版配信--引き継ぎ可能

スクエニ、Nintendo Switch「ドラゴンクエストXI S」の体験版配信--引き継ぎ可能

LINE「OpenChat」、トークルーム検索機能の再開を延期 「検索精度を上げるため」

バーチャルタレントがスナックのママに--“場所を選ばない接客”の働き方

リザーブドインスタンス(RI)を間違わずに購入したい! それなら AWS CLI を活用してみよう。 -オペ部だより- | DevelopersIO

ローソン、「深夜に店員ゼロ」を実験へ QRコードで入店、セルフレジで決済 遠隔監視で万引き防止

銘菓「ニコンようかん」、ネット販売終了 「裏の主力製品がなくなる」と惜しむ声

WindowsでAWS CDK(C#)の開発環境を整えてみた | DevelopersIO

TC Tokyo超早割チケットは8月末まで!トヨタの自動運転開発子会社TRI-ADのCEOが登壇決定 | TechCrunch Japan

たこ焼きロボからマイクロモビリティまで竹芝埠頭にロボ集結 | TechCrunch Japan

家事代行のベアーズ、マンションにスタッフ常駐の新サービス「MAUCHI」開始

対象店舗でビットコイン決済するとTポイントを付与--bitFlyerとTポイントが業務提携

野村不動産アーバンネット、不動産売買支援システム「Kimar」を導入

Application Load BalancerのリスナールールによるIP制限 | DevelopersIO

Application Load Balancerのリ...

DevelopersIO / 4時間前


最短2日で物件売却のすむたすが直販を開始--「すむたす直販」が担う中古流通比率の引き上げ

ローソン、深夜時間帯を“無人化”する実証実験--横浜で半年ほど実施

Amazon VPC設計時に気をつけたい基本の5のこと | DevelopersIO

ソニー、学校向けプログラミング学習キット「KOOVベーシックキット」を9月に発売

「Zaif」元運営のテックビューロ、仮想通貨交換業を廃業へ

なぜβ版でスタート? 独自プランは? IIJに聞く「eSIM」戦略

もっと見る
ログイン
会員登録
Register
記事をPICKする

会員登録すると、もっと便利に利用できます。