DartとSwiftを比較

    「Dart」と「Swift」の概要

    「Dart」と「Swift」は、どちらも優れたプログラミング言語で、モダンモバイルアプリケーション開発などに適しています。

    ■「Dart」とは

    Dartは、Googleが開発したWebアプリケーション開発向けプログラミング言語です。

    クラスベースのオブジェクト指向言語で、大規模アプリケーション/サービス開発に対応できます。

    Dartは開発者に歓迎される高度な各種機能が揃っており、「JavaScript言語では解決できない言語上の問題点を解決」「優れたパフォーマンス」「大規模なプロジェクト用途にも耐えうる」「セキュア」などの観点で設計されました。

    ■「Swift」とは

    Swiftは「OS X」「iOS」用ネイティブアプリケーション開発に向いているプログラミング言語です。

    「モダン」「安全性」「高速性」「インタラクティブ」「最新のソフトウェア設計アプローチ」などの特徴を持ちます。

    「簡単にプログラミングできること」を目標として設計されており、信頼性の高いコーディングを行えます。

    エラー処理機能比較

    DartとSwiftはどちらも「try/catch」をエラー処理手法として使用します。

    ■Dart

    Dartでは、あらゆるメソッドがあらゆるタイプの例外をスローできます。

    ■Swift

    Swiftではメソッドが例外をスローできるタイミングを明示的に宣言する必要があります。

    これはthrowsキーワードを使用して行われ、エラーはErrorプロトコルに準拠する必要があります。

    Swiftのエラー処理の明示的な性質は、メソッドがスローできるかどうかを簡単に知ることができるため、安全で堅牢を目指すAPI設計において非常に有益であるとされています。

    メモリ管理機能比較

    ■Dart

    Dartは高度なガベージコレクションスキームでメモリを管理します。

    ■Swift

    Swiftは「自動参照カウント(ARC:Automatic Reference Counting)」を介してメモリを管理します。

    初学者向け言語比較

    Slantコミュニティの「最初に学ぶのに最適なプログラミング言語は何ですか?」という調査において、「Dartは28位」「Swiftは33位」にランクされています。

     

    参考元サイト
    Medium →Dart vs Swift: a comparison
    Slant →Dart vs Swift detailed comparison as of 2019

    ※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

    基本情報

    概要

    Dart(ダート)とは、Googleが開発したWebアプリケーション開発向けプログラミング言語です。クラスベースのオブジェクト指向言語で、大規模アプリケーション/サービス開発に対応できます。

    基本説明

    Dartは開発者に歓迎される高度な各種機能が揃っています。

    Googleは「シンプルで意外性のないオブジェクト指向プログラミング言語」だとしています。

    経緯

    当初は「Dash」と呼ばれていました。

    2011年に発表されました。

    TOPに戻る

    主な特徴

    JavaScriptの代替を狙う

    Webアプリケーションの大規模化により、標準でクラス/モジュール機能を持たないJavaScriptでは限界が見え始めました。そこで、DartはJavaScriptの代替となることを目的に開発されました。

    Dartは、「JavaScript言語では解決できない言語上の問題点を解決」「優れたパフォーマンス」「大規模なプロジェクト用途にも耐えうる」「セキュア」などの観点で設計されました。

    「構文スコープ」「クロージャ」「オプショナル静的型」など、Javaにはない機能も搭載しています。

    しかし、2015年3月、Chromeでのサポートを断念し、DartをJavaScriptへコンパイルして使用する道へ進んでいます。

    JavaScriptトランスパイラ

    DartプログラムをJavaScriptへ変換できます。

    このことにより、最新の主要Webブラウザで動作できます。

    クライアント/サーバの両方に対応

    サーバサイド/クライアントサイドの両方をDartでコーディングできます。

    シンプルで馴染みやすい文法

    文法は、Javaプログラマにはなじみのあるものが多いため、学習が容易です。

    「構造化」「柔軟性が高い」などの特徴があります。

    クラスベースのオブジェクト指向言語

    Dartはクラスベースのオブジェクト指向をサポートしているため、中規模/大規模開発に対応できます。

    「すべてをオブジェクトとして扱う」「クラスベース」「単一継承」「暗黙的インターフェイス」などの特徴を持ちます。

    関数を引数へ渡したり、変数へ代入できます。

    静的型付け

    変数の型について、「JavaScriptのような動的型付け」と「C++/Javaのような静的型付け」を、変数ごとに任意に選択できます。動的型付けは「var」で宣言を行い、静的型付けは型名を指定します。

    静的型付けにより、型安全性を保つことができ、「コンパイル時エラー検出」「IDEインテリセンス」などの恩恵があります。

    「プロトタイプ開発時は開発スピード優先の動的型付け」、「プロダクト開発時は安全性優先の静的片付け」のような使い分けが可能です。

    モジュール管理

    Dartでは、各モジュールを「ライブラリ」という単位で管理できます。ソースコードファイル/ライブラリの関係を記述する構文も用意されています。

    スレッド

    単一スレッドで、並行処理はアイソレートで実行可能です。

    実行環境

    Dartプログラム実行用仮想マシン「DartVM」環境で、直接実行できます。

    他の環境の場合は、DartプログラムをJavaScriptへコンパイルしてJavaScriptエンジンを搭載するWebブラウザで実行します。

    TOPに戻る

    同様製品

    同様な機能を提供する製品として、次のようなものがあります。

    オープンソース製品:「TypeScript」など。

    TOPに戻る

    導入事例

    Google内では「Google Ads」「Google Fiber」「Google Express」「Googleの社内セールス」などの各チームで採用されています。

    TOPに戻る

    ライセンス情報

    Dartのライセンスは「BSDライセンス」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。

    TOPに戻る

    ダウンロード

    ダウンロードページ

    TOPに戻る

    ※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。


    「Swift」基本情報

    ■概要

    Swift(スウィフト)とは、「OS X」「iOS」用ネイティブアプリケーションを開発するためのプログラミング言語です。

    ■基本説明

    Swiftは「モダン」「安全性」「高速性」「インタラクティブ」「最新のソフトウェア設計アプローチ」などの特徴を持つ汎用プログラミング言語です。

    Appleが提供しており、「iOS(iPhone/iPad)」「Mac」「Apple TV」「Apple Watch」「Linux」向けネイティブアプリケーションを開発できます。

    「簡単にプログラミングできること」を目標として設計されており、信頼性の高いコーディングを行えます。

    ■経緯

    Swiftは、2010年に開発が始められ、Apple社内での4年間の開発期間を経て、「Worldwide Developers Conference 2014」で発表されました。

    Swiftは、従来のコーディング難易度が高い開発言語「Objective-C」と比較して柔軟性が

    高いため、Mac/iPhone用アプリの開発参入への敷居が大きく下がったとされています。

    人気プログラミング言語ランキングで急上昇するなど、大変大きな注目を集めています。

    ■オフィシャルサイト情報

    オフィシャルサイト

    →Swift(Swift.org - Welcome to Swift.org)

    ライセンス情報

    Swiftのライセンスは「Apache License 2.0」です。

    詳細について、こちらを参照ください。
    →Swift →LICENSE

    動作環境

    「OS X」と「Linux」用バイナリが提供されています。

    ダウンロード

    →Swift →Download Swift

    ■同様製品

    同様な機能を提供する製品として、次のようなものがあります。

    オープンソース製品:「Ruby」「PHP」など。