Я думаю, що "мова сценаріїв" - це жахливе слово, яке є надзвичайно застарілим або в кращому випадку відповідає класу мов, що належать до домену. Ваш вчитель просто вирівнює все, що йому, очевидно, не вистачає розуміння щодо осі зла.
Доцільне розмежування полягає в тому, що між мовами високого рівня та мовами низького рівня або між типово типовими та динамічно типізованими, які є справді ортогональними.
Assembler є динамічно типізованим низьким рівнем (якщо мова про типи взагалі має сенс), C статично набраний низьким рівнем, динамічно набраний Ruby високого рівня, статичний набір Haskell - високий. Java не є ні статичним, ні високим, ні низьким рівнем, а C ++ - статичним і типовим. І так далі.
Обговорення може бути лише тим, які парадигми більше підходять програмісту початкового рівня.
Я впевнений, що програмування на низькому рівні, ймовірно, не так. Це могло бути, колись на початку 90-х, коли ви могли насправді отримати цікаві результати в розумний час.
Але програмування живиться пристрастю. Пристрасть живиться нагородами. Тому програмістам початкового рівня слід починати з інструментів нагородження. Інструменти низького рівня вже не приносять користі, оскільки існує величезне море інструментів високого рівня, які за частину часу отримують такий же результат.
Мислення людини абстрактне. Коли ми вчимося розуміти світ, ми робимо це за допомогою грубозернистих абстракцій і вникаємо в деталі за потребою.
Щоб дитина зрозуміла своє оточення, ви не збираєтесь викладати її математиці, то фізиці, то хімії, то біології, то історії, соціології та філософії. Ви даєте йому дуже просту модель світу, щоб впоратися і сама по собі довго буде проходити повз неї, нескінченно викликаючи на вас запитання, коли будете молодими і повністю заперечуєте ваш авторитет пізніше.
Саме так ми думаємо. Людський мозок може обробляти лише обмежену кількість інформаційних "одиниць", але ступінь абстрактності мало має значення в квантуванні інформації. Наприклад: прочитати нам вираз '34 * 75 'простіше для нас, ніж обчислити його, тоді як для комп'ютерів - навпаки. Розпізнати (і тим самим абстрактно) купу чорних пікселів у чітко викладеній лінії, яку потім можна розпізнати (і тим самим ще раз абстрагувати) окремою цифрою - велика робота.
Бабуся розуміє ідею відкриття файлу. Однак вона не має розуміння під цим рівнем. І відверто кажучи, якби їй довелося це навчитися, спочатку вивчивши внутрішню роботу апаратури та операційної системи, а що ні, вона ніколи б не потрапила туди.
Там багато людей, які надмірно ускладнюють речі, оскільки їх ніколи не вчили мислити чітко, лаконічно і, отже, елегантно вирішуючи, але витрачали занадто багато часу на роздуми з обмінними деталями низького рівня та вирішення проблем проти них. Навчити людей мислити як комп'ютери - це найгірший підхід до програмування.
Значення програмування полягає в пошуку рішення проблеми. Виявлення цього коду справді є більш тупою, механічною задачею, і його слід просто виконувати за допомогою будь-яких інструментів.
О, і не хвилюйся, що не зрозумів покажчиків. У мене в тому ж віці була приблизно однакова проблема. Проблемою тут є також відсутність абстракції. Класично ви дізнаєтесь про покажчики з якоїсь книги С і, коли ви намагаєтесь їх зрозуміти, це йде рука об руку з розподілом пам’яті, а отже, з пам’яттю стека та купи тощо. Абстрактне поняття за покажчиками - це непрямість. Змінна, що містить індекс у певному масиві, - це саме те (насправді це справді те саме в C, де конкретний масив є вашим адресним простором), і для цього вам не потрібна арифметика вказівника.
Це просто призначено для ілюстрації, що вибір високого рівня абстракцій полегшує розуміння речей.
EDIT: і коли мова заходить про введення тексту, я віддаю перевагу мовам, які мають статичний тип. І я думаю, що програмісти початкового рівня повинні чітко розуміти поняття типів (яке є абстрактним).