BASICとPascalは、プログラマーの初期トレーニングの標準となっています。 多くの人にとって、これは学校や大学の最初の言語です。 しかし、10年以上にわたって状況はそれほど変わっていません。 BasicとPascalは
現在トレーニングに適して
いますか? 10年の間何も良くないですか?
歴史以外のBASICとPascalを使用する理由があるかどうかを検討してください。
学校では長い間明らかでした-プログラミングではなく、コンピューターの使用の基本を教える方が良いです。 Maximum-
KTurtleなどの環境での
ロゴ 。
しかし、研究所の最初のコースと学童の集中研究では、RubyとPythonを使用する方が良いと思います。
もちろん、Ruby
だけで学習することを主張していません。 しかし、たとえば、Rubyで基礎を与え、Java / C#またはC(メモリ管理を含む)でより複雑になると、プログラマーの開発により正確に影響します。
さらなる議論。
問題
最初に、PascalとBASICですべてが非常にスムーズかどうかを見てみましょう。
- 非推奨のIDE。 もちろん、TurboPascalのコンソールはクールですが、より高度で最新のテキストエディターを使用してみませんか? DelphiまたはVisual Basic.Netを使用できますが、これらは多くの追加要素を備えたプロフェッショナルなツールです。 [保存]ボタンと[実行]ボタンだけではありません。
- 非実用性。 BASICとPascalは現在、実稼働環境での使用が少なくなっています。 正式には、プロのプログラマの90%がこれらの言語を実際に使用することはありません。
- 複雑さ むかしむかし、彼らは本当に非常にシンプルなプログラミング言語でした。 しかし、進歩は止まりません。
- 非推奨のAPI。 TurboPascalおよびQBasicでは、ウィンドウアプリケーションを作成したり、単純なWebサイトを作成したりすることはできません。 もちろん、これはアルゴリズムの学習には必要ありませんが、結局のところ、最新の「クールな」ツールのセットを使用することで、学生はさらに魅力的になります。
- 一つのパラダイム。 現代のIT教育の問題の1つは、学生が機能的なアプローチを知らないことが多いことであり、OOPはC ++モデルでのみよく知られています。 言うまでもなく、地平線は決して邪魔になりません。 さらに、C ++アプローチは理想とはほど遠いものであり、多くのタスクは別の方法で解決する方がはるかに便利です。 もちろん、鶏肉と卵の問題に直面しています。なぜなら、C ++のアプローチは、単に教えられているからという理由でのみ使用されることが多いからです。 しかし、この悪循環から抜け出す時です:)。
機能強化
RubyとPythonがこれらの問題をカバーしているもの:
IDE
RubyおよびPython用の対話型コンソールがあります。コマンドを入力すると、すぐに結果が表示されます。 実験に理想的なプラットフォーム:
>> 2 + 2
=> 4
>> a = [1、2、3]
=> [1、2、3]
>> a << 4
=> [1、2、3、4]
>> a.reject {| i | i%2 == 0}
=> [1、3]
Rubyの場合
、Webにはインタラクティブコンソールさえあります。トレーニングコンピューターに何かを置く必要さえありません。 これは、学生が自宅で運動したい場合に特に当てはまります。
そしてもちろん、RubyとPythonはプログラミング言語として解釈されるため、どのテキストエディターもこれらの言語を扱うのに適しています。
産業用
Google、Yahoo!、CERN、NASAなどの巨人は工業的にPythonを使用しています。 Rubyは、Ruby on Railsの助けを借りて、Webプラットフォームを積極的かつ積極的に占有しています。
Basicとは異なり、RubyまたはPythonの知識がなければ通常の仕事を得ることができると言う必要はないと思います(Delphiプログラマーの需要も下がります)。
さらに、RubyおよびPythonでは、OOPをすぐに真剣に伝えることができます。
明度
それらの基礎となる多くのパラダイムにより、RubyとPythonには多くの美しくシンプルなソリューションがあります。
たとえばサイクル。 PascalおよびBasicでは、目的のループ
を実装する
方法を考える必要があります; Rubyでは、
何をする必要がある
かを示します。
ループする
#無限ループ
終わり
count.times do | i |
#カウントループを何回も実行します
終わり
['a'、 'b'、 'c']。各do | i |
#配列の各要素を反復処理します
終わり
また、たとえば、Pythonのインデントメカニズムは、正しいクリスマスツリーを観察することをすぐに教えます。
高階関数 (またはデリゲート)を使用すると、配列の処理をより簡単に、より理解しやすくすることができます。
#配列を反復処理し、trueが返される要素を削除します
[1、2、3、4] .reject do | i |
i%2 == 0#偶数を削除
終わり
#結果は[1、3]になります
Rubyは
DSLを簡単に作成できるため(特定のタスクのミニ言語のように)、美しいAPIの背後にある多くの微妙な点を隠して、連続して教えることができます。
たとえば、
Shoes RubyライブラリのGUI定義は次のようになります。
Shoes.app {
ボタン(「プッシュ」)する
アラート「ボタンをクリックします」
終わり
}
API
Rubyの場合、グラフィックス、エフェクト、アニメーションを使用して「クール」なインターフェイスを簡単に作成できるため、
Shoesについて再度言及できます。 たとえば、コードは星を描画し、カーソルの後ろに移動します。
Shoes.app {
@shape = star:ポイント=> 5
動きます|左、上|
@ shape.move left、top
終わり
}
学生は、Ruby on Railsまたはよりシンプルな
Sinatraで独自の小さなサイトを作成することもできます。
私は、単純なSQLiteデータベースへのアクセスなどの標準APIについて話しているのではありません。
マルチパラダイム
RubyまたはPythonの学習は、生徒の発達に正しく影響します:)。 彼はすぐに1つの言語で多くの異なる学校のアプローチを示すことができます。 関数型プログラミング言語の高階関数とラムダの簡単な紹介。 OOPの外観はC ++メソッドだけで閉じられるのではなく、アヒルのタイピングの容易さと可能性を示します。
パン
さらに、RubyとPythonははるかにクロスプラットフォームです。 QBasicやBorland Pascalとは異なり、コミュニティによって常に開発されています。 彼らはUnicodeをサポートしています(したがって、子供たちはテストで母国語を入力できます)。
シンプルで美しいRSpecを使用して、テストを書くことをすぐに学ぶことができます。
count.should == 10
array.shinclude(アイテム)
そして、
現代のプログラミング言語が持っている多くの便利なもの。
PSこの記事は確かにRuby指向ですが、その長所と短所をよく知っているからです。PPS実際、PythonとRubyもこれに限定されません。 GroovyやLuaなどの言語は、タスクの学習にも最適です。 私は彼らと広く仕事をしておらず、言葉で答えられないというだけです:)。こちらもご覧ください
Hackety Hackは、Rubyプログラミングを学習するためのツールです。