Swiftか、それともObjective-Cか アイフォーンアプリの開発言語について

初めてアップルのアプリ総合開発ソフトのXcode(エックスコード)でアプリ開発を行っています。

もうそろそろ二ヶ月が経とうとしていますが、全く先に進めない状態が続いています。

私が今まで扱った事のある、言語はマイクロソフトのVBA(ビジュアル・ベーシック・フォー・アプリケーションズ)とPHP、そしてJavaScript(ジャバスクリプト)を少しです。

ある記事をインターネットで読みました、

下記の記事です。

「なぜ多くの開発者が今なお Swift よりも Objective-C を好むのか」

URL: https://frasco.io/why-many-developers-still-prefer-objective-c-to-swift-2c624232cdd2

インターネットの記事「なぜ多くの開発者が今なお Swift よりも Objective-C を好むのか」

記事の内容は、5年前に登場したアップルがアプリ開発のために作った、プログラミング言語のSwift(スイフト)は可読性(プログラムを読んでわかりやすいかどうか)において劣ること、つまり書いたプログラムが読みにくいこと。反面Objective-Cオブジェクティブ・シー)の方がよほど読みやすいということ。

Mac OS(マック・オーエス)というアップルのパソコン用のプログラムでは、スイフトを使うことに消極的である事、つまりアップル自身が重要なプログラミング言語としてはスイフトを採用していないこと。

if(イフ)文やswitch(スイッチ)文などでは、文法がオブジェクティブ・シーに比べて使用するのが遥かに困難であることなどが挙げられていました。

そのため、開発者にとってスイフトは作っていても面白くない言語の筆頭で、数多くのプログラミング言語を扱ってきた熟練の開発者からは不評で、以前のアップルアプリの言語であるオブジェクティブ・シーに戻ってしまう開発者もいることが書かれてありました。

私もスイフトを使ってみてひと月ちょっとですが、以前やったことがあるVBAの時はやっててもっと面白かったですし、分かりやすかったです。

そして使ったプログラムのコードを読み返しても非常に分かりやすかったでした。小説か何かを読むように面白かったです。

先ほどの記事を読んで、スイフトのその作りにくさは私が初心者だからという理由ばかりではなく、熟練の開発者でもそうなんだということがわかりました。

しかしアップルはそのスイフトをこれからのアプリ開発言語のスタンダードにしようとしています。アップルですら先ほど述べたマック・オーエスなど重要な場面では使わない言語をです。

蛇足ですが、アップルの共同創設者であり、アイフォーンを考案した、かの有名なスティーブ・ジョブズは、オブジェクティブ・シーを愛したと言います。そのためか、アップルアプリの開発言語になっていました。

スイフトというまだ歴史が浅くて、使いにくい、読みにくいと言われる言語を強力に推し進めていくアップルのアプリ作成はこれからどうなっていくのでしょうか。

私も先ほどご紹介した記事を読んで、オブジェクティブ・シーでの開発も視野に入れたいと思うようになりました。オブジェクティブ・シーはC言語から派生した言語です。そのC言語は1972年にAT&Tで開発された歴史のある言語です。そこから派生したオブジェクティブ・シーもその流れを組んでいます。

これだけ長い間使われ続けた言語は、やはりまだ開発から5年というスイフトとは違います。

参照:C言語 (ウィキペディア)

URL:https://ja.m.wikipedia.org/wiki/C言語

ウィキペディア「C言語」

今年の6月には、スイフトを発展させたSwift UI(スイフト・ユーアイ)について発表されました。その発表時の動画を観ましたが会場のお客さんたち(その中には多くのアプリ開発者もいたと思います)はその新しいスイフト・ユーアイの発表に大いに沸き立っていました。

スイフトを支持する人も結構いるということです。

スティーブ・ジョブズが愛し、アップルアプリの開発言語であったオブジェクティブ・シーはこれからどうなっていくのか。

スティーブ・ジョブズ亡き後、アップルは大きく様変わりしたと思います。それは開発言語のみならず、アイフォーンやアイパッドなどの機種にも現れているように思えてなりません。

スティーブ・ジョブズが生きていた頃のアイフォーンは小さくて独特のデザインを持っていましたが、亡き後のアイフォーンは、ライバルであるGoogleのAndroid(アンドロイド)のスマートフォンの大画面化に対抗してどんどん大きくなっていきました。新製品が発売されるサイクルも短くなっていて、アイフォーン10以降、同じアイフォーン10でも性能の高いものと普通のものとがあり機種選びも難しくなりました。

アイフォーン11でも性能別に三種類もの機種が発売されています。

アイフォーン11の三種類の機種

プログラミング言語から話題がそれてしまいましたが、私が今作っているアプリをスイフトかオブジェクティブ・シーかで悩みました。

また一からやり直す時間的余裕が無いものですから、現在作成しているアプリはスイフトで作っていこうかと思います。

しかし、終わったらオブジェクティブ・シーの勉強をしたいと思います。

コメント