なぜAppleのSwiftが新しいBASICであるのか、それは小さなものではない

月曜日のWWDCで、AppleはOS XとiOSの未来について多くの発表をした。おそらく、これらの発表の中で最も興味深い(そしておそらく最も広大な)発表は、iOS開発のための新しいプログラミング言語と環境であるSwiftの驚異的な導入でした。

新しいプログラミング言語を気にする必要があるのはなぜですか?

iOS 10:Appleの「iOSのためのこれまでの最大のリリース」、ここでAppleがあなたのプライバシーを保護する方法、Appleの今年のベストデザインアプリの選択、iOS 10の40%すべてのiPadsが廃止されました;?Apple macOS Sierraの良さと悪い点、watchOS 3.0のアップデートの概要、Apple PayによるWebへのアクセスの広がり、Amazon、PayPalとの競争、AppleはSiriとiOS 10

Appleが開発スピードを超越して開発をもっとインタラクティブにすることができれば、ゲームは本当に変化している。

次の分析でわかるように、Swiftはプロのアプリ開発に革命を起こすと同時に、より多くのレクリエーションや教育プログラミングへの道を開く可能性を秘めています。

高性能の結果コードと高度にインタラクティブな開発の両方のこの二重の性質は、これまで見たことのないものです。アップルがそれを効果的に取り除くことができれば、それは特別なものになるだろう。

言語設計者(および学生および学者)は、常に新しいプログラミング言語を作成します。私は学術工学研究賞を受賞した暗闇の中で言語を設計しました。

新しいプログラミング言語とAppleの新しいプログラミング言語との間には大きな違いがありますが、これはデフォルトのiOS言語を意図しています。時間がたつにつれて、どんなol言語も拾われて使用されるかもしれません。しかし、昨年、900万人の登録デベロッパーと1億3千万の新規顧客が加わったことで、スウィフトは激しいペースで極端な採用を経験することになるでしょう。

まあ、それはまったく違うことです。まず、AppleがSwiftに承認のスタンプを付けている(そしてObjective-Cから一時的に削除している)ので、開発者はこの新しい言語を学ばなくてはならないことを意味する。

ある日、政府が新しい国語がクリンゴンであると発表した場合、どう感じるか考えてみましょう。それが今までで最もクールなアイデアだと思ったとしても、言語がどれほど習得するのが難しいのか、他に誰と話し合うことができるのか、少し気になりました。

さらに、言語とIDE(インタラクティブ開発環境)とAPI(アプリケーションプログラミングインターフェイス)を組み合わせることで、開発者が作成するアプリケーションの労力、コスト、保守性、楽しさ、パフォーマンス、および能力のレベルがほぼ決まります。

正しい(または間違った)言語を選択すると、製品のライフサイクルに大きな影響を及ぼす可能性があります。

私たちは後の質問でプログラミングの有効性の意味に着きます。今は、このことが、言語に関する書籍の作家からLynda.comのようなオンライントレーニングサービス(UC Berkeleyのような大学にさえ)に至るまで、プログラミングトレーニングアフターマーケットに大きな影響を与えることに注意することが重要です私はオブジェクト指向プログラミングを教えています)。

まず、Objective-Cの製品、クラス、およびトレーニングプログラムが疲弊し始めることに賭けることができます。 Swiftが大きな普及を見せているのであれば、Objective-Cを犠牲にしているので、現在Objective-Cトレーニング製品を提供している人は、今後数年間でメンテナンスとライフサイクルの段階に到達すると期待しています。

一方で、スウィフト周辺での書籍、訓練サービス、学術プログラムの形での新しい素材の創造の機会が広がっています。 900万人の開発者がいるにもかかわらず、確かに市場はありますが、教えられているコンテンツの内容は変わる必要があります。

より多くのビジネスへの影響がありますが、後ほど記事で説明します。

iOS 10:Appleの「iOSのためのこれまでの最大のリリース」、ここでAppleがあなたのプライバシーを保護する方法、Appleの今年のベストデザインアプリの選択、iOS 10の40%すべてのiPadsが廃止されました;?Apple macOS Sierraの良さと悪い点、watchOS 3.0のアップデートの概要、Apple PayによるWebへのアクセスの広がり、Amazon、PayPalとの競争、AppleはSiriとiOS 10

まず、ほとんどのiOS(そしてほとんどのMac)プログラミングは、Appleの独自のCプログラミング言語であるObjective-Cで行われていることを理解してください。 Cはその時代にはエレガントでしたが、1970年代初めにコンピュータソフトウェアが今日よりもはるかに複雑ではなかった時期に設計されました。

10年後、C ++とObjective-Cの両方が開発され、同じ種類のコードスケーリングと再利用の問題のいくつかが解決されましたが、アプローチは異なります。われわれも知っているとおり、AppleはNeXT買収を通じてObjective-Cを買収し、Appleソフトウェアの主要な開発言語となった。

私の前身であるiPhone開発者の真実である2012年、私はObjective-Cを「2つの別々のプログラミング言語を一緒に溶かしたようなものだし、荒い辺を砕くのを忘れてしまった。

これは、Objective-CがCにもたらした拡張メッセージを渡すメッセージが、その周囲のCコードの他の構文とは異なる構文でコード化されているためです。 Objective Cコードを書くと、まったく異なる2つの言語の間でバウンスするようなコードがたくさんあります。それは醜く、控えめです。

iOS 10:Appleの「iOSのためのこれまでの最大のリリース」、ここでAppleがあなたのプライバシーを保護する方法、Appleの今年のベストデザインアプリの選択、iOS 10の40%すべてのiPadsが廃止されました;?Apple macOS Sierraの良さと悪い点、watchOS 3.0のアップデートの概要、Apple PayによるWebへのアクセスの広がり、Amazon、PayPalとの競争、AppleはSiriとiOS 10

プログラミングが快適な言語であれば、それがAppleの約束を実現できるかどうか、それが堅実でバグに満ちていなければ、それが開発者によって採用されれば、それは大きな利益をもたらす可能性がありますアップルのアプリエコシステム用

AppleのプログラマーはObjective-Cの賛辞を歌いますが、それは仕事が終わったことは間違いありませんが、その言語には明確な要素があります。

AppleがSwiftを説明したやり方は、「Objective-C with the C」です。 Cの関数ベースのモデルとObjective-Cのメッセージパッシングモデルの2つの溶接プログラミングのパラダイムについて、私たちが知っていることに基づいて、Swiftはすべてメッセージの受け渡しを前提としています。

あなたがプログラマーでないなら、それが意味するものについてあまり心配しないでください。より包括的な方法でコードを合理化できる場合は、生産性と保守性に利点があることを理解してください。

もちろん、それ以上のことがあります。それについては後で説明します。

次へ:プログラミングの芸術と科学…

ところで、私はこれまで以上にTwitterやFacebookのアップデートをしています。 @DavidGewirtzのTwitter、Facebook.com/DavidGewirtzのFacebookで私をフォローしてください。

はい。はい、そうです。さらに重要な点として、Objective-Cには非常に大きなアプリケーションがいくつか組み込まれており、そのコードをすべて書き換えて書き直すことはできません。

Appleが今後数年間Objective-Cを引き続きサポートすることは間違いありません。

Appleが今後数年間、Objective-Cを引き続きサポートすることは間違いないだろう – おそらく少なくとも10年間。しかし、スウィフトが望んでいることをすれば、おそらくObjective-Cで革新することはないでしょう。彼らはスウィフトのためにそれを保存します。

コードの移行の問題を念頭に置いて、Appleはコーディングシステムのバックエンド要素が同じままであると説明しました。その目的はSwiftで書かれたモジュールとObjective-Cで書かれたモジュールが共存することです。開発者はSwiftで大規模なアプリケーションのコーディングを開始できますが、すべてをやり直す必要はありません。

これにはいくつかの利点(およびいくつかの課題)があります。 SwiftがAppleの実行スピードと同じくらい速いとすれば、プログラマはSwiftのいくつかのパフォーマンスバウンドモジュールを書き直し、コードの残りの部分とリンクさせ、理論的には素晴らしいパフォーマンスバンプを見ることができます。

欠点は、もちろん、3つの言語が融合したように見えるようになり、メンテナンスがすべて苦痛になることです。しかし、アップルの主流の開発者コーディングイニシアチブがSwiftに移行するにつれて、製品コードの同質性はますます純粋なSwiftになるでしょう。

速度に関連する2つの要因があります。実行のスピードと開発の対話性です。同じ開発環境では、これらの2つのことをほとんど見たことがないことに注意することが重要です。あなたは超高速のコード実行を取得するか、動的なインタラクティビティを取得します。

Appleが開発スピードを超越して開発をもっとインタラクティブにすることができれば、ゲームは本当に変化している。

では、これはどういう意味ですか?プログラミング言語は、過度に単純に「コンパイルされた」または「解釈された」と記述される。

コンパイルされた言語は、実行前に、ソースコードの英語のような構文から機械語へのすべての変換を行います。これにより、実行速度が向上します。これは、プログラムの実行時に変換を実行する必要がないためです。 CおよびC ++は従来のコンパイル言語です。

解釈された言語は、実行時に解釈されます。たとえば、BASICでは、PRINT “David is swell”のような行がある場合、BASICインタプリタはコードを実行するときに、PRINT文が何をしたのかを突き止めて実行します。これにより、よりインタラクティブな開発経験が得られますが、実行可能なコードが遅くなります。

80年代から90年代にかけて、多くの解釈言語が中盤を担ってきました。コードは書き込み時に「トークン化」され(低レベルの仮想マシン用に部分的にコンパイルされるため)、実行速度が少し向上します。純粋にコンパイルされたコードほど高速ではありませんが、今日のプロセッサでは、その違いは一般的に目立つものではありません。

Apple Keynoteのスライドによると、スウィフトベンチマークは高速です。本当に、本当に速い。すべてのプログラマーは高速コードを好んでいます。なぜなら、高速コードはアプリケーションをよりスムーズに実行できるため、ユーザーエクスペリエンスが直接向上します。

AppleはまたiPhoneとiPadのA7プロセッサにコンソールレベルの3Dゲームパフォーマンスをもたらす3DグラフィックスライブラリであるMetalを展示しました。 Epic Games(Unrealのゲームエンジンのメーカー)は、Metalで構築され、iPadで動作していると言われていた顎の落ち込みを実証しました。

SwiftがObjective-Cよりも優れた実行速度を実際にもたらすことができ、かつMetalと組み合わせてSwiftが以前は不可能だったグラフィックス機能をもたらすことができれば、これらのパフォーマンスの向上(特にAppleがA8プロセッサーとA9プロセッサーに移行する時)開発者は以前には見たことのない深みのある驚くほど新しいアプリを開発するために必要なツールを開発しました。

私はしばしばプログラマー以外の人にプログラミングは科学と同じくらい芸術的であると説明します。プログラミングの行為には大きな創造性があります。しかし、それはしばしば価格です。プログラミングは非常に時間がかかり、Heartbleedで見たように、そしてApple独自の “goto fail bug”があり、誤った結果が叙事詩の結果を引き起こす可能性があります。

Swiftは、これらの問題を2つのベクトルに対処すると言います。まず、スウィフトはCの遺産の多くを残している(セキュリティハッキングの扉の多くを開くポインタ管理の問題のほとんどまたはすべてを含む)ため、スウィフトで構築されたコードは本質的に安全性が高い。

プロフェッショナル・プログラマーはベスト・プラクティス、適切なコーディング・モデル、徹底的なテスト、慎重なレビューを使用してコードを準備する必要がありますが、コア・コードのサンドボックス化がユーザーの安全性向上に役立ちます。

スマートフォン、米国政府:サムスンギャラクシーノート7の使用を中止、アップル、驚くべき契約:ベストバイは189ドルでオリジナルのアップルウォッチを販売している;アップル;これらのiPhoneとiPadは9月13日に廃止される;無料のiPhone 7の提供には、初期費用と多くの忍耐が必要です

しかし、本当に私を興奮させるもの(そして、Appleからの何かが私を興奮させる)は、Swiftのインタラクティブなプログラミングの性質です。あなたがBASICを学んだら、コードの行を入力して、環境が反応するのを見ます。インタラクティブに各行をテストし、すべてがどのように働いているかを見ることができます。

80年代と90年代初めのHyperCardは同じことをしましたが、今日でもPythonでのリアルタイムインタラクティブな開発が可能です。

SwiftはこれをXcodeに持ち込みます。 Swiftの興味深い点は、Appleがデモしたものとして動作すれば、インタラクティブプレイグラウンドと呼ばれるリアルタイムのインタラクティブなプログラミング要素で、テキストや数値の価値だけでなく、グラフィックにも利用できるということです。実際には、コードを変更するときのユーザーの画面の動作を見ることができます。それはちょうど栄誉あるデバッガかもしれませんが、それはどのような栄光のデバッガかもしれません!

これをプログラマー以外の言葉で表現するには、フィルムカメラを覚えていますか?私たちはすべて写真を撮っていましたが、私たちが処理のために送ってから戻ってくるまで、私たちはそれらを見ることはできませんでした。さて、私たちはInstagramを持っています。巨大な違い、そうですか?

これは、プロのプログラミング環境の編集コンパイルテストデバッグモデルと、BASICやPythonのような解釈システムのリアルタイムインタラクションモデルの違いと同じです。

確かに、BASICとPythonの両方がプロフェッショナルな製品を作るために使われてきましたが、問題は常にパフォーマンスでした。対話性を得るために、システムはいつもいつも常にパフォーマンスを犠牲にしてきました。

なぜiOS開発者は新しい言語を気にかけますか?

WWDC 2016

Swiftのビジネス上の意味は何ですか?

私がSwiftについてゲームを変える可能性があると考えているのは、膨大なパフォーマンスを提供すると同時に、コーディング中に内臓のフィードバックを与える高度なインタラクティブなプログラミング環境を提供できるように見えるということです。 Appleが本当にそれを取り除くことができ、言語がうまく機能しない場合、これは非常に大きくなる可能性があります。

次へ:最終行…

ところで、私はこれまで以上にTwitterやFacebookのアップデートをしています。 @DavidGewirtzのTwitter、Facebook.com/DavidGewirtzのFacebookで私をフォローしてください。

これにより、この環境のさらなるメリットがもたらされます。専門家は編集コンパイルテスト環境には慣れていますが、大きなデリバリの時間が来るまで一定の編集/テストサイクルを続けることができれば、開発時間が短縮されます。

右手では、このような開発環境の変化は、いくつかの余分なプログラマを無料で入手するようなものになる可能性があります。

一部の企業や個人は、開発時間を短縮して短期間でより少ない予算でより多くのことを行うことができますが、他の企業や個人はその時間を活用してより多くの機能を活用し、同じ予算で可能だったよりも多くの機能を追加します以前は

右手では、このような開発環境の変化は、いくつかの余分なプログラマを無料で入手するようなものになる可能性があります。

そのすべてが、新しいプログラマのために提供される機会につながります。明らかに、新しいプログラマは、市場の規模を考えれば、iOSプログラミングを学びたいと思うだろう。趣味としてコーディングしたいプログラマーや開発者は、BASICやHyperCardが魅力的で魅力的なものとして、スウィフトのようなインタラクティブで反応の良いものを見つけることができます。

Appleがもっとプログラマを必要としているのと同じではないが、Swiftはプログラミング教育コミュニティにとって魅力的なものになるかもしれない。なぜなら、新しいプログラマは断片的な、ほとんど原産でない、扱いにくいSwiftのような結束性の高いインタラクティブなプログラミング環境Objective-Cであるプログラミング環境。

私は答えを知らないという質問でこれを終わらせます:アプリの消費者は利益を得られるでしょうか?確かに、より短い時間でますます多くのコードを生成できる専門のアプリ開発者は、いくつかの新しく革新的な製品を生み出すでしょう。

しかし、我々はまた、アプリプログラミングへの参入の障壁が下がるため、大砲のような砲撃ゲームがますます多く見られるかもしれません。つまり、Appleが現在120万のアプリを持っていると主張するApple App Storeは、アプリ発見機能を大幅に改善する必要があるため、アプリを見つけ出す必要があるユーザーは、素晴らしいものを見つけて、500 Flappy鳥類クローン。

スウィフトを特別なものにする理由は何ですか?

Swiftに関連した “ifs”の束はまだあります

これがどうやってどうなっているのかを見るために秋まで待たなければならないだろうが、これは2008年以来私がAppleから見た最初のものであり、実際にApple製品を開発するのは面白いかもしれないと思う。

また、それはプログラミング経験の潜在的なアクセシビリティとインタラクティブ性と同様に、スウィフトが新しいBASICになるかもしれないと考えていることです。結局のところ、AppleはApple II上でBASICから始まったことを覚えておいてください。

実際、BASICを使ってApple IIを操作していた探検家は、本当にAppleの最初の顧客でした。彼らのほとんどはプロのプログラマーではなかった。彼らは好奇心をそそられたオタク、学生、教育者、そしてこれらの新しい、素晴らしいマシンを作ることができるものが何であるか考えていました。

しかし、それが新しい言語であれば、それは大きな学習曲線を意味しませんか?

Swiftの実行速度のメリットはどうですか?

数年前、私はAppleの根源を忘れて、あらゆる種類のアプリケーションを構築するためのiOSユーザーの能力を制限するためにAppleを叱責しました。実際に、私が最初にiPhoneアプリケーションを開発し始めたとき(私は40のばかばかしいちょっとしたアプリケーションを作り上げた)、アップルはトピックに書かれた本を許可せず、iOS向けのプログラミングを誰もがNDAのもとに置くので、教育的リソースはなかったまったく許される。

しかし、それはiPhoneが最初に出て以来ずっと変わってきた。そして、今、Swiftを使って、iOS開発のためのドアは、最初のApple II BASICプログラマーが彼らの最初のパーソナルコンピュータを手に入れたときに持っていた不思議の精神を取り戻すことができるかもしれない新しい世代のプログラマー。

登録済みのApple開発者は、Xcode 6ベータ版をダウンロードできます。登録されたアップルの開発者でなくても、iBooksからSwiftプログラミングガイドを無料でダウンロードできます。

では、スウィフトについてどう思いますか?あなたがコーダーなら、スウィフトを採用するつもりですか?あなたがプログラマーでなければ、スウィフトが最終的にあなたにそれを試してもらうと確信していますか?

ところで、私はこれまで以上にTwitterやFacebookのアップデートをしています。 @DavidGewirtzのTwitter、Facebook.com/DavidGewirtzのFacebookで私をフォローしてください。

米国政府:サムスンギャラクシーノート7の使用を中止

素晴らしいお買い得:Best BuyはオリジナルのApple Watchをわずか189ドルで販売しています

これらのiPhoneとiPadはすべて9月13日に廃止されます

T-Mobileの無料iPhone 7の特典には、初期費用と多くの忍耐が必要です

WWDC 2016

迅速かつ芸術とプログラミングの科学

市場への影響の可能性

レクリエーション教育プログラミング

アプリの消費者は利益を得ることができますか?

WWDC 2016

結論