Я думаю, что «язык сценариев» - ужасное слово, которое чрезвычайно устарело или в лучшем случае подходит для класса предметно-ориентированных языков. Ваш учитель просто выравнивает все, что ему явно не хватает понимания, в ось зла.
Разумное различие заключается в том, что между языками высокого уровня и языками низкого уровня или между статически и динамически типизированными языками, которые действительно ортогональны.
Ассемблер имеет низкоуровневую динамическую типизацию (если говорить о типах вообще имеет смысл), C - низкоуровневая статически типизированная, Ruby - высокоуровневая динамически типизированная, Haskell статически типизированная. Java не имеет ни высокого, ни низкого уровня, статически типизированного, C ++ - и высокого, и низкого уровня, статически типизированного. И так далее.
Можно только обсудить, какие парадигмы больше подходят программисту начального уровня.
Я совершенно уверен, что программирование на низком уровне, вероятно, не таково. Возможно, это было когда-то в начале 90-х годов, когда с его помощью можно было получить интересные результаты в разумные сроки.
Но программирование подогревается страстью. Страсть питается наградами. Поэтому программисты начального уровня должны начинать с полезных инструментов. Низкоуровневые инструменты больше не приносят пользы, потому что есть огромное множество высокоуровневых инструментов, которые дают вам тот же результат за короткое время.
Человеческое мышление абстрактно. Когда мы учимся понимать мир, мы делаем это с помощью очень грубых абстракций и углубляемся в детали по мере необходимости.
Чтобы ребенок понимал окружающую среду, вы не будете учить его математике, физике, химии, биологии, истории, социологии и философии. Вы даете ему очень простую модель мира, с которой будете справляться, и будете долго пытаться преодолеть его, бесконечно задавая вопросы, когда будете молоды, и впоследствии полностью отрицать свой авторитет.
Вот как мы думаем. Человеческий мозг может обрабатывать только ограниченное количество информационных «единиц», но степень абстрактности не имеет большого значения при квантовании информации. Например: чтение выражения «34 * 75» для нас проще, чем его вычисление, тогда как для компьютеров все наоборот. Распознать (и тем самым абстрагировать) группу черных пикселей в волнистую линию, которую затем можно распознать (и тем самым еще раз абстрагировать) как отдельную цифру, - это огромный труд.
Моя бабушка понимает идею открытия файла. Однако у нее нет понимания ниже этого уровня. И, честно говоря, если бы ей пришлось изучить это, сначала изучив внутреннюю работу аппаратного обеспечения и операционной системы, а что нет, она бы никогда туда не добралась.
Есть много людей, которые слишком усложняют вещи, потому что их никогда не учили думать с точки зрения ясных, лаконичных и, тем самым, элегантных решений, но они слишком много времени удосужились обмениваться деталями низкого уровня и решать возникающие проблемы. Обучение людей мыслить как компьютеры - худший из возможных подходов к программированию.
Ценность программирования заключается в поиске решения проблемы. Выражение его в виде кода на самом деле является более скучной, механической задачей, и ее следует просто выполнять с использованием любых подходящих инструментов.
О, и не волнуйтесь о том, что не поняли указатели. У меня была примерно такая же проблема в том же возрасте. Проблема здесь также заключается в отсутствии абстракции. Классически вы узнаете об указателях из какой-то книги на C, и пока вы изо всех сил пытаетесь их понять, это идет рука об руку с распределением памяти и, следовательно, со стеком, кучей памяти и так далее. Абстрактная концепция указателей - косвенное. Переменная, которая содержит индекс в конкретном массиве, является именно этим (на самом деле это действительно то же самое в C, где конкретный массив - это ваше адресное пространство), и вам не нужна арифметика указателей для этого.
Это просто для иллюстрации того, что выбор высокого уровня абстракций делает вещи намного проще для понимания.
РЕДАКТИРОВАТЬ: и когда дело доходит до набора текста, я предпочитаю статически типизированные языки. И я думаю, что программисты начального уровня должны четко понимать концепцию типов (которая является абстрактной).