【漫画でIT入門】とあるIT企業の社員活動日誌 第26話「プログラミング学習のすゝめ⑫ Swiftとは?特徴と出来る事」
パソコンを使う人のありそうでなさそうなお話や、ガジェットのお話を漫画で紹介させていただくコーナーです。
とあるIT企業に務める彼女たちは日々楽しく真面目に業務に励んでいます。その中で、起こったハプニングや困った事などを活動日誌を通して覗き見していきましょう。
※当ブログは、アフィリエイトプログラムに参加して商品を紹介しております。当ページのリンクを介して商品を購入すると著者に収益が発生することがあります。
【漫画で入門】「とあるIT企業の社員活動日誌」各話一覧はこちら
目次
プログラミング言語「Swift」とは?
Swiftは2014年に発表された言語であり、Apple社が設計・開発したプログラミング言語であり、AppleのiOSおよびmacOSを中心にLinux、Windowsで利用出来るプログラミング言語です。
Apple製OS上で動作するアプリケーションの開発に従来から用いられていたObjective-CやObjective-C++、C言語と共存できるように、共通のObjective-Cランタイムライブラリが使用されています。
Swiftは様々なObjective-Cの特長を受け継いでいる一方で、Objective-Cより「安全」にバグを捕捉できることも意図しています。
また、タイプや構造体、クラスに適用可能なプロトコルによるシステムの拡張性の概念は「プロトコル指向プログラミング」と呼ばれる事もあります 。
Swiftは、マルチパラダイム(関数型やオブジェクト指向型などプログラミング言語における規範を複数選択することが可能であるという事)のコンパイラプログラミング言語であるが、XcodeのPlaygroundsの上やターミナルでインタラクティブにデバッグする事が可能である。
LLVMコンパイラが使われており、ライブコーディングに対応していることも特徴です。
Objective-Cとの比較
Swiftが開発される以前のiOSやmacOSでは Objective-Cによって開発が行われていました。
Objective-Cとswiftの間には20年以上の歴史の差が存在しており、この20年のうちにIT環境は大幅に変化していきました。その変化に対応すべく開発されたのがswiftになります。
swiftとObjective-Cの大きな違いは「コードの記述量」「実行速度」「可読性」が挙げられます。
これらの違いの中でも最もAppleが力を入れたのが「コードの記述量」です。
swiftの開発コンセプトは「書きやすく」「読みやすい」プログラミング言語をつくる事でした。今までのObjective-Cでは無駄に長いコードの記述を要求され「書きにくく」「読みにくい」ものでした。それらを改善するために開発されたswiftではシンプルで無駄のないスマートな記述が可能になりました。
シンプルで無駄のないスマートの記述が出来るようになった為、「可読性」=メンテナンス性の向上に繋がりました。また、コードの記述量が少なくなった為、「実行速度」も大幅に改善されました。
プログラミング言語「Swift」の特徴とは?
Appleは2014年のswift発表時に特徴として「モダン」「安全」「高速」「インタラクティブ」を挙げました。では、この4つの中から「モダン」「安全」「インタラクティブ」という特徴を解説していきます。(「高速」という特徴は「モダン」という特徴から導くことが出来るため省略します。)
Swiftの特徴①「モダン」
「モダン」という言葉をそのまま翻訳すると「現代的な」という意味になります。
しかし、プログラミング言語にとっての「モダン」は意味が異なります。プログラミング言語界隈での「モダン」という言葉が持つ意味は簡単にいうと「コードが読みやすくて書きやすい」という事を指します。
近年人気の高いプログラミング言語であるPythonやRubyといった言語が持つ特徴としてコードが書きやすく読みやすいという事が挙げられています。swiftもそのような特徴を有している為現在人気が出てきている言語といえ将来性の高い言語として注目されています。
Swiftの特徴②「安全性」
swiftは比較的安全性の高いプログラミング言語とされています。
技術的な内容をするのであれば、静的な型チェック(コンパイル時に値やオブジェクトの安全性を検証する)、変数の初期化の強制、数値型のオーバーフロー(コンピュータにおいて演算結果がレジスタの表せる範囲や記憶装置上の格納域に記録できる範囲であるか)の検査、自動参照カウント(アプリのメモリ使用状況を追跡及び管理する)などが存在しています。
これらの機能を有する事によって既存のプログラミング言語では記述ミスなどによるバグや脆弱性が発生しやすかった部分を解決することが容易になりました。(絶対になくなるわけではない)
Swiftの特徴②「インタラクティブ」
「インタラクティブ」とは「対話型である」や「相互作用がある」などのような意味合いになります。
分かりやすい言葉で表すと「リアルタイム性」ともいえるでしょう。swiftはコンパイラ言語でありながら、インプリンタとしてスクリプトを実行することが可能であり、対話実行環境も用意されています。
この特徴を最大限に発揮出来る環境が「Playgrounds」と呼ばれるXcodeのバージョン6以降から実装されている機能になります。
「Playgrounds」を利用することで、自分が意図した結果が実行されるかどうかをリアルタイムで確認することが出来るため、面倒な手間と時間を軽減することが出来ます。
また、iPad用の「Playgrounds」は開発環境でありながら教育用ツールとしての側面も持ち合わせています。
Appleは中学生以上を対象とした教育カリキュラムを公開しています。その内容はパズルを解きながらコードの基本をマスターし、Appleがデザインしたインタラクティブなガイドを読みながらアプリを構成する要素について学んでいく物になります。
このような特徴によって新規の言語学習の入り口を広げています。
プログラミング言語「Swift」で出来る事とは?
swiftは基本的にApple社の製品上で動作するアプリの開発を行う為のプログラミング言語です。
その為、iPhone、macbook、Applewatchで使用するアプリを開発することが可能です。
また、swiftのバージョン5からswiftを用いてwebアプリケーションやwebサーバーの開発を行う事が出来るようになりました。これによりswiftの可能性は格段に上がったといえるでしょう。
まとめ
プログラミング言語「Swift」はApple社が設計・開発をしたプログラミング言語である為、Apple製品との相性は抜群です。
その為Apple製品向きのアプリを開発する際には必ず使用する言語となっています。また、近年ではサーバー開発なども可能になっており活躍の幅を広げています。
教育という観点からも優秀であり、初等・中等で使用できる教育ツールもあるため初学者の方の導入にも非常に有効です。
初めてのプログラミング学習として「Swift」を選択するのは良いでしょう。
さらに学べるおすすめ書籍
・まるごと分かるSwiftプログラミング: 「コーディングの基礎」から「アプリ開発の学習法」まで徹底解説 (I/O BOOKS)
・[増補改訂第3版]Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 WEB+DB PRESS plus
・世界一シンプルなはじめてのSwiftUI 決定版: かんたんにiOSアプリを作って遊んでみる SwiftUI入門