Недостающее звено экономики Николай Непейвода
На переднем крае компьютинга диагностировано объективное исчерпание технических возможностей
В связи с тем, что на переднем крае компьютинга диагностировано объективное исчерпание технических возможностей, возникают вопросы о том, что будет дальше и в области железа, и в области программирования?
Уже сейчас для суперкомпьютеров на гибридной базе (процессоры разного типа, работающие в одном устройстве: сеточные, видео, для быстрого поиска информации) программирование на клонах С++ с дополнительными возможностями ручного распараллеливания и указаний об укладке программы на процессоры становится мучительным мазохистским процессом. Но все попытки что-то изменить наталкиваются на «агрессивное невежество» (термин не мой) программистов.
Таким образом, еще раз подтверждается диагноз: человек, который изучал в вузе языки программирования, а не концепции информатики, ничего нового в жизни уже знать не пожелает. Он будет добавлять чисто технические сведения о конкретных инструментах, но работать тем же топором, который ему дали.
Но намечается еще более радикальный поворот: переход и на уровне аппаратуры, и на уровне алгоритмики, и, соответственно, на уровне программирования от численного моделирования к структурному. При таком подходе программа становится алгебраической структурой. и данные нечисленными. В докладе будут показаны элементарные, но полностью выходящие за рамки традиционной парадигмы, примеры алгебраических программ
. Возникает вопрос: может ли человек, которого учили по традиционной схеме, быть переучен на структурное алгебраическое описание систем и программирование? Почти никогда.
И причина здесь не только в курсах программирования. Само фундаментальное математическое образование здесь должно быть иным, о чем я уже неоднократно говорил. Оно должно базироваться на алгебре и логике.
Возникает вопрос: а как же совместить фундаментализацию с катастрофическим падением уровня студентов? (Добили-таки школьное образование и добивают вузы). Ответ прежде всего в том, что на самом деле эта ситуация явилась вызовом для нашего привычного стиля изложения фундаментальной науки и прикладных аспектов. Если мы выживем в ней, то придется находить новые способы подачи и того, и другого. И прежде всего необходимо тесно увязывать курсы друг с другом и давать не сумму начитанных сведений, а строго отобранный базис, на который можно затем проектировать множество новых знаний.
А искусство проекции нужно тоже отрабатывать сразу же: показывая самые абстрактные вещи во взаимосвязи с конкретными, а когда рассказываются конкретные, сразу же давая несколько вариантов их представления, чтобы отучить от зашоренности взгляда. Таким образом, нужны новые фундаментальные и прикладные курсы, причем базисные курсы ни в коем случае не должны привязываться к конкретике традиции, зато к конкретике жизни и ее многообразию. Скажем, программировать лишь на С++ или Java - формировать тех, кто никогда не сможет и не захочет думать иначе, как в терминах битов, команд и последовательных процессов. Поэтому очень полезный опыт на первом же курсе был бы переписывание практически всех программ на языках разных стилей (и заодно показ того, когда получается уродливо и не стоит впихивать программу в другую парадигму).