January 20th, 2008

bird

Накладочка

        - А ведь это так просто... Ведь о чем бы ты ни спросил меня, это        
   всегда будет один и тот же вопрос. Люди вообще хотят знать тайны. Тайны      
   бывают разными. Но там, в глубине души, каждый всегда задает себе            
   только один вопрос. Только один. Человек жаждет знать. Раскрывать            
   тайны. Но никогда не знает, спасет его полученное знание или погубит...      
                                                                                
        Ким прикрыл глаза и кивнул самому себе.                                 
        - Теперь я вспомнил.                                                    
        Пронзительный холод вошел в него. Холод, страх и тоска. Только во       
   сне простые, совсем нестрашные слова могут открыть душу для холода,          
   тоски и страха.                                                              
                                                                                
        - Я пришел, чтобы спросить: "чем сделает меня Тайна?"                   
        - Теперь ты это знаешь, - ответил ему человек у костра.


На этих словах лаптоп торжественно вырубился. Конечно, материалист скажет, что виноват выпавший шнур питания...
bird

Об обучении программированию [4]

А вот более формализованное и расширенное описание того тезиса, с которого началась данная тема.


Сложность - основная проблема программирования; связана с самой его природой; можно надеяться на её понижение для освоенных классов задач... Первый источник сложности в программировании - так называемый семантический разрыв - разрыв между уровнем и характером элементарных объектов и операций, с одной стороны, и потенциально возможных услуг - с другой. Иными словами, это проблема согласования масштаба - ювелирными инструментами предлагается сооружать города... Занимаясь определённым классом услуг (задач) , можно стремиться выделить характерный именно для этого класса набор элементарных объектов и операций, построить соответствующий исполнитель (аппаратным или программным способом) и программировать на таком более подходящем исполнителе. Фактически это означает создать адекватный выбранному классу услуг язык программирования. На практике это самый распространённый способ борьбы со сложностью и одновременно основная причина роста проблемно-ориентированных языков... В качестве второго источника сложности в современном программировании следует назвать незнание компьютером реального мира. Лишённый необходимых знаний, компьютер не может не только скорректировать неточно указанные в программе действия, но и проинформировать об отклонениях от направления на цель работы. Традиционное для компьютеров управление посредством указания действий, а не целей требует учета мельчайших нюансов всех обстоятельств, в которых может оказаться исполнитель в процессе предоставления нужной услуги...

Важнейшим средством борьбы с семантическим разрывом служит аппарат абстракции-конкретизации, имеющийся в том или ином виде в любом языке программирования... Важнейшим средством борьбы с незнанием реального мира служит аппарат прогнозирования-контроля...


(источник)

Интересно получается - с одной стороны, интерес к подобной тематике достаточно явно коррелирует с лагерем "противников" текущего мэйнстрима сред исполнения и языков разработки. В то же время противоположная группа - "практики" ведут себя как викинги или янычары классического периода: забирая людей, они не только ничего не дают в теоретическом плане, но и наоборот - уничтожают рассадники всего, что непохоже на святую троицу современной практики C++/Java/C#.

Тотальное сужение кругозора обучаемых за счёт концентрации на мэйнстриме - фактор, который должен оказывать очень существенное отрицательное влияние на уровень обучения.