Swiftは初心者たちが学ぶのに良い言語でしょうか?

この記事は以下QuoraにあるSwiftは初心者が学ぶのに良い言語ですか?(Is Swift a good language for a beginner to learn?)を整理して意見を付け加えたものです。少し古い記事ですがコメントに良い内容が多いので共有します。もちろん、結論からするとSwiftは初心者たちが学ぶのに適した言語だということです!


Swiftは初心者たちが学ぶのに良い言語でしょうか?

Jim Dovey

レベルによって異なりますが、SwiftはC系列の言語と違って関数を使用することが必須ではありません。ただコードを書いて何かしら動作させることができます。 またSwiftの構文はtype-saftyと活用法に重点を置いています。少し複雑なoptional chainingの様な概念は最初にプログラム開発するときには必須ではありません。後々覚えていけばいいでしょう。つまり@?シンボルの使い方を学んでいなくてもたくさんのことをすることができます。

もちろん、将来的にはオブジェクト指向やpass-by-referenceとpass-by-valueの違いも知らなければならず、MacOSやiOS開発のためのModel-View-Controllerの概念も知る必要があります。これらは言語の基礎的なことを学んでから一つ一つ学んでいけばいいでしょう。 初心者向けの言語としてのもう一つの大きな長所はPlaygroundsとREPLです。 REPL(Read-Eval-Print-Loop)は対話型ランタイム環境です。コマンドラインでREPLを開始してソースコードを対話型で一列ずつ入力しながら実行結果をその場で確認することができます。 Playgroundsを使用すると実装したアルゴリズムのグラフを見せてくれたり、動くアニメーションを描いてくれたりします。 アニメーションを修正するために修正-コンパイル-設置-実行を毎回する必要もなく、パラメーターを修正するだけで結果に反映されます。

記事の更新情報を受け取る

Glyn Williams

初心者が学ぶ時に必要な物が何か考える必要があります。最初に学ぶときは複雑すぎないシンプルな環境が必要です。

  • コンパイラ、ヘッダーファイル、付随的なファイルなどは初心者が言語を学ぶときに大変にさせる要素です。コードを入力すればすぐに動作する環境が良いです。
  • 簡単な構文が良いです。簡単なループ、変数、配列、関数などは簡潔なコードで書けるべきです。
  • 間違いがあるときにヘルプを表示する環境は大きな助けになります。
  • また、可能であれば結果をすぐに確認できる必要があります。結果をすぐに確認できるようにするのは、誤った点をすぐに修正できるようにするために非常に重要です。

また学習者たちは学習している時に急に「よし、これからは実際の問題を解決するために新しい言語を学ばなければ」ということは聞きたいと思ってません。Swiftは教育用言語と違って実生活の問題を解決できる言語です。

Paul Solt

はい、Swiftは開発を初めて学ぶ人にぴったりです。 Swiftは以下3つの理由でObjective-Cよりかんたんです。

  • 複雑な部分を除去しました(2つのファイルを1つに)
  • 特殊文字を使用しなければならないケースが一段と減りました。例えば毎回文末にセミコロンを入力する必要がありません。
  • Playgroundsを使って一つ一つ学びながら実行結果を視覚的に確認することができます。

コンパイラを助けるための反復的な作業を減らしてくれる言語は大きな助けになります。コンパイラがコードをiPhoneで動作するアプリを作るために伝統的なコンパイラはさまざまなヒントを要します。しかし、このようなものはAppleのXcodeとLLVMの確信のおかげでこれからは必要ありません。例えば、ARC(Automatic Reference Counting-ARC)の様な高級機能のおかげでC、C++、Objective-Cで開発する時より(反復的かつバグを作り出しながら時間の浪費となる)余計なコードを作成する代わりにロジックに集中して開発することができます。

Objective-CでもARCを使えますが例外的な部分があります。しかし、SwiftはどこでもARCを使うことでメモリ管理のための手間を軽減できます。

Alice Karsevar (学ぶ人の立場)

すでに開発を習っていてどの言語を初めて学ぶか決めるために多くの言語を調べました。 私が受けた言語に対する印象は次のようです。

  • Rubyはウェブ開発にとても適した言語です。しかし日本人によって作られたので日本語を話す時のように全ての順序が逆のように感じます。(Pythonと比較した時に逆で、より柔軟で複雑な感じですが、もちろん初心者の私だけがそう感じるのかもしれません)
  • Python:概念を学ぶのに良いです。しかし、あまりにも多くの資料とチュートリアルがあるので何から初めて良いか迷ってしまいます。多くの資料が数学関連なので面白みが少ないです。
  • JavaScript:ウェブ関連で働くなら大変よい言語です。すぐに使用することができます。
  • Objective-C:見るやいなや頭痛がしました。
  • C#:C++に進むための中間段階でMicrosoftに通う友人から強く勧められました。私がゲーム業界にいてゲームがどのように動作しているのか理解したいと思っていたので良い言語でした。
  • Swift:上にあるものを混ぜたような感じです。今まで見てきたところでは他の言語で習った概念を大部分はそのまま使用することができました。他の方たちが言ったとおりPlaygroundsは非常に素晴らしいツールです。

結局どんな言語を習うのかより何でも学ぶことがもっと重要だという結論です。私の考えには誰に教わるのかが一番重要なことだという気がします。もし先生があまりに技術にだけ集中して退屈なら、あまり役に立たないこともあります。良いチュートリアルを探せなかったらそのテーマに対する良いドキュメントと発表資料を探してみてください。

さらに強くなったSwiftの遊び場(Playgrounds)

まだ正式発表されていませんが、2016年秋に公開されるSwift Playgroundsは強力なSwift学習ツールであり、初心者たちのための最強のコーディング教材です。Swift Playgroundsを使用すれば、パズルゲームのように楽しくSwiftを学ぶことができます。コーディングを知らなくても段階的に簡単にプログラミングを覚えることができ、学生たちの良い学習ツールです。また視覚的にすぐにコーディングを学ぶことが出来るように作られています。この秋にApp Storeで公開されるとのことなので期待して良いと思います。ただ、どれほど多くの部分が韓国語で翻訳されるかはまだわからないという点が非常に惜しいです。

Swift Playgrounds プレビュー

基礎学習

  • 実際のコードでキャラクターを3D世界で動かすことができます。
  • パズルを解きながらレベルを上げてコーディング概念を身につけることができます。
  • 実際のプログラマーが使用するコードを使用します。
  • 段階的な学習でより複雑なコーディングをすることができます。

追加学習

  • 基本課題だけでなくチャレンジ課題が継続的に追加されます。
  • 興味深い内容のチャレンジ課題を完成させ、新たな概念を学習したり、従来の学習内容を復習することができます。

iPadの操作機能の活用

  • マルチタッチとタップ、ドラッグ、タイピングなどiPadのかんたんな操作の機能を活用します。
  • 数字をタップするとiPad計算機UIが現れ、簡単に修正することができます。
  • タッチしてドラッグして既存のコードを簡単に修正することができます。
  • Snippetライブラリのコードをドラッグしてすぐに使用することができます。
  • QuickTypeキーボードのすぐ上のバーに自動補完された命令語が表示されます。

Swift Playgrounds QuickType キーボード

簡単な実装および結果確認

  • 簡単な実装のために加速度、ジャイロスコープなどiPad機能を活用できるテンプレートを提供します。
  • iPadのフルスクリーンで開発したコードの結果を見ることができます。

成果物の共有

  • メール、iMessages、AirDropなどを使用してコードを共有することができます。
  • 開発したコードを実行する様子を動画でウェブに共有できます。
  • Xcodeに移してiOSやMacアプリの開発に活用することができます。

短所

  • いまのところSwiftを安定的に使用するためにはMacが必要です。学校や塾ではMacを用意していないことが多くまたWindowsより少し高いのも事実です。
  • 現在入手できるSwiftの資料はSwift 1.2、Swift 2そしてSwift 3バージョンを対象とするドキュメントとチュートリアル、サンプルコードなどがありますが、初心者たちはこれらを区別できないですし、そのままコピーアンドペーストするだけではまともに動作しないこともあります。もちろんこのような部分を考慮してよく作られている教材で学習すれば良いのですが、問題があるときにグーグル検索したコードはよく動作しないことがあります。

まとめ

Swiftは初心者が最初に開発言語を学ぶための教育用と非常に適した言語です。 Appleまた教育言語としてのSwiftに確固たる意志を持っていることが見えます。LinuxのためのSwift、Swift PlaygroundsやREPLなどはもちろん、アップルが公式に提供しているSwift関連文書の量もものすごいものがあります。ソフトウェアに対する関心によってコーディング教育のための多くの学習ツールが提供されています。その中でも最も早いテンポで発展している強力な言語Swiftを直観的なツールを通じて簡単に楽しく学べるという点で本当に良いと思います。もうすぐAppleが公開するSwift Playgroundsがさらに待ち遠しいです。

About the content

This content has been published here with the express permission of the author.


Minwoo Park

Minwoo is a software engineer who loves business.

4 design patterns for a RESTless mobile integration »

close