четверг, 19 января 2017 г.

Приход в сознание

Проблема сознания — самая сложная в науке: ученые не могут понять, откуда оно у нас берется и зачем вообще нужно
...
 технический директор Google Рэй Курцвейл еще в 2006 году опубликовал книгу «Сингулярность рядом: когда люди превзойдут свою биологию», где рассказывал о практических возможностях копирования нашей личности на цифровые носители. А несколько лет назад он даже дату назвал: к 2045 году в мире появится первая цифровая личность — точная копия содержимого мозга, принадлежащего живому человеку, причем копия, способная мыслить и чувствовать. Идею вовсю популяризирует Голливуд — в фантастическом фильме «Превосходство» герой Деппа, убитый террористами, обретает надежное пристанище на новом носителе — внутри Всемирной сети, откуда продолжает любить жену и бороться за светлое будущее для всего мира.  

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

понедельник, 2 января 2017 г.

«Мир есть совокупность фактов, а не вещей»: Витгенштейн и операционно-ориентированное программирование

За каждым методом бизнес-логики стоит факт мира, который этот метод (чаще не в одиночку) моделирует. Факты программирования – это операции: дальше будем называть их так. Делая метод членом класса, ООП требует от нас привязать операцию к объекту, что невозможно, потому что операция – это взаимодействие объектов (двух и более), кроме случая унарной операции, чистой рефлексии. Метод ВыдатьЗарплату (PaySalary) может быть отнесен к классам Сотрудник (Employee), Касса (Cash), БанковскийСчет (Account) – все они равнозначны в праве владения им. Дилемма о расположении методов сопутствует всему процессу разработки: неловкое ее разрешение может оказаться критичным и даже фатальным.

В книгах по программированию честные авторы стыдливо признают, что «объекты – это как бы не совсем объекты», а ООП – всего лишь способ организации кода, а не механизм моделирования. Но все дело том, что «мир есть совокупность фактов, а не вещей» – отсюда принципиальная неспособность построить адекватную модель, применяя ООП в том виде, как этого требуют писатели учебников. Важно понять: в коде возможно моделировать мир, но атомами модели должны стать факты, а не объекты.

Оказавшись два года назад в мире разработки ПО, я с ужасом осознал, что тут до сих пор царит Аристотель: ООП – прямое порождение его философии. Этот одиозный мыслитель придумал флогистон для химиков, движущую силу для физиков – да что там говорить! — приложился к каждой из крупных дисциплин. История европейского прогресса – это история преодоления Аристотеля. Науке он принес больше зла, чем вся Святая инквизиция. Две тысячи лет потребовалось нашим ученым, чтобы затереть следы его «Физики». ООП – последнее пристанище его мрачной тени. Встречаясь с ним здесь — в ядре самых передовых технологий — хочется взять античный стилус стимулус (так в Риме называли палку погонщика скота) и загнать злобного грека обратно в его каменные склеп, как это давно уже сделали все остальные.