「スクリプト言語」はひどい言葉であり、非常に時代遅れであるか、ドメイン固有の言語のクラスに最適です。あなたの教師は、彼が明らかに十分な理解を持っていないすべてを悪の軸に合わせているだけです。
賢明な区別は、高レベル言語と低レベル言語の間、または静的に型付けされた言語と動的に型付けされた言語との間であり、これらは真に直交しています。
アセンブラーは動的に型付けされた低レベルです(型と言えば意味があります)、静的に型付けされたCは低レベル、動的に型付けされたRubyは高レベル、静的に型付けされたHaskellです。Javaは高レベルでも低レベルでも静的に型付けされておらず、C ++は高レベルでも低レベルでも静的に型付けされています。等々。
議論ができるのは、このパラダイムがエントリーレベルのプログラマーにより適しているからです。
低レベルのプログラミングはおそらくそうではないと確信しています。90年代前半にさかのぼると、妥当な時間で実際に興味深い結果を出すことができたかもしれません。
しかし、プログラミングは情熱に支えられています。情熱は報酬によって養われます。したがって、エントリーレベルのプログラマーは、価値のあるツールから始める必要があります。低レベルのツールは、ごくわずかな時間で同じ結果を得る高レベルのツールの広大な海があるため、もはややりがいがありません。
人間の思考は抽象的です。世界を理解することを学ぶと、非常に粗い抽象化によってそれを行い、必要に応じて詳細に入ります。
子供がその環境を理解するために、数学、物理学、化学、生物学、歴史、社会学、哲学を教えるつもりはありません。あなたはそれに対処するための世界の非常にシンプルなモデルを与え、それ自体がそれを過ぎて長く到達し、若いときにあなたに無限に質問を発し、後であなたの権限を完全に否定します。
それが私たちの考え方です。人間の脳は限られた量の情報「単位」しか処理できませんが、情報の量子化では抽象度はほとんど重要ではありません。たとえば、「34 * 75」という表現を読むことは、計算するよりも簡単ですが、コンピューターの場合は逆です。黒いピクセルの束を波線に認識(そして抽象化)し、それを個々の数字として認識(さらには抽象化)できるのは、大変な作業です。
私の祖母はファイルを開くという考えを理解しています。しかし、彼女はそのレベルの下で理解していない。そして率直に言って、もし彼女がハードウェアとオペレーションシステムの内部の仕組みを調べてこれを学ばなければならなかったとしたら、彼女はそこに行ったことはなかっただろう。
明確で簡潔でエレガントなソリューションの観点から考えるように教えられたことはありませんが、交換可能な低レベルの詳細に悩まされ、それらに対する問題を解決するのに時間がかかりすぎたため、物事を複雑にしている人がたくさんいます。コンピュータのように考えるように人々に教えることは、プログラミングに対する最悪のアプローチです。
プログラミングの価値は、問題の解決策を見つけることにあります。それをコードとして表現することは、本当に退屈で機械的な作業であり、適切なツールであれば何でも簡単に実行する必要があります。
ああ、ポインタを理解していなくても心配しないでください。私は同じ年齢でほぼ同じ問題を抱えていました。ここでの問題は、抽象化の欠如でもあります。古典的には、Cの本からポインターについて学びます。ポインターを理解するのに苦労している間、これはメモリーの割り当て、つまりスタックおよびヒープのメモリーなどと連動します。ポインターの背後にある抽象的な概念は、間接指定です。特定の配列へのインデックスを保持する変数は、それだけです(実際には、特定の配列がアドレス空間であるCでは実際に同じです)。これにはポインター演算は必要ありません。
これは、単に高レベルの抽象化を選択することで物事を把握しやすくなることを説明するためのものです。
編集:そして、タイピングに関しては、静的に型付けされた言語を好みます。そして、エントリーレベルのプログラマーは型の概念(抽象概念)を明確に理解する必要があると思います。