プログラミング言語の歴史:Objective-CからSwiftまで





すでに商用開発が行われているプログラミング言語を放棄し、新しい言語を学び始めるには、プログラマーには正当な理由が必要です。 しかし、IT業界の歴史は、時間が選択された多くのケースを知っており、移行はそれ自体のように行われました。



多くの開発者がObjective-Cに切り替えた理由は何ですか? 今、あなたがそれを放棄してSwiftを選択する理由は何ですか?



Objective-Cは、オブジェクト指向プログラミングアプローチのために新しい機能が追加されたC言語の拡張機能です。 この言語はSmalltalkオブジェクトモデルを使用します。 Cプログラミング言語と完全に互換性があります。 Appleは長年、Objective-Cを製品開発の主要なプログラミング言語として使用してきました。



Objective-Cの作成者はBrad CoxとTom Loveです。 彼らは、1980年代初頭にまだ通信会社ITT Corporationの従業員であったときに作業を開始しました。 同じ頃、Cox and LoveはSmalltalkプログラミング言語に精通しました。 その後、Coxはプログラムコードの再利用の問題に悩まされました。

プロジェクトのコード量の増加とそれをサポートする難しさにより、1960年代に新しいオブジェクト指向プログラミングパラダイムが形成され始め、プログラムはさらに小さなコンポーネント(データ型)に分割されました。






各オブジェクトは、プログラマーによって定義されたデータ型(いわゆるクラス)の変数です。 このような特別なユーザーデータ型(クラス)の定義は、データセット(不変式、メンバー)の定義と、それらを提供するルーチンセット(メソッド)の2つで構成されます。



オブジェクト指向のアプローチの主な利点は、継承と呼ばれる、すでに記述されたクラス(不変式とメソッドの追加、メソッドの再定義、基本クラスで定義されたメソッドの使用)に基づいて新しいクラスを作成できることでした。



メソッドのセットは、不変式と対話するためのインターフェースです。


おっと



Brad Cocosは、SmalltalkがITT Corporationの問題を解決するのに適していないことにすぐに気付きました。C言語の互換性はそれらにとって重要でした。 しかし、CoxはCのプリプロセッサをSmalltalkに変更することにしました。

この変更は、新しい構文構造と特別なプリプロセッサ(コードを通過して通常のC関数呼び出しに変換)と新しいランタイムライブラリ(これらの処理呼び出し)を追加することで構成されていました。 したがって、当初、Objective-CはCのアドオンとして認識されていました。ある意味では、これは事実です。純粋なCでプログラムを記述し、Objective-Cからいくつかのコンストラクトを(必要に応じて)追加できます。 Objective-CプログラムでCを自由に使用できるほか、C ++プログラムにも適用されます。


何が起こったのか、Coxは「OOPC」-オブジェクト指向プリコンパイラと呼ばれていました。 1982年、LoveはSchlumberger Researchに定住し、Smalltalk-80の商用バージョンを購入する機会を得ました。 これは、Objective Cのさらなる作業に役立ちました。その結果、オブジェクトを作成し、それらを操作する機能がObjective-Cに実装されました。







Coxの目標は、ソフトウェアICの概念をサポートする言語を作成することでした。これは、既製の集積回路から複雑な電子デバイスを組み立てることができるように、既製のコンポーネント(オブジェクト)からプログラムを組み立てる能力を意味します。 同時に、開発者の移行を容易にするために、言語はシンプルでC言語に基づいている必要があります。



目標の1つは、クラス自体が本格的なオブジェクトであるモデルを作成することでもあり、メッセージのイントロスペクションと動的処理がサポートされます。 任意のオブジェクトに任意のメッセージを送信できます。 オブジェクトは、代わりにメッセージを別のオブジェクトに送信して処理(委任)することができます。特に、分散(つまり、異なるアドレススペースや異なるコンピューターにある)オブジェクトを実装できます。



対応する関数へのメッセージのバインドは、実行時に発生します。



Objective-C言語は、メタ情報の操作をサポートしています。たとえば、実行時に、オブジェクトのクラス、そのメソッドのリスト(渡された引数のタイプを含む)およびインスタンス変数を見つけ、クラスが指定されたプロトコルの子孫であり、指定されたプロトコルをサポートしているかなどを確認できます



次へ



1986年に、Coxは「Object-Oriented Programming、An Evolutionary Approach」という本を出版し、彼のプログラミング言語の説明を掲載し、コードの再利用の問題に対処し、Objective-Cがそれを解決する利点を指摘しました。 Love and Coxは、Productivity Products International(PPI)も作成しました。これは、Objective-Cコンパイラをクラスライブラリで収益化するのに役立つはずでした。 さらに、基金はStepStoneに改名されました。



1988年、NeXT SoftwareはObjective-Cのライセンスを取得し、ライブラリを改善し、新しいライブラリであるAppKitとFoundation Kitを追加しました。 それらに基づいて、NEXTSTEP開発環境が後に作成されました。







1992年、GNUプロジェクトの開発者がOpenStepプロジェクトに参加して、言語とコンパイラを改善しました。 それ以来、GCCはObjective Cをサポートしています。



NeXTは、コンピューターメーカーとして市場で成功しなかったため、ソフトウェア開発ツールの作成と販売に注意を向けました。



1996年12月20日に、AppleはNeXTソフトウェアを購入し、NEXTSTEP開発環境は、AppleのオペレーティングシステムであるOS Xの将来のメジャーバージョンの主要な開発環境になりました。



NeXTを購入した後、AppleはSDK(コンパイラ、ライブラリ、IDE)をさらなる開発の基礎としました。 コード開発用のIDEはXcodeと呼ばれ、GUIの場合はInterface Builderと呼ばれます。 GUI開発用のCocoaフレームワーク(だけでなく)は、Objective-Cプログラムの最も重要な開発環境です。



2007年、Appleは言語の更新バージョンを導入し、Objective C 2.0と名付けました。このバージョンの言語は現在関連しています。 Apple OS X、iOSの開発で使用されます。



スイフト



2014年、Appleは新しいプログラミング言語であるSwiftを導入しました。 これは、歴史上最も急速に成長しているプログラミング言語になりました。



「Swiftソースコードのオープンにより、世界中の開発者がこのプログラミング言語に貢献し、新しいプラットフォームで利用できるようになります」 、Appleのソフトウェア担当上級副社長であるCraig Federigi 氏は述べています。 「Swiftの効率性とシンプルさは、若いプログラマーに学習のインセンティブを与え、今では、モバイルデバイスからクラウドシステムまで、あらゆる場所にアイデアを広めることができます。」







Swiftの作成者はChris Luttnerです。 2005年にAppleに入社しました。 そこで彼はLLVMの開発に関与しました。 AppleはLLVMを使用して、アプリケーションの構築におけるObjective Cの使用方法を変更しました。

LLVM(低レベル仮想マシン)は、プログラムを分析、変換、および最適化するための汎用システム、または開発者が「コンパイラーのインフラストラクチャー」と呼んでいるシステムです。
Chris Luttnerは、Apple開発者のすべてのツールを監督しています。サードパーティの開発者と会社のエンジニアの両方によって、電話、タブレット、Appleコンピューター用のプログラムが作成されるすべてのツールです。 イリノイ大学の大学院生として、彼はLLVMと呼ばれる一種の開発者ツールを作成しました。

Luttnerは、SwiftのベースとしてLLVMも使用しました。 これらの2つの製品は、連携して動作するように特別に作成されました。



彼は2010年の夏にSwiftの仕事を始めました。 Lattnerは1年半の間それを秘密にしました。 彼は主な仕事から余暇にSwiftを作成しました。



1年半後、彼はこのプロジェクトについてAppleのトップマネージャーに話しました。 Luttnerの仕事に感謝し、彼らは彼を助けるために複数の開発者を送りました。 しかし、プロジェクトは未だに謎に包まれていました。 間接的に言語の作成に参加し、クリスを助けた人々でさえ、彼が正確に取り組んだことに非常に驚きました。 さらに1年半後、Lattnerプロジェクトは会社の主要な方向性のリストに含まれ、開発チームは大幅に拡大しました。



Appleによると、Swift言語にはIT業界を変えるあらゆるチャンスがあります。



2014年6月2日に、同社はサードパーティの開発者とプログラマ向けのテストバージョンをリリースしました。 Appleは、この言語を、iPhone、iPad、およびMac用のプログラムを作成するためのより高速で効率的な方法と位置付けています。







オーディエンス拡張



プログラミング言語は、愛好家の狭い輪でも人気を得るには数年を必要とします。 Googleが2009年に導入したGo言語の状況は、非常に示唆的なものです。 最高の頭脳はGo(ケントンプソンとロブパイク)で働いていましたが、今日までそれを普及させるためにかなりの努力がなされました。 しかし、AppleはSwiftを例外にするためにあらゆることを行っており、それぞれ1990年代と2000年代初期のJavaおよびC#言語の例に従っています。



Swiftは平均的なプログラマー向けに設計されています。 最も単純なアプリケーションでも言語で記述でき、かなりスマートなツールを備えているため、この言語は自分で書くことを学ぶための効果的な方法を提供します。 しかし、この言語の将来的な人気の主な理由は他の場所にあります。 今日、数十万人の開発者がObjective Cを使用してAppleデバイス用のアプリケーションを作成しています。Appleデバイスは非常に人気があります。つまり、これらの開発者は引き続きSwift上でアプリケーションを作成します。 Appleによると、Objective Cよりもはるかに優れており、効果的です。



2015年12月3日、同社はSwiftソースコードを公開しました。 アプリケーション開発者から企業や教育機関まで、開発者の世界的なコミュニティは、Swiftを開発し、新しいコンピューティングプラットフォームでアクセスできるように言語を最適化できます。



「Google Goを使用するインセンティブはありませんでした」と、さまざまなプログラミング言語の進歩を約15年間追跡したPaul Jansen氏は述べています。 「Swiftには刺激があります。」



TIOBE Swiftのランキングでは14位になります。 彼は1年で3つのポジションを獲得しました。 Go言語は95桁から20桁に移動し、非常に印象的です。 しかし、Objective-Cは6位から15位に低下しました。したがって、Swiftは技術的にその前身を上回ったと言えます。







現在、人気のあるオープンソース開発リポジトリであるGitHubでは、2,500以上のプロジェクトがSwiftを使用しています。



Swiftは単なる言語ではなく、開発者が作業するために必要なすべてのものと密接に関連する言語です。 これには、統合開発環境だけでなく、すべてのApple開発者が既に知っている他の多くのツール(デバッガーなど)も含まれます。



Swiftは高速で(一部のアルゴリズムの実装速度はPythonの3.9倍)、簡潔です(開発者はObjective-Cの冗長性を取り除きました)。 もう1つの重要な革新は、コードを記述してリアルタイムで結果を表示する機能です。



これに先立ち、長い間、ソフトウェア製品の作成プロセスと製品自体が分離されていたため、プログラマーはコードのチェックと最適化に多くの時間を費やさなければなりませんでした。 Swiftでは、修正してすぐに結果を確認できます。 これは、開発者が動作中の概念をすばやく確認し、一般に、アプリケーションをより迅速に作成できることを意味します。



PS Appleは最近、新しいプログラミング言語をリリースした最初の企業ではありません。 これはすでにFacebook、Google、Mozillaによって行われています。 これが導く場所-時間は告げます。



All Articles