Как стать автором
Обновить
19
0
Алексей Воропай @OleksiiVoropai

BackEnd разработчик

Отправить сообщение

Об этом можно догадаться по намекам в конце статьи. Кроме того, такое продолжение хорошо вписывается в архетипический сюжет духовного поиска :)

Выскажу свое мнение о “нелогичности” иудео-христианского наратива  и проблеме неверия.

Мы понимаем веру как признание чего-либо истинным, независимо от фактического или логического обоснования. И переносим это определение и на веру в Бога. А не самом деле, это не правильное понимание христианской веры. 

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

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

И вот на этапе признания авторитета Бога и возникает основная проблема, не каждый готов убрать себя и поставить на первое место в своей жизни Бога и его волю. И основная причина неверия не в том, что человеку не хватает доказательств существования Бога, а в желании самому определять, что есть добро и что есть зло, и к чему стремиться в этой жизни. 

Мир устроен так, что происходящее в нем можно объяснить как с позиции существования Бога, так и Его отсутствия. Поэтому некоторые из тех, кто понимает, что у признания существования Бога есть вполне четкие логические последствия, предпочитают избрать для себя отрицание этого факта, чтобы избавить себя от этого выбора и переживаний по поводу его последствий.

Похоже буддийское мировоззрение автора вступило в противоречие с его интуитивным пониманием мира:

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

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

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

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

И проблема не в логических построениях, они как раз корректны и красивы. Проблема в аксиомах, в самой основе буддийского учения. Как было верно замечено автором, оно не предлагает никакой позитивной повестки. Буддийский уход от страданий просто означает угасание интереса к жизни. 

Автор не соглашается с этим и пытается это исправить, провозглашая себя богом, как источником смысла, правды и любви. Боюсь, что это попытка только разрушит стройность и красоту теории, не решив при этом личной экзистенциальной проблемы автора. Смыслы, сгенерированные человеком, как были так и останутся субъективными, они никогда не станут объективными и универсальными даже для их автора. Смысл может стать объективным и универсальным только если их источник является внешним по отношению к людям и действительно обладает авторитетом. Деятельная любовь и добрые дела это очень хорошо и правильно. Но человек по природе эгоцентричен, он ждет отдачи от своих действий. В нашем несправедливом и равнодушном мире требуется очень много сил и абсолютно важная цель, чтобы изо дня в день продолжать ити по пути правды и любви. 

Уважаемый @SergioShpadi, спасибо за эту и предыдущие статьи, они заставляют задуматься о многих интересных и важных вещах. 

Я надеюсь, что Вы продолжите свои поиски и рано или поздно найдете смысл жизни. Но думаю, что для этого придется найти другое основание для мировоззрения, выяснить, что действительно Вас привлекает в жизни, что Вы действительно в ней цените и отталкиваясь от этих ценностей выстроить новое мировоззрение. Логика и философия это хорошо, но они не смогли сделать Вас счастливыми.

Как всегда, интересная статья, заставляющая задуматься и по иному взглянуть на мир. Но должен заметить, что христианская теология посвящена совсем другим проблемам.

Да, в Библии можно найти некоторые обрывочные философские идеи об устройстве мира, развить из них идею о троице, а затем попытаться сопоставить ее с трансцендентным началом, математикой и квалиа. 

Но главный смысл христианского учения не в этом. 

Библия посвящена не той математике, на которой основан физический мир, а социальной “математике”, на которой должны строиться отношения между людьми - моральному закону любви и заботы о ближнем. И именно эта “математика” раскрывается во всех книгах Библии, а не только во вступлении к одному из Евангелий. 

Кроме того, в Вашу интерпретацию Троицы не вписывается идея живого Бога, Бога как личности. С которым можно вступить в контакт и общение, выстроить взаимоотношения, который управляет жизнью человека и всем ходом истории. А это тоже одна из ключевых идей, без которой и Троица и христианская теология теряет всякий смысл.

Об этом мы можем в 14 стихе Евангелия от Иоанна:

И Слово стало плотию, и обитало с нами, полное благодати и истины; и мы видели славу Его, славу, как Единородного от Отца.

Как всегда интересная статья, спасибо.

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

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

Мои познания в восточной философии очень поверхностны, я не знаю, что она говорит по этому поводу. Но авраамические религии утверждают, что еще до создания мира существовал Логос, который и был положен в основу нашего мира, и этот Логос и есть Бог. А человек был создан Богом по своему образу и подобию, поэтому он и способен познать этот Логос. 

Верно ли оно для тебя, если опираться лишь на ответ твоей интуиции - твоего "внутреннего Бога"?

Просто следовать интуиции недостаточно, я должен сознательно рефлексировать свои желания, мотивы и причины поступков. И пытаться исправить их, если они не соответствуют заповедям.

Правда - это не список правил и законов, правда - это внутреннее чувство, не обработанное твоими текущими убеждениями, учениями, знаниями, а также не опирающееся на твои текущие принципы.

Таким внутренним интуитивным чувством является наша совесть. Но кроме нее правда также выражена и формально в виде заповедей.

Можно сказать, что Правда существует объективно - это Закон Божий. У нас есть внутреннее чувство - совесть, которая подсказывает нам, действуем ли мы в соответсвтии с Законом Правды или нет. А также Бог в Священном Писании выразил нам Закон словами и дал некоторые примеры его применения в жизни.

Не знаю как для остальных религий, но для христианства это утверждение не верно. Цель жизни христианина не в том, чтобы просто траслировать идеи, полученные от внутреннего Бога, не пытаясь в них разобраться или логически обосновать.

А скорее в том, чтобы изменить свою внутреннюю систему ценностей и мотивации, отбросив свои эгоистичные желания и страсти и заменив их на желание жить в соответствии с Божьими заповедями. Главной заповедью является заповедь любви к Богу и людям, она является как бы ключем к пониманию остальных заповедей, которые логически выводятся из главной. Правильное понимание Священного Писания и заповедей очень важно, так что его изучение, в том числе логический анализ, вполне приветствуется.

Цель человека не просто транслировать полученные от внутреннего Бога идеи, а скорее самому в моральном плане быть похожим на Бога, максимально приблизиться к Нему.

Проблема совмещения императивного и декларативного программирования, не столько в синтаксисе, сколько в модели вычислений. Например, в основе движка логического вывода лежит поиск с возвратом, при котором перебираются разные решения и один и тот же код может вызываться для разных ветвей поиска. Если результат вычисления этого кода зависит от значения внешней переменной или поля объекта, то может получиться, что в разных ветвях поиска получится разный результат, что может сломать логику поиска.

Например, создатели языка Oz/Mozart пытаются решить эту проблему оборачиванием переменных в специальную структуру под названием Cell и заменой стека вызовов функций древовидной структурой под названием Computational Spaces.

А Вы знакомы с языками логическо-функционального программирования, такими как Curry или Mercury? Мне кажется, они близки к тому, что Вы хотите предложить. Они позволяют совмещать описания функций и логических конструкций, а также в определенных случаях логически выводить входные аргументы функции, если известен результат ее вычисления.

Такие конструкции как

(условие1) -> {действие1} (условие2) -> {действие2} (условие3) -> {действие3} -> {действие_иначе};

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

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

Формальное комбинирование подходов, такое как упомянутые ключевые слова для ООП и SQL с императивными командами, несомненно возможно. Но не стоит усилий в силу избыточности.

Совмещение SQL с императивными командами давно стало промышленным стандартом - PL/SQL

Интересно, умеет ли язык работать с рекурсивными логическими определениями, умеет ли он эффективно выполнять запросы или просто транслирует логический код в SQL, и чем он отличается от Datalog.
Обе точки зрения правильные и взяты из жизни :)
В сложном технологическом бизнесе правильным будет вкладывать деньги в команду, оптимизировать решение, проектировать его с учетом масштабирования и т.п.
А мелком и среднем достаточно заказать на стороне сайт-визитку или приложение для учета чего-нибудь. Решение будет быстрым, дешевым и неоптимальным. Проще потратиться на дополнительное оборудование, чем тратить время и деньги на высокооплачиваемых разработчиков (попробуй их еще найди) и разработку сложного специализированного решения.
Не совсем так, многое зависит от проекта и квалификации разработчиков. В сложных проектах могут использоватся менее эффективные языки и фреймворки, например, PHP который будет уступать С++ по производительности. Но при этом все равно оптимизируются узкие места, структуры данных и алгоритмы на уровне приложения, работа с базами данных и т.п. Сильные разработчики хорошо понимают возможности и ограничения своих инструментов.
Хотя, конечно, много примеров и обратного. Людей в этой области работает много, и далеко не все из них достаточно профессиональны.
Так что скорее web разработка специфична в плане вольности обращения с ресурсами.

Да, согласен. Уже начинаю забывать, что одним вебом программирование не ограничивается.
Тут в одном теге несколько имен (осноовное и дополнительные), несколько паспортов, которые надо по шаблону паспорта РФ проверить и если попадает, то распарсить на номер, кем и когда выдан и т.п.

Там еще парсинг адресов может быть с выделение города, улицы, дома, квартиры и т.п. со всякими возможными вариациями.

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

У нас разработка ведется на достаточно низкоуровневых (с точки зрения степени интеграции логики) языках.

Это скорее специфика платформы, построенной на суперсерверах. В WEB проектах чаще масштабируют приложение на много дешевых серверов. Аренда сервера на AWS будет стоит около 1000$ в год. Это приблизительно зарплата за 2 дня среднего разработчика из США. Если удастся повысить скорость разработки хотя бы процентов на 10, то это будет иметь экономический смысл. Во-первых, можно сэкономить на количестве разработчиков, а во-вторых быстрее вывести продукт на рынок (что для бизнеса может быть гораздо важнее).
И да. Если ваша деклартивная версия 3000 тких записей будет грузить секунду, а моя императивная полсекунды, то на прод пойдет моя. Без разговоров. Это даже не обсуждается. А тем паче, если загрузка процессора по PEX у моей ниже будет.

Понимаете, мы решаем задачи бизнеса. А задача бизнеса — это не красивый код. А эффективная работа. На красоту кода им плевать.

Тут я с вами не соглашусь. Скорость разработки и легкость поддержки тоже важна для бизнеса. Часто бывает, что выгоднее потратиться на вычислительные ресурсы, чем увеличивать штат разработчиков.
Спасибо за комментарии! Эта дискуссия была для меня полезной.
В одной из моих задач (как раз сейчас в работе) требуется парсинг XML весьма сложной структуры (вложенные друг в друга массивы, русские тэги, куча необязательных элементов...)

А потом еще достаточно хитрый алгоритм раскладки всего этого по 9-ти таблицам с анализом того, что там уже есть, сравнением, определением необходимых изменений, переносом старых версий данных в архивные таблицы (для возможного последующего отката).


Вот это будет отличным примером!
Предположим, что у нас есть документ со списком товаров, которые описываются набором атрибутов. Один из атрибутов — это информация о наличии товара у поставщиков, представляющая собой массив. Элементом массива будет объект, включающий айди поставщика, количество товара и цену. А в некоторых случаях вместо количества — список доступных размеров одежды или обуви, внутри которого уже количество товара:
<products>
<product id="...">
  <name>...</name>
  <description>...</description>
  <providers>
    <provider id="...">
      <price>
        <value>...</value>
        <currency>...</currency>
      </price>
      <amount>...</amount>
    </provider>
    <provider id="...">
      <price>...</price>
      <sizes>
        <size>
          <value>...</value>
          <amount>...</amount>
        </size>
      </sizes>
    </provider>
....

Предположим, что необходимо извлечь данные о количестве товара у поставщиков, сравнить их с данными в БД и синхронизировать изменения.

Для начала опишем структуру документа в вие набора понятий. Предположим, что данные из файла представлены понятием xml_products:

concept newProductProviders (id=p.id, providers=p.providers) from xml_products p;

concept newProductAmount
(productId=pv.id, providerId=pd.id, amount=pv.amount)
from newProductProviders pd, {p.providers} as pv
where defined(pv.amount);

concept newProductSizeAmount
(productId=pv.id, providerId=pd.id, size=s.value, amount=s.amount)
from newProductProviders pd, {p.providers} as pv, {pv.sizes} as s
where defined(pv.sizes);


С другой стороны у нас есть таблица в БД, в которой хранятся текущие размеры товаров и их количество. Представим ее содержимое в виде понятия:

concept existingProductSizeAmount
(id, productId, providerId, size, amount)
by DBTable(connProvider, "product_size_amount");


Теперь можно сравнить данные из документа и БД:

//соединяем оба множества с помощью left join
concept productComparison (new=n, old=o)
from newProductSizeAmount n, optional (existingProductSizeAmount e where e.productId=n.productId and e.providerId=n.providerId and e.size=n.size) o;

//объекты для вставки в БД
concept productSizeAmountToInsert is c.new
with lastUpdated=CUR_DATE()
from productComparison c where not defined(c.old);

//объекты для обновления в БД
concept productSizeAmountToUpdate is c.old
with lastUpdated=CUR_DATE(), size=c.new.size
from productComparison c where defined(c.old);

//объекты для удаления из БД
concept productSizeAmountToDelete is existingProductSizeAmount old
where old.lastUpdated<CUR_DATE();


Это была декларативная часть. А теперь императивная часть
//загрузить данные из XML файла
import xml_products from XML("products_amount.xml", "products");

//синхронизировать их с БД, например, с помощью того же понятия, которое загружало данные
//можно даже понятия передать в качестве аргументов, пусть они сами найдут нужные значения и/или сгененрируют SQL код на основе описаний понятий
existingProductSizeAmount.insert(productSizeAmountToInsert);
existingProductSizeAmount.update(productSizeAmountToUpdate);
existingProductSizeAmount.delete(productSizeAmountToDelete);


Таким должен быть код обработчика сообщения.
Я пока не готов подробно обсуждать эффективные алгоритмы всех этих преобразований. Я планирую позаимствовать их из таких фреймворков для in-memory data processing как Spark или BigQuery. Очевидно, что по эффективности они будут уступать SAX парсерам и ручной склейке данных. Но зато код гораздо короче, понятней и быстрее в разработке и поддержке.
Я тоже неоднократно сталкивался с подобными задачами, но если честно, решение их традиционным императивным способом всегда нагоняло на меня тоску.
В данном конкретном случае гибридный язык, над которым я работаю, будет скорей всего избыточным.
Но если бы приложение загружало бы одни сущности из базы данных, другие из XML документов, третьи из запроса к другому сервису в JSON формате, преобразовывало их в свой внутренний формат, затем фильтровало и склеивало вместе, то в этом случае мой подход помог бы описать всю эту бизнес логику более кратко и понятно.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность