Гениально! Я смотрю тут многие не поняли про что написано и давай хейт разводить. А смысл прост - писать просто настолько насколько можно. Выкинуть всё ненужное настолько - что бы программа выполняла только то что от неё требуют.
До этой мысли приходишь только спустя годы или даже десятилетия программирования.
А всё от того что написав свой код, спустя месяц ты на него смотришь, и что бы понять что там происходит тратишь день, а не 10 минут. Я не говорю про чужой код.
В 99% случаях сложная иерархия классов на старте никому в последствии ненужна. А только будет доставлять неимоверный гимор в разработке. Опять же если проект растёт - то гораздо проще переписать уже устоявшуюся архитектуру с нуля, чем писать очередной костыль который будет бороться с изначально неправильной архитектурой.
И такой подход имеет свою особенность. Код становится выглядеть "примитивным". Отсутствуют наследования, инъекции, полиморфизм - да вообще всё. Любой новичок посмотрев на такой код сразу понимает как он работает.
Но как написали в статье: в "Гуглах" будут воротить нос.
Очень некорректно сравнивать флопсы процессоров и мозги. Если к задаче подойти в лоб и предложить человеку совершить хотя бы одну операция с плавающей точкой над 64 битном числе, то может оказаться что некоторым и часа не хватит. И наверно никто на земле не сможет держать скорость 1 флопс в секунду.
Феноменальная энерго эффективность мозгов кроется в низкой частоте "тактового генератора". Не помню точно но всякие альфаритмы это герцы.
Если взять чип с количеством транзисторов равным количеству нейронов и запустить на той же частоте что и мясные мозги - то получим такое же энергопотребление.
Вся красота мозгов - это колоссальный граф, т.е. огромное количество соединений (белое вещество мозга) которые соединяют прослойку нейронов (от 1 до 5 мм). Именно эта архитектура и показывает кажущуюся "колоссальную" вычислительную мощность мозгов. Но на самом деле - никаких вычислений там вообще нет. Архитектура эволюцией заточена под конкретные задачи. Абстрактная эмуляция внешнего мира. И работа с этой абстрактной моделью для предсказания "будущего". Например хищник поранившись об ежа - предсказывает на будущее увидев такого же ежа, что жрать его нельзя.
Современные процессоры же это эмуляция этого колоссального параллельного графа - последовательно. Имеется ввиду в программах текстовых моделей. Отсюда и киловатты потребляемой мощности.
Всё изменится когда появятся параллельные чипы. Где не будет АЛУ и всё что с ним связано.
Делали сервис linkin.link для внутренних нужд и есть пост пор это на хабре. На сайте был сокращатель ссылок. Домен красивый под него взяли. Ну что бы не на основном сайте висел. Плюс ещё куча функционала. Как показало время - этот сокращатель нафиг никому не нужен. Ну кроме мошенников. По этому просто тупо всё выпилили.
Посмотрите как работают ВСЕ процессоры. Там есть указатель команд. Регистр указывающий на текущую выполняемую команду процессора. И каждый такт этого регистр просто инкриминируется. Т.е. указывает на следующую команду. Т.е. программа выполняется последовательно.
Так устроены процессоры. А то что там Пролог или куча других языков программирования предлагают — это всего лишь абстракция. Которая всегда компилируется в последовательно выполняемые машинные команды. И это всегда надо иметь ввиду оперируя такими абстракциями.
И да есть всякие параллельные архитектуры. Но в каждой такой параллели всегда один закон — последовательное выполнение команд. Сразу напишу — есть команды которые оперируют адресом этого регистра. Команды ветвления.
В противовес этому существуют ПЛИС. Конечно сложная логика в ПЛИС подразумевает тактовый генератор и последовательное выполнение функций. Однако схемотехника ПЛИС подразумевает работу без генератора. Подали сигнал на вход — получили сразу на выходе. Разумеется с поправкой на скорость света.
По-моему ответ очевиден. И его используют 1000чи лет.
Сиди с утра до вечера и изучай науки. И будешь умнее (задействовать больше нейронов) чем неуч.
Или пей пиво с утра до вечера. Неиспользуемые нейроны организмом удалятся из мозга.
Пример. Люди которые не пользовались речевым аппаратом с детства (маугли) в возрасте теряли навсегда возможность говорить. Только язык жестов. Участок мозга отвечающий за речь попросту удалялся.
С зрением та же история. Слепой с рождения но прооперировав глаза в в взрослом состоянии то же не могут видеть как обычный человек.
количество нейронов у младенцев и взрослого человека
То сразу выдаст это:
В мозгу новорожденного 150-200 миллиардов (!!!) нейронов, в мозгу взрослого человека – в 2 раза меньше. Нейроны либо соединяются, формируя нейронные связи и укрепляя их, либо отмирают. В ваших руках и в руках людей, влияющих на развитие малыша – судьба большинства нервных клеток малыша
Если вы имеете ввиду что 95% нейронов находится в резерве и не участвуют в работе нейросети, т.е. никуда не подключены и никогда не активируются, то множественные исследования анализ энцефалограмма говорит об обратном.
Весь массив головного мозга активируется в то или иное время.
И вообще все нейроны в мозге в момент когда мозг только появляется и растёт имеют одну особенность. Каждый нейрон как дерево. И его дендриты как корневая система. Растёт хаотично. Нейрон может иметь десятки тысяч дендритов. И далее вся эта каша дендритов и аксонов соединяется хаотично. Что до куда доросло и соединилось в случайном порядке.
Поэтому младенцы такие… может даже и сознания не имеют. Чисто первобытные инстинкты. Т.е. участки головного мозга где формирование нейронов отвечает уже жёсткая структура заложенная в ДНК. А не неокортекс — с его каше- структурой.
Ну а далее в процессе жизни уже идёт настройка нейросети. Миллиарды аксонов отсыхают, миллиарды вновь прорастают.
И вот тут уже можно говорить о развитии мозга. Потому ка архитектура нейросети будет разная. Как её настроишь так и будет работать.
Поэтому о 95% работы мозга говорит не корректно.Можно говорить только об качестве настройки архитектуры нейросети.
Хотя в некотором виде вы правы. Замечено что у людей интеллектуалов бороздок в головном мозге после смерти больше чем у маргиналов. Однако это вроде связанно как раз с отмиранием нейронов в процессе жизни за ненадобностью. На старте у всех примерно одинаковое количество.
Ну и да большее количество нейронов не всегда преимущество. Его может обыграть более специализированная архитектура. У Эйнштейна был вполне обычный мозг.
Ну так мы же всего 5% мыслительных способностей используем
Это такая же информация, как и теория расщепления вселенных и прочего бреда.
Ваш мозг состоит из нейронов. Работа нейрона это его активация. Поверьте — вам не понравится если все ваши нейроны активируются в 1 момент. Хотя те кто переносил приступы эпилепсии — говорят что для них это было как полное отключение сознания.
Что бы ваше сознание работало "правильно" каждый нейрон должен активироваться тогда когда нужно. Согласно построенной карте нейросети.
Сколько не сталкиваюсь в обсуждении эксперимента с щелями — каждый раз одно и тоже. Много слов — что бы навести магию и мистику. И в результате получить ничего.
Почему никогда не обсуждают как устроен детектор. Вот реально — НИКОГДА.
Что вообще этот МИФИЧЕСКИЙ детектор из себя представляет?
А что если детектор в щели есть — но просто не включен, тупо провода, оптоволокно или ещё что там может быть, просто не подключены никуда. Что будет с дифракционной картиной?
И как вообще этот детектор работает? Может он тупо поглощает фотон, а потом излучает совершенно другой? А т.к. он будет переизлучён за щелями — собственно и получаем что и должны получить — никакой дифракции.
К вам никакой претензии не имею. Просто реально достало. 100 раз читаешь обсуждения и всегда одно и тоже. Магия, расщепляющаяся вселенная и прочий бред.
А вот то место где реально происходит "как бы" парадокс — детектор. Вот никто просто в упор это не видит.
Дошло до абсурда — детектор азм есть наблюдатель! А кто наблюдает — человек! Алилуя. Давай строить куча бредо-теорий.
но в общем то знать инструмент которым так или иначе пользуешься полезно
Так в том и вопрос и проблема одновременна.
Химера говорит на твоём языке. Я как программист понимаю химеру. Я понимаю математическую абстракцию реализованную в программе.
Но на практике часто тебе кидают чистую математику. Чистые математические абстракции написанные на "древнеарамейском" ))). На которые я смотрю и ничего не понимаю. И делаю вывод что я такое никогда не применял в программировании. И прекрасно без этого справляюсь.
Я не математик, но честно говоря не вижу ещё более простое математическое определение которое доказывало бы утверждение "от перемены мест слагаемых сумма не меняется."
А как символьные вычисления работают-то?
да вы правы. Я опустился до уровня процессора. И арифметически логического устройства.
Но никто не мешает сделать программу которая будет оперировать абстракциями, тупо пропускать через блоки if-else стринги и получать на выходе такой же стринг.
И только человек может этот стриг определить как математическую формулу.
Но в таком варианте сам компьютер как раз не оперирует математической формулой. В АЛУ она не участвует.
Компьютер просто одну картинку превращает в другую на выходе. И только человек интерпретирует эту картинку как формулу.
Проблема такой программы в том что на выходе она нам даст картинку-формулу. Но если на вход такой программы мы подадим число с миллионом цифр после запятой, то компьютер не сможет использовать эту формулу и получить результат в виде точного числа. Разумеется можно написать программу которая будет последовательно вычислять значения после запятой. Но она не может делать это до бесконечности.
Есть чистая математика. Но заставить её работать на компьютере не получится. Не работает процессор с математическими абстракциями. Вот и появляются промежуточные науки как натянуть сову на глобус как заставить работать математическую формулу в процессоре с приемлемой точность.
К какому разделу эта наука принадлежит? К математике? К программированию?
Собственно я строю свои различия математики и программирования основываясь на чистой абстрактной математике. Потому как различие между химерами… Там они стираются. Там программатика какая то.
Так же можно парировать что в общем то программа в общем служит часто одной цели
Ваша утверждение базируется на рассмотрении одной программы. И оно очевидно. Каждая конкретная программа будет делать только то что в ней запрограммировано, одна цель (цели), и не более.
Я же рассматриваю все программы и математические теоремы одновременно. И на этом базирую различие между этими классами.
Все программы могут делать что угодно каждая по отдельности. У них нету базового закона для всех сразу.
В то время как в математике этот закон есть. Вся математика предназначена для одной цели. Нахождение закономерностей. Нахождение любых закономерностей где угодно. Многие "сумасшедшие" математики придумывают свои вселенные со своими законами и ищут там математические закономерности.
Как бы выглядела вселенная в которой п равнялось бы 4? И подобное.
Математика это слишком широкое определение и, как видно, для каждого свое.
Да. И современное программирование это тоже от веба до mobile, от эмбедит до софта, от геймдева до квантмеха и ещё куча всего.
Собственно получаем две огромные кучи которые тут и там начинаю приравнивать друг другу, т.к. начинают сравнивать частности.
Я же, в дискуссии, пытаюсь предложить варианты различий всей кучи. Опять же дискуссия ради поболтать, не более )
Ну это аксиома. Т.е. недоказательные утверждения. Они настолько логичны что не требуют доказательств. Вообще все теоремы доказываются на основании других теорем. А вот начало этой доказательной цепочки это как раз аксиомы.
И да вы не докажете ваш пример "коммутативность сложения" а по простому "от перемены мест слагаемых сумма не меняется" с точки зрения математики. Математика говорит так есть и всё тут. Опять же с помощью чисел вы можете доказать только какой то предел. Вплоть до бесконечности не получится.
Зачем тут бесконечная точность?
Про бесконечную точность я говорю исходя из того что математика предоставляет нам формулы. Которые оперирую переменными. Подставляй любое число (хоть бесконечность), и формула выдаст правильный ответ. Ну или должна выдать.
Программирование в свою очередь оперирует с конкретными числами. И предел точности работы программы будет всегда в пределе точности этих чисел.
Я просто декламирую отличие математики от программирования. А то тут в процессе дискуссии постоянно поднимается вопрос про их тождественности.
Вот я и ищу фундаментальные отличия.
Наверно это вырвано из контекста, но приведённая в данном виде вызывает некоторое недоумение.
Честно говоря я не уверен что на земле существует реальная программа доказывающая теорему. Ну т.е. последовательно выполнение операторов процессора.
Потому как программа это компьютер. А он работает с переменными конечной точности.
Математические доказательства никогда не оперирует числами, а оперирует абстракциями в виде переменных. x,y и прочее.
Все операции проводятся над этими абстракциями что бы получить в конечном счёте математическую формулу, которая может обеспечить бесконечную точность. Т.к. не оперирует цифрами, а абстракциями.
Кстати это ещё одно фундаментальное отличие программы от математики. Программа всегда будет выполнятся на процессоре и оперировать с переменными конечной точности.
Математика всегда будет оперировать абстракциями бесконечной точности. Т.к. точности как таковой у них и не будет. Нет чисел, нет точности либо точность бесконечная.
Процессоры не работают с абстракциями, они работают с битами.
Что то я дописался до того, что доказательство теорем с многостраничной записью это есть программа. Если рассматривать каждый шаг доказательства как шаг программы.
Уроборос какой то )))
Ладно добавим ещё одно фундаментальное отличие, но уже математики.
Любое доказательство теоремы, собственно любая математическая единица служит только 1 цели. Нахождение природной зависимости в числах. Фундаментального закона. Свойства нашей вселенной или вообще всех вселенных. Придумайте как сами это назвать.
Целью же программы может быть абсолютно любая. Или вообще без цели.
Можно долго спорить где и как пересекаются программирование и математика. С разных углов они либо похожи, либо одно и тоже, либо разные вещи.
Однако я хотел бы обозначить одну фундаментальную особенность чем программирование отличается от математики.
И это:
Как не странно результатом программирования будет программа.
И главная особенность программы — это то что она состоит из последовательно выполняющихся шагов.
Результатом математики будет теорема и следующая из неё формула.
Отсюда любой шаг программы — может быть как раз математической, формулой. Т.е. шаг может быть как раз той самой математикой.
Получается что программирование может включать в себя математику как шаг программы. В тоже время по этому принципу математика не будет является программированием.
Опять же шаги это как правило вызов готовых функций, в которых и реализована математика. Поэтому программист напрямую не работает с математикой а только с её результатами.
Это как например человек использует автомобиль, но это не делает его конструктором автомобилей.
И да. Оппонент сразу может придраться к моему определению математики. Мол простои использование теорем в качестве инструмента для получения результата. В данном случае такая писанина как не странно будет похожа на программирование. Только записанная на листе бумаге. Последовательное выполнение шагов с использованием формул теорем для получения конечного результата. Точно также как это бы делала программа.
Вы применили крайность. А крайности как правило не валидны.
Понятно что любой человек в той или иной степени оперирует каким то объёмом информации у себя в памяти. Иначе это и не человек вообще.
Вся разница в количестве и разновидности этой информации.
И программисту для выполнения работы требуется запредельное количество специфической информации. Это алгоритмы, коды, абстракции.
Так вот по моим наблюдением оперирование этой информацией для мозга чрезвычайно затратно. И если человеку не нравиться, т.е. нету дофаминовой поддержки, мозг сопротивляется максимально сильно.
И программисты со временем развивают свою нейросеть для работы с этой специфической информацией. Т.е. со временем, когда дофаминовая поддержка уже сводится на нет, мозг уже натренирован. и можно работать дальше без поддержки.
Вот вы привели другие примеры информации. Например есть люди которым легко даются языки. Или люди актёры, которые запоминают сценарий фильма, пьесы.
Они тоже тренируют свой мозг. И если это им нравится, то им легко даётся манипулирование информацией специфичного для себя класса.
Как я уже говорил много раз. Все способности — это желание изучать конкретную информацию. А уж что тебе нравится или нет — это уже матушка природа и батюшка геном решают.
Не знаю как это работает в голове. Но если долго работать над проектом где есть тысячи функций и если кликнуть в любое место проекта сразу будет понятно что и как тут работает. Видимо подгружается из памяти.
Одновременно в быстрой памяти смысла держать всё это нет. Однако пытаясь разобраться с алгоритмом в программе приходится одновременно держать в голове пару десятков функций. И в течении рабочего дня к этим десяткам прибавляются другие десятки, а уже ненужные выгружаются из головного кеша.
Часто находишься в состоянии когда в голову нужно загрузить ещё информации, но уже не можешь, смотришь на очередной код, а он расплывается перед глазами. После этого просто включаешь на пару минут какой нибудь развлекательный сайт. Даже не особо вчитывавшийся что там. Но это позволяет разгрузить кеш в голове. Потом переключаешься обратно на проект.
И да всё это относится к сложным проектам. В программировании есть куча задач линейных. Те же формошлёпства. Там подход линейный, мозг практически не загружается, и ты просто отдыхаешь на таких задачах.
Гениально! Я смотрю тут многие не поняли про что написано и давай хейт разводить. А смысл прост - писать просто настолько насколько можно. Выкинуть всё ненужное настолько - что бы программа выполняла только то что от неё требуют.
До этой мысли приходишь только спустя годы или даже десятилетия программирования.
А всё от того что написав свой код, спустя месяц ты на него смотришь, и что бы понять что там происходит тратишь день, а не 10 минут. Я не говорю про чужой код.
В 99% случаях сложная иерархия классов на старте никому в последствии ненужна. А только будет доставлять неимоверный гимор в разработке. Опять же если проект растёт - то гораздо проще переписать уже устоявшуюся архитектуру с нуля, чем писать очередной костыль который будет бороться с изначально неправильной архитектурой.
И такой подход имеет свою особенность. Код становится выглядеть "примитивным". Отсутствуют наследования, инъекции, полиморфизм - да вообще всё. Любой новичок посмотрев на такой код сразу понимает как он работает.
Но как написали в статье: в "Гуглах" будут воротить нос.
Очень некорректно сравнивать флопсы процессоров и мозги. Если к задаче подойти в лоб и предложить человеку совершить хотя бы одну операция с плавающей точкой над 64 битном числе, то может оказаться что некоторым и часа не хватит. И наверно никто на земле не сможет держать скорость 1 флопс в секунду.
Феноменальная энерго эффективность мозгов кроется в низкой частоте "тактового генератора". Не помню точно но всякие альфаритмы это герцы.
Если взять чип с количеством транзисторов равным количеству нейронов и запустить на той же частоте что и мясные мозги - то получим такое же энергопотребление.
Вся красота мозгов - это колоссальный граф, т.е. огромное количество соединений (белое вещество мозга) которые соединяют прослойку нейронов (от 1 до 5 мм). Именно эта архитектура и показывает кажущуюся "колоссальную" вычислительную мощность мозгов. Но на самом деле - никаких вычислений там вообще нет. Архитектура эволюцией заточена под конкретные задачи. Абстрактная эмуляция внешнего мира. И работа с этой абстрактной моделью для предсказания "будущего". Например хищник поранившись об ежа - предсказывает на будущее увидев такого же ежа, что жрать его нельзя.
Современные процессоры же это эмуляция этого колоссального параллельного графа - последовательно. Имеется ввиду в программах текстовых моделей. Отсюда и киловатты потребляемой мощности.
Всё изменится когда появятся параллельные чипы. Где не будет АЛУ и всё что с ним связано.
Делали сервис linkin.link для внутренних нужд и есть пост пор это на хабре. На сайте был сокращатель ссылок. Домен красивый под него взяли. Ну что бы не на основном сайте висел. Плюс ещё куча функционала. Как показало время - этот сокращатель нафиг никому не нужен. Ну кроме мошенников. По этому просто тупо всё выпилили.
Посмотрите как работают ВСЕ процессоры. Там есть указатель команд. Регистр указывающий на текущую выполняемую команду процессора. И каждый такт этого регистр просто инкриминируется. Т.е. указывает на следующую команду. Т.е. программа выполняется последовательно.
Так устроены процессоры. А то что там Пролог или куча других языков программирования предлагают — это всего лишь абстракция. Которая всегда компилируется в последовательно выполняемые машинные команды. И это всегда надо иметь ввиду оперируя такими абстракциями.
И да есть всякие параллельные архитектуры. Но в каждой такой параллели всегда один закон — последовательное выполнение команд. Сразу напишу — есть команды которые оперируют адресом этого регистра. Команды ветвления.
В противовес этому существуют ПЛИС. Конечно сложная логика в ПЛИС подразумевает тактовый генератор и последовательное выполнение функций. Однако схемотехника ПЛИС подразумевает работу без генератора. Подали сигнал на вход — получили сразу на выходе. Разумеется с поправкой на скорость света.
По-моему ответ очевиден. И его используют 1000чи лет.
Сиди с утра до вечера и изучай науки. И будешь умнее (задействовать больше нейронов) чем неуч.
Или пей пиво с утра до вечера. Неиспользуемые нейроны организмом удалятся из мозга.
Пример. Люди которые не пользовались речевым аппаратом с детства (маугли) в возрасте теряли навсегда возможность говорить. Только язык жестов. Участок мозга отвечающий за речь попросту удалялся.
С зрением та же история. Слепой с рождения но прооперировав глаза в в взрослом состоянии то же не могут видеть как обычный человек.
Если в гугле вбит фразу:
То сразу выдаст это:
Если вы имеете ввиду что 95% нейронов находится в резерве и не участвуют в работе нейросети, т.е. никуда не подключены и никогда не активируются, то множественные исследования анализ энцефалограмма говорит об обратном.
Весь массив головного мозга активируется в то или иное время.
И вообще все нейроны в мозге в момент когда мозг только появляется и растёт имеют одну особенность. Каждый нейрон как дерево. И его дендриты как корневая система. Растёт хаотично. Нейрон может иметь десятки тысяч дендритов. И далее вся эта каша дендритов и аксонов соединяется хаотично. Что до куда доросло и соединилось в случайном порядке.
Поэтому младенцы такие… может даже и сознания не имеют. Чисто первобытные инстинкты. Т.е. участки головного мозга где формирование нейронов отвечает уже жёсткая структура заложенная в ДНК. А не неокортекс — с его каше- структурой.
Ну а далее в процессе жизни уже идёт настройка нейросети. Миллиарды аксонов отсыхают, миллиарды вновь прорастают.
И вот тут уже можно говорить о развитии мозга. Потому ка архитектура нейросети будет разная. Как её настроишь так и будет работать.
Поэтому о 95% работы мозга говорит не корректно.Можно говорить только об качестве настройки архитектуры нейросети.
Хотя в некотором виде вы правы. Замечено что у людей интеллектуалов бороздок в головном мозге после смерти больше чем у маргиналов. Однако это вроде связанно как раз с отмиранием нейронов в процессе жизни за ненадобностью. На старте у всех примерно одинаковое количество.
Ну и да большее количество нейронов не всегда преимущество. Его может обыграть более специализированная архитектура. У Эйнштейна был вполне обычный мозг.
Это такая же информация, как и теория расщепления вселенных и прочего бреда.
Ваш мозг состоит из нейронов. Работа нейрона это его активация. Поверьте — вам не понравится если все ваши нейроны активируются в 1 момент. Хотя те кто переносил приступы эпилепсии — говорят что для них это было как полное отключение сознания.
Что бы ваше сознание работало "правильно" каждый нейрон должен активироваться тогда когда нужно. Согласно построенной карте нейросети.
Сколько не сталкиваюсь в обсуждении эксперимента с щелями — каждый раз одно и тоже. Много слов — что бы навести магию и мистику. И в результате получить ничего.
Почему никогда не обсуждают как устроен детектор. Вот реально — НИКОГДА.
Что вообще этот МИФИЧЕСКИЙ детектор из себя представляет?
А что если детектор в щели есть — но просто не включен, тупо провода, оптоволокно или ещё что там может быть, просто не подключены никуда. Что будет с дифракционной картиной?
И как вообще этот детектор работает? Может он тупо поглощает фотон, а потом излучает совершенно другой? А т.к. он будет переизлучён за щелями — собственно и получаем что и должны получить — никакой дифракции.
К вам никакой претензии не имею. Просто реально достало. 100 раз читаешь обсуждения и всегда одно и тоже. Магия, расщепляющаяся вселенная и прочий бред.
А вот то место где реально происходит "как бы" парадокс — детектор. Вот никто просто в упор это не видит.
Дошло до абсурда — детектор азм есть наблюдатель! А кто наблюдает — человек! Алилуя. Давай строить куча бредо-теорий.
Так в том и вопрос и проблема одновременна.
Химера говорит на твоём языке. Я как программист понимаю химеру. Я понимаю математическую абстракцию реализованную в программе.
Но на практике часто тебе кидают чистую математику. Чистые математические абстракции написанные на "древнеарамейском" ))). На которые я смотрю и ничего не понимаю. И делаю вывод что я такое никогда не применял в программировании. И прекрасно без этого справляюсь.
Вот тут написано что это аксиома.
Я не математик, но честно говоря не вижу ещё более простое математическое определение которое доказывало бы утверждение "от перемены мест слагаемых сумма не меняется."
да вы правы. Я опустился до уровня процессора. И арифметически логического устройства.
Но никто не мешает сделать программу которая будет оперировать абстракциями, тупо пропускать через блоки if-else стринги и получать на выходе такой же стринг.
И только человек может этот стриг определить как математическую формулу.
Но в таком варианте сам компьютер как раз не оперирует математической формулой. В АЛУ она не участвует.
Компьютер просто одну картинку превращает в другую на выходе. И только человек интерпретирует эту картинку как формулу.
Проблема такой программы в том что на выходе она нам даст картинку-формулу. Но если на вход такой программы мы подадим число с миллионом цифр после запятой, то компьютер не сможет использовать эту формулу и получить результат в виде точного числа. Разумеется можно написать программу которая будет последовательно вычислять значения после запятой. Но она не может делать это до бесконечности.
Есть чистая математика. Но заставить её работать на компьютере не получится. Не работает процессор с математическими абстракциями. Вот и появляются промежуточные науки
как натянуть сову на глобускак заставить работать математическую формулу в процессоре с приемлемой точность.К какому разделу эта наука принадлежит? К математике? К программированию?
Собственно я строю свои различия математики и программирования основываясь на чистой абстрактной математике. Потому как различие между химерами… Там они стираются. Там программатика какая то.
Ваша утверждение базируется на рассмотрении одной программы. И оно очевидно. Каждая конкретная программа будет делать только то что в ней запрограммировано, одна цель (цели), и не более.
Я же рассматриваю все программы и математические теоремы одновременно. И на этом базирую различие между этими классами.
Все программы могут делать что угодно каждая по отдельности. У них нету базового закона для всех сразу.
В то время как в математике этот закон есть. Вся математика предназначена для одной цели. Нахождение закономерностей. Нахождение любых закономерностей где угодно. Многие "сумасшедшие" математики придумывают свои вселенные со своими законами и ищут там математические закономерности.
Как бы выглядела вселенная в которой п равнялось бы 4? И подобное.
Да. И современное программирование это тоже от веба до mobile, от эмбедит до софта, от геймдева до квантмеха и ещё куча всего.
Собственно получаем две огромные кучи которые тут и там начинаю приравнивать друг другу, т.к. начинают сравнивать частности.
Я же, в дискуссии, пытаюсь предложить варианты различий всей кучи. Опять же дискуссия ради поболтать, не более )
Ну это аксиома. Т.е. недоказательные утверждения. Они настолько логичны что не требуют доказательств. Вообще все теоремы доказываются на основании других теорем. А вот начало этой доказательной цепочки это как раз аксиомы.
И да вы не докажете ваш пример "коммутативность сложения" а по простому "от перемены мест слагаемых сумма не меняется" с точки зрения математики. Математика говорит так есть и всё тут. Опять же с помощью чисел вы можете доказать только какой то предел. Вплоть до бесконечности не получится.
Про бесконечную точность я говорю исходя из того что математика предоставляет нам формулы. Которые оперирую переменными. Подставляй любое число (хоть бесконечность), и формула выдаст правильный ответ. Ну или должна выдать.
Программирование в свою очередь оперирует с конкретными числами. И предел точности работы программы будет всегда в пределе точности этих чисел.
Я просто декламирую отличие математики от программирования. А то тут в процессе дискуссии постоянно поднимается вопрос про их тождественности.
Вот я и ищу фундаментальные отличия.
Наверно это вырвано из контекста, но приведённая в данном виде вызывает некоторое недоумение.
Честно говоря я не уверен что на земле существует реальная программа доказывающая теорему. Ну т.е. последовательно выполнение операторов процессора.
Потому как программа это компьютер. А он работает с переменными конечной точности.
Математические доказательства никогда не оперирует числами, а оперирует абстракциями в виде переменных. x,y и прочее.
Все операции проводятся над этими абстракциями что бы получить в конечном счёте математическую формулу, которая может обеспечить бесконечную точность. Т.к. не оперирует цифрами, а абстракциями.
Кстати это ещё одно фундаментальное отличие программы от математики. Программа всегда будет выполнятся на процессоре и оперировать с переменными конечной точности.
Математика всегда будет оперировать абстракциями бесконечной точности. Т.к. точности как таковой у них и не будет. Нет чисел, нет точности либо точность бесконечная.
Процессоры не работают с абстракциями, они работают с битами.
Не знаю может квантовые работают?
Что то я дописался до того, что доказательство теорем с многостраничной записью это есть программа. Если рассматривать каждый шаг доказательства как шаг программы.
Уроборос какой то )))
Ладно добавим ещё одно фундаментальное отличие, но уже математики.
Любое доказательство теоремы, собственно любая математическая единица служит только 1 цели. Нахождение природной зависимости в числах. Фундаментального закона. Свойства нашей вселенной или вообще всех вселенных. Придумайте как сами это назвать.
Целью же программы может быть абсолютно любая. Или вообще без цели.
Профдеформация )
Можно долго спорить где и как пересекаются программирование и математика. С разных углов они либо похожи, либо одно и тоже, либо разные вещи.
Однако я хотел бы обозначить одну фундаментальную особенность чем программирование отличается от математики.
И это:
Как не странно результатом программирования будет программа.
И главная особенность программы — это то что она состоит из последовательно выполняющихся шагов.
Результатом математики будет теорема и следующая из неё формула.
Отсюда любой шаг программы — может быть как раз математической, формулой. Т.е. шаг может быть как раз той самой математикой.
Получается что программирование может включать в себя математику как шаг программы. В тоже время по этому принципу математика не будет является программированием.
Опять же шаги это как правило вызов готовых функций, в которых и реализована математика. Поэтому программист напрямую не работает с математикой а только с её результатами.
Это как например человек использует автомобиль, но это не делает его конструктором автомобилей.
И да. Оппонент сразу может придраться к моему определению математики. Мол простои использование теорем в качестве инструмента для получения результата. В данном случае такая писанина как не странно будет похожа на программирование. Только записанная на листе бумаге. Последовательное выполнение шагов с использованием формул теорем для получения конечного результата. Точно также как это бы делала программа.
Вы применили крайность. А крайности как правило не валидны.
Понятно что любой человек в той или иной степени оперирует каким то объёмом информации у себя в памяти. Иначе это и не человек вообще.
Вся разница в количестве и разновидности этой информации.
И программисту для выполнения работы требуется запредельное количество специфической информации. Это алгоритмы, коды, абстракции.
Так вот по моим наблюдением оперирование этой информацией для мозга чрезвычайно затратно. И если человеку не нравиться, т.е. нету дофаминовой поддержки, мозг сопротивляется максимально сильно.
И программисты со временем развивают свою нейросеть для работы с этой специфической информацией. Т.е. со временем, когда дофаминовая поддержка уже сводится на нет, мозг уже натренирован. и можно работать дальше без поддержки.
Вот вы привели другие примеры информации. Например есть люди которым легко даются языки. Или люди актёры, которые запоминают сценарий фильма, пьесы.
Они тоже тренируют свой мозг. И если это им нравится, то им легко даётся манипулирование информацией специфичного для себя класса.
Как я уже говорил много раз. Все способности — это желание изучать конкретную информацию. А уж что тебе нравится или нет — это уже матушка природа и батюшка геном решают.
Не знаю как это работает в голове. Но если долго работать над проектом где есть тысячи функций и если кликнуть в любое место проекта сразу будет понятно что и как тут работает. Видимо подгружается из памяти.
Одновременно в быстрой памяти смысла держать всё это нет. Однако пытаясь разобраться с алгоритмом в программе приходится одновременно держать в голове пару десятков функций. И в течении рабочего дня к этим десяткам прибавляются другие десятки, а уже ненужные выгружаются из головного кеша.
Часто находишься в состоянии когда в голову нужно загрузить ещё информации, но уже не можешь, смотришь на очередной код, а он расплывается перед глазами. После этого просто включаешь на пару минут какой нибудь развлекательный сайт. Даже не особо вчитывавшийся что там. Но это позволяет разгрузить кеш в голове. Потом переключаешься обратно на проект.
И да всё это относится к сложным проектам. В программировании есть куча задач линейных. Те же формошлёпства. Там подход линейный, мозг практически не загружается, и ты просто отдыхаешь на таких задачах.