Представь, что тебя наделили бессмертием и заставили разрабатывать огромную систему, которой нет конца и края. Есть важное ограничение: все должно быть сделано на одном языке. Какая именно система — не важно. Фронтенд, бекенд, системщина — главное, что поддерживать и допиливать это творение придется вечность. Исходя из такой ситуации, какой язык ты посчитаешь самым простым? JS/PHP/Ruby/Python и прочую динамикогодноту? Удобно для быстрого старта, но поддержка превратится в ад. Придется прописывать сотни проверок. Java/C#/Eiffel/Delphi и подобные энтерпразограали? Можно обмазываться ими сколько угодно, но прочитать написанное и вечности не хватит.
Lisp/Clojure? Все можно сделать лаконично и удобно, но, вернувшись через столетие к горе древних макросов, ты потратишь годы на то, чтобы разобраться в их сути.
Х-ль/Id-is/Ag-a? Можно воспользоваться очень элегaнтными абстрaкциями, но кoгнитивные спосoбности огрaничены. Пока разбeрешься в reсursion-schеmes, уже забyдешь опредeление фyнктора.
Что сэкономит тебе нервы на сотни тысяч лет вперед?
>>1061553 (OP) >Представь, что тебя наделили бессмертием и заставили разрабатывать огромную систему, которой нет конца и края. Есть важное ограничение: все должно быть сделано на одном языке. PHP. Я так понимаю заказчик из ада для быдлокодеров. Пусть ловят баги в бесконечной портянке PHP кода. Заказчик будет доволен.
Э-э-э, нет, дружочек. Давай для начала определимся с архитектурой; бесконечно расширяемая система не является машиной Фон Неймана по определению, а значит классические языки идут лесом.
Если вселенная — квантовый компьютер, тогда, очевидно выбор за перспективным ЯП, таким как - Хаскель, Quipper.
>>1061553 (OP) Ну, очевидные кресты, с OpenC++ или концептами от Саттера. Полностью удволетворяет требованию - пилить придется вечно и ты еще успеешь проебать сроки.
>>1061553 (OP) >Исходя из такой ситуации, какой язык ты посчитаешь самым простым? Возьму пики дрочёны, срублю хуи точёны. Возьму язык на свой вкус, ну, пусть это будет Scala. В первые 50 лет перепишу компиляторы нужных мне языков, дальше как обычно.
>>1061553 (OP) Самый простой язык программирования - это бестиповое Лямбда-исчисление. Оно настолько просто, что его даже не нужно изучать. Есть объявление функции и её вызов, больше ничего нет. Кто-то скажет, что этого мало, это неудобно и т.д. Очень даже удобно. Чёрч показал (Church encoding) как закодировать любые сущности (числа, условные выражения, классы, типы, и т.д.) с помощью Лямбда-исчисления, и это оказалось так просто и понятно, что даже ребенок сможет это освоить.
>>1062150 Kombinatornaya logica minimalistichnee i mozet vse toze samoe. A petuh Church vse spizdil y Shejnginkelya spustya 20 let. Voobshe vse eti komputernie opushenci Church, Turing, Curry - vse typie pidarasi i oznakomlenya s ih viserami luchshe izbegat'. Kstati, otlichnii detector - esli kto-to bez povoda nachinaet upominat' eti "gromkie" imena, to 100% pered toboj nastoyashij mudak.
>>1062251 >Shejnginkel Интернет не знает про такого персонажа. Либо ты его придумал, либо ты не можешь правильно написать фамилию. Зато знаешь как правильно писать всякие гадости. Сразу видно твой уровень развития.
>>1062251 Что ты сказать хотел? Лямбда-исчисление по мнению А.П. Ершова теоретическая модель функционального программирования. Чем является комбинаторная логика? Как её применить на практике, как на ней писать код?
>>1061553 (OP) Подождите, а как JS/PHP вообще сюда подойдут? Они же не полноценные языки, на них одних фронтенда не запилишь, оба требуют хтмл. Даже блядь реакт нейтив использует хтмл.
>>1062295 Prosto ya ne predstavlyau naskol'ko nuzno bit derevyannim chtob bit ne sposobnim nahodit i chinit' prostejshie oshibki v obshenii iz konteksta, ili ne ponyat' chto fraza "taki nash chelovek" uze kak bi namekaet.
>>1062389 Какую теоретическую базу имеют под собой ООП языки? Языки ФП имеют математическую модель под собой, на которой они основаны. Из этого следует, что языки ООП не имеют должного теоретического обоснования. Не имеют четко сформулированных концепций. Получается, что никто не знает что такое ООП, поэтому что это нигде не описано, а все что написано является вымыслом авторов.
>>1062647 А она не нужна, гы. Информационные системы спокойно ебашатся на ООП, и никто не парится. Единственно что соглашусь, гибкости мало. Иногда это напрягает мой перфекционизм реюзателя. Но чистый фп, без императивной поддержки, тоже нахуй не нужен.
Алсо, если ты школьник, дрочащий на SICP, то напомню: не выёбывайся, ты всё ещё школьник.
Если ты такой охуенный, то что мешает написать компилятор/интерпритатор твоего любимого говноязыка в рамках бесконечного проекта и обмазываться чем хочешь?
>>1065916 Нет такого алгоритма, который нельзя реализовать в ФП. Напротив, есть алгоритмы, которые тяжело или невозможно реализовать в императивном программировании, но зато они легко реализуются в ФП.
>>1061553 (OP) >Исходя из такой ситуации, какой язык ты посчитаешь самым простым? Скорее всего лисп, но это неточно. Возможно что-то вроде lua, или golang
>>1067514 >Что такое "природа алгоритма"? Значит свойства определяемые дефиницией.
>Алгоритм — набор инструкций, описывающих порядок действий исполнителя для достижения некоторого результата. В старой трактовке вместо слова «порядок» использовалось слово «последовательность».
>>1061553 (OP) >Представь, что тебя наделили бессмертием и заставили разрабатывать огромную систему, которой нет конца и края. Есть важное ограничение: все должно быть сделано на одном языке. Крипота-то какая.
>>1067491 >>квиксорт в две строки и на два порядка медленнее >Можно-то можно, только разве что в академических целях Докажи что медленнее. Если и будет медленней, то только в сравнении с C/C++, все всех остальные языки будут позади.
>>1067491 >Например? Ленивые вычисления, работа с бесконечными структурами...
>>1067489 Маня, твой кампуктер работает императивно. То есть GHC дико усирается, чтобы превратить твои недомотематические пискульки на хаскiле во что-то, что будет в итоге работать. И при этом выхлоп по производительности будет работать в лучшем случае как быдлокод на джяве. К примеру, все игры с более менее нормальным графеном написаны на императивном сипипи, а на хаскеле софтанет. Туда же числодробилки и вообще всё, что должно работать быстро, или используя строго предсказуемом кол-во ресурсов.
>>1068890 Ой, обоссышь, давай ты мне не будешь про математику рассказывать? Возьми любой численный метод BiCGStab и покажи мне его эффективную (не императивную) реализацию. Я буду хохотать и поддавать урины тебе на ебало.
>>1069075 > МАМ, НУ СКАЖИ ИМ, ЧТО МАТИМАТИКА ДИКЛАРАТИВНАЯ! НУ МАМА МАМА! Ясно, ты даже не знаешь, что такое итерационные методы в математике. Чё кукарекал тогда?
>>1068928 Нет, это clang дико усирается, чтобы превратить императивную дрисню в функциональный ir. ГПУ-числодробилки тоже не сильно любят шароёбство по памяти и хранение состояния. https://www.youtube.com/watch?v=dM2BfeppYcM
>>1069203 >Что дальше? Ты только просил декларативное описание. При помощи монад то самое декларативное описание эффекта домино и можно сделоть. Думаю, что тут даже систему диффуров можно намонстрячить, если тебе монадки не нравятся.
>>1069209 >Почему не может? По определению. Это не алгоритм тогда.
>Есть и другой - эффект домино, используй его Использовать как? Для чего? Чем? Куда? Ты городишь беспредметный абстрактный бред. Если уже на то пошло, описывай свой бред вначале императивно, а потом уже предлагай декларативный аналог.
> algorithm is an unambiguous specification of how to solve a class of problems
> Алгоритм — набор инструкций, описывающих порядок действий исполнителя для достижения некоторого результата. В старой трактовке вместо слова «порядок» использовалось слово «последовательность», но по мере развития параллельности в работе компьютеров слово «последовательность» стали заменять более общим словом «порядок». Независимые инструкции могут выполняться в произвольном порядке, параллельно, если это позволяют используемые исполнители.
>>1069217 >Алгоритм — набор инструкций, описывающих порядок действий исполнителя для достижения некоторого результата. >Ну приводи теперь свои определения, мань.
Так, ну, порядок действий, для достижения результата, так? Это и называется императивным подходом.
>>1069591 >Ты обосрался с обоснованием что алгоритм - не спецификация, поэтому сиди молча.
Алгоритм может быть содержимым декларации. Я декларирую алгоритм дакларацией "КОКОЛ" { 1, ебать твою мамку 2, кончать тебе на лицо }
То есть тип декларации - алгоритм.
Так же алгоритм может быть картиной. Вот нарисовал на холсте гуашью.\ Может быт песней. Может быть снегом и мочей.
Если с такой точки зрения смотреть.
Но у нас же речь совсем не о том.
Сама по себе сущность алгоритма - императивна.
И ненужно мешать в кучу разные категории объектов.
Это как оспаривать утверждение, что поливинилхлорид это пластмасса, а не металл. >НИЕЕЕЕТ ЭТО ДИЛДА А НЕ ПЛАСТМАССА ВОТ У МЕНЯ В ЖОПЕ СЕЙЧАС ПВХ И ОН В ФОРМЕ ДИЛДАКА ТАК ЧТО ПВХ ЭТО ДИЛДА!1111 АЗАЗАЗА
>define сущность алгоритма Так можно доебыватся бесконечно. Сия беседа лишена смысла, если тебе нужен эмоциональный респонс, социальное одобрение, признание, обратись к своей мамке, я как раз с ней закончил.
Какая именно система — не важно. Фронтенд, бекенд, системщина — главное, что поддерживать и допиливать это творение придется вечность.
Исходя из такой ситуации, какой язык ты посчитаешь самым простым?
JS/PHP/Ruby/Python и прочую динамикогодноту? Удобно для быстрого старта, но поддержка превратится в ад. Придется прописывать сотни проверок.
Java/C#/Eiffel/Delphi и подобные энтерпразограали? Можно обмазываться ими сколько угодно, но прочитать написанное и вечности не хватит.