Re[6]: ;
От: sergii.p  
Дата: 14.10.25 12:54
Оценка: +1 -1
Здравствуйте, gyraboo, Вы писали:

G>Функциональный стиль контр-интуитивен, а императивный стиль наоборот — интуитивен. Империтив — это порядок шагов (порядок шагов, чтобы достать банан), это максимально понятный прямолинейный способ.

G>Именно виду контр-интуитивности не все программисты и могут, и это нормально. А функциональщина — это ненормально, это искривление естественного мышления.

Это синдром утёнка. Если бы вас учили в универе на Haskell, а не С++, вы бы сказали иначе.
Вот так думает компьютер.
void sign(const auto& docs) {
    for(int i = 0; i < docs.size(); ++i) {
        const auto& doc = docs[i];
        sign(doc);
    }
}

А так думает человек:
signDocuments :: [String] -> [String]
signDocuments [] = []
signDocuments (doc:rest) = sign doc : signDocuments rest

У ФП хватает минусов, но не надо притягивать за уши несуществующие.
Re[10]: ;
От: Privalov  
Дата: 14.10.25 17:40
Оценка:
Здравствуйте, F3V, Вы писали:

F3V>Но позвольте, если великий и могучий у каждого свой, то зачем нужна глобализация?


Зачем нужна — скажем, не знаю. Но у того же Microsoft офисы по всему шарику разбросаны.

F3V>Разве на по этой причине великий и могучий отменяется глобализацией так или иначе?


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

F3V>Когда знаешь содержание, то форма не очень важна, но понять содержание по плохой форме тяжелее.

F3V>Компьютерная латиница — работает, но не всегда оптимальна и её тяжелее понимать, чем родной язык.

Явно вы никогда не пробовали разбирать текст программы по километровой распечатке. Для той эпохи 2500 строк на PL/1 — это до фига.

F3V>>>На мой взгляд, лучше работать в модели языка и терминах великого и могучего.


Который устраивает всех разработчиков, находящихся и в Рейкьявике, и в Льеже, и в Антананариву, и в Абакане.
Re[7]: ;
От: Pzz Россия https://github.com/alexpevzner
Дата: 14.10.25 19:33
Оценка: +2
Здравствуйте, sergii.p, Вы писали:

SP>А так думает человек:

SP>
SP>signDocuments :: [String] -> [String]
SP>signDocuments [] = []
SP>signDocuments (doc:rest) = sign doc : signDocuments rest
SP>

SP>У ФП хватает минусов, но не надо притягивать за уши несуществующие.

Ну не знаю. Я так не думаю. Скорее, я думаю, как в первом примере. Если мне надо заколотить дцать гвоздей, я возьму молоток и заколочу их по очереди, а не заколочу один и передам остаток работы себе, рекурсивно вызванному.
Re[11]: ;
От: F3V  
Дата: 14.10.25 19:50
Оценка:
Здравствуйте, Privalov, Вы писали:

F3V>>Разве на по этой причине великий и могучий отменяется глобализацией так или иначе?


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


И было очевидно, ведь вы в противоположном окопе:
язык — это форма (слова) и содержание (смыслы, способ описания реальности).
Тут при одинаковой форме есть конфликт содержаний.

Т.е. исходное утверждение верно, но уточню его, хотя это тоже очевидно:

F3V>>Если язык определяет мышление, то понимание великого и могучего будет разное на английском русском и на русском языках.


ПС: Для правильного разбора тут понадобится парсер КЗ грамматики или выше
Re[2]: ;
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 14.10.25 20:08
Оценка: +1
Здравствуйте, Silver_S, Вы писали:

S_S>Я бы предпочел, чтобы в файлах ";" была, но чтобы текстовый редактор ее не показывал, где не надо. Чтобы задавалось в персональных настройках редактора.

S_S>Тоже самое с блоками "{}", автоматически скрывать, если и по отступам видно. Редактор VS все равно рисует линию перед блоком, поэтому сами "{}" уже не нужны.

Я вот потому фаром до сих пор и пользуюсь для всего, потому что умники IDE-пейсатели понапридумывают улучшений для меня, причем в каждой IDE свои, а я пехайся потом с этим
Маньяк Робокряк колесит по городу
Re[5]: ;
От: Doom100500 Израиль  
Дата: 15.10.25 05:47
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Здравствуйте, Marty, Вы писали:


Pzz>>>На Go есть смысл ссылаться потому, что это не какой-то там еще один язык программирования, а, в определенном смысле, работа над ошибками в языке Си.


M>>Точно? А мне казалось, что какая-то херота типа питона


Pzz>Ты ошибался. Go сделали те же люди, что сделали UNIX, C, Plan9, ...


Pzz>И видно, что он сделан в том же комплексе идей.


Только сборщик мусора не в тему.
Спасибо за внимание
Re[7]: ;
От: Doom100500 Израиль  
Дата: 15.10.25 05:51
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Так вот, субслайсы с одного массива, у них память-то общая. Но если дописывать в хвост, может случиться realloc, и тогда память разделится.


Разве не п...ц?
Спасибо за внимание
Re[6]: ;
От: Pzz Россия https://github.com/alexpevzner
Дата: 15.10.25 08:25
Оценка:
Здравствуйте, Doom100500, Вы писали:

Pzz>>И видно, что он сделан в том же комплексе идей.


D>Только сборщик мусора не в тему.


А Пайк считает, что ошибкой было не сделать сборщика мусора в Си.
Re[7]: ;
От: so5team https://stiffstream.com
Дата: 15.10.25 08:58
Оценка: +1
Здравствуйте, Pzz, Вы писали:

D>>Только сборщик мусора не в тему.


Pzz>А Пайк считает, что ошибкой было не сделать сборщика мусора в Си.


А можно цитату из Пайка с этим мнением?

Так-то, конечно, было бы любопытно узнать чем бы закончилась попытка переписать ядро Unix-а на этот гипотетический "Си со сборщиком мусора" на 16-битовом PDP-11. Но есть подозрение, что ничем.
Re[8]: ;
От: sergii.p  
Дата: 15.10.25 09:01
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Ну не знаю. Я так не думаю. Скорее, я думаю, как в первом примере. Если мне надо заколотить дцать гвоздей, я возьму молоток и заколочу их по очереди, а не заколочу один и передам остаток работы себе, рекурсивно вызванному.


наверное вы
    • запоминаете номер текущего гвоздя
    • проверяете, что этот номер не больше -дцати
    • отсчитываете нужный гвоздь (причём считаете и уже забитые гвозди!)
    • после приколачивания прибавляете к номеру гвоздя единицу
Думаю, всё таки нет. Вы берёте пачку гвоздей. Если пачка пуста, процесс завершаете. Иначе берёте первый гвоздь, приколачиваете и с оставшимися возвращаетесь в начало (рекурсия!).
Всё дело в привычке. Вы уже подсознательно воспринимаете for(int i = 0...) за прохождение по всем элементам. И не обращаете внимания сколько фигни с точки зрения человека происходит.
Re[9]: ;
От: so5team https://stiffstream.com
Дата: 15.10.25 09:15
Оценка: +1
Здравствуйте, sergii.p, Вы писали:

SP>Думаю, всё таки нет. Вы берёте пачку гвоздей. Если пачка пуста, процесс завершаете. Иначе берёте первый гвоздь, приколачиваете и с оставшимися возвращаетесь в начало (рекурсия!).


Рискну предположить, что для обычного человека все-таки был бы более привычен алгоритм, описанный вот в такой императивной форме:
пока (есть гвозди) и (не все еще прибито):
  взять очередной гвоздь;
  забить взятый гвоздь;

Без рекурсии.
Re[8]: ;
От: gyraboo  
Дата: 15.10.25 09:27
Оценка: :)
Здравствуйте, Pzz, Вы писали:

SP>>У ФП хватает минусов, но не надо притягивать за уши несуществующие.

Pzz>Ну не знаю. Я так не думаю. Скорее, я думаю, как в первом примере. Если мне надо заколотить дцать гвоздей, я возьму молоток и заколочу их по очереди, а не заколочу один и передам остаток работы себе, рекурсивно вызванному.

Если уж пошла такая пьянка, то сознание работает вообще не так. Сознание — это квантовый компьютер (см. недавние подтверждения микротрубочек у достаточно старой маргинальной гипотезы Пенроуза/Хомского о квантовой природе сознания). Таким образом, квантовый компьютер в нашей голове строит реальные параллельные ветки вселенной, в каждой из которых проигрываются разные варианты событий. Затем мозг через механизм связи параллельных вселенных (например, интерференция одиночной частицы со своими версиями из параллельных вселенных — пример такой меж-вселенской связи), способом, аналогичным методу бесконтактных измерений Элицура-Вайдмана (метод определения рабочих взрывателей бомбы путём её подрыва в параллельной вселенной) собирает результаты таких прогонов и тем самым позволяет предсказать последствия действий. После чего мозг выбирает оптимальный с его точки зрения "маршрут" в самой привлекательной версии порождённых вселенных, остальные порожденные вселенные живут далее (или погибают, если проверка гипотезы была злодейская, например, злодей продумывает варианты уничтожения вселенной).
Из всего этого следует, что квантовое программирование — самый точный способ передать способ мысли человека.
Отредактировано 15.10.2025 9:38 gyraboo . Предыдущая версия .
Re[8]: ;
От: Pzz Россия https://github.com/alexpevzner
Дата: 15.10.25 09:45
Оценка:
Здравствуйте, so5team, Вы писали:

S>Здравствуйте, Pzz, Вы писали:


Pzz>>А Пайк считает, что ошибкой было не сделать сборщика мусора в Си.


S>А можно цитату из Пайка с этим мнением?


Можно.

http://herpolhode.com/rob/ugly.pdf

14-я страница (на самом слайде написано 13).

Languages

C is well understood and has aged surprisingly gracefully. (Good)
Still it’s not very modern: (Bad)
— No garbage collection
— No string handling!

And it has some horrible mistakes: (Ugly)
— The preprocessor
— Conditional compilation


S>Так-то, конечно, было бы любопытно узнать чем бы закончилась попытка переписать ядро Unix-а на этот гипотетический "Си со сборщиком мусора" на 16-битовом PDP-11. Но есть подозрение, что ничем.


Мне бы тоже было бы это любопытно узнать.

С одной стороны, был LISP и он был garbage-collected и работал и на машинках послабее той PDP-ки.

С другой стороны, сама по себе идея написать ядро ОС на языке высокого уровня, а не на ассемблере, как Богом заведено, вызывала насмешки.
Re[9]: ;
От: Pzz Россия https://github.com/alexpevzner
Дата: 15.10.25 09:53
Оценка: +1
Здравствуйте, sergii.p, Вы писали:

SP>Думаю, всё таки нет. Вы берёте пачку гвоздей. Если пачка пуста, процесс завершаете. Иначе берёте первый гвоздь, приколачиваете и с оставшимися возвращаетесь в начало (рекурсия!).


Нет, итерация. Рекурсия была бы, если бы у меня после каждого гвоздя обнулялась память и я начинал бы (для оставшихся гвоздей) решать задачу с самого начала.

Кстати, обычно задача по вбиванию гвоздей имеет целью не потратить все гвозди из пачки, а вбить гвозди во все места, в которых они нужны. И да, я эти места размечаю и иду по порядку. Это скорее for ... range, чем for i = 0; i < N; i ++.
Re[9]: ;
От: so5team https://stiffstream.com
Дата: 15.10.25 10:01
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>>>А Пайк считает, что ошибкой было не сделать сборщика мусора в Си.


S>>А можно цитату из Пайка с этим мнением?


Pzz>Можно.


Pzz>http://herpolhode.com/rob/ugly.pdf


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

Pzz>

Pzz>Still it’s not very modern: (Bad)
Pzz>- No garbage collection


Это сейчас плохо то, что Си без сборщика мусора (следовательно не шибко современный).
Из этого, что есть сейчас, не следует, что "не сделать сборщик мусора в Си" было ошибкой.
Re[10]: ;
От: Pzz Россия https://github.com/alexpevzner
Дата: 15.10.25 10:07
Оценка:
Здравствуйте, so5team, Вы писали:

Pzz>>

Pzz>>Still it’s not very modern: (Bad)
Pzz>>- No garbage collection


S>Это сейчас плохо то, что Си без сборщика мусора (следовательно не шибко современный).

S>Из этого, что есть сейчас, не следует, что "не сделать сборщик мусора в Си" было ошибкой.

Хорошо, принимаю эту поправку.

Кабы то ни было, по мнению Пайка сборщик мусора в Си не был бы лишним.

P.S. В гошечке я бы хотел иметь функции unsafe.Malloc/unsafe.Free для тех редких случаев, когда сборщик мусора скорее мешает, чем наоборот. И чтобы на выделяемую ими память сборщик мусора не зарился (в идеале, чтобы указатели на эту память его не тормозили).

Я понимаю, что можно сделать самодельный из C.malloc/C.free, но сразу появится CGo overhead...
Re[11]: ;
От: so5team https://stiffstream.com
Дата: 15.10.25 10:15
Оценка: :)
Здравствуйте, Pzz, Вы писали:

Pzz>Кабы то ни было, по мнению Пайка сборщик мусора в Си не был бы лишним.


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

По моему мнению, например, в современном мире лишним является сам Си. И чем меньше софта будет писаться на Си (с переходом на C++ и/или Rust), тем лучше. Но это мое личное заблуждение мнение.

По поводу Go аналогичное ощущение. И лучше бы D занял место Go. Но, видимо, количество умственно отсталых в нашей профессии, которым нельзя доверить ничего сложнее Go, слишком уж велико. Поэтому если не Go, то для индусопрограммистов всех национальностей взлетел бы какой-нибудь другой неполноценный уродец.
Re[9]: ;
От: dsorokin Россия  
Дата: 15.10.25 16:45
Оценка: -1
Здравствуйте, gyraboo, Вы писали:

G>Если уж пошла такая пьянка, то сознание работает вообще не так. Сознание — это квантовый компьютер (см. недавние подтверждения микротрубочек у достаточно старой маргинальной гипотезы Пенроуза/Хомского о квантовой природе сознания). Таким образом, квантовый компьютер в нашей голове строит реальные параллельные ветки вселенной, в каждой из которых проигрываются разные варианты событий. Затем мозг через механизм связи параллельных вселенных (например, интерференция одиночной частицы со своими версиями из параллельных вселенных — пример такой меж-вселенской связи), способом, аналогичным методу бесконтактных измерений Элицура-Вайдмана (метод определения рабочих взрывателей бомбы путём её подрыва в параллельной вселенной) собирает результаты таких прогонов и тем самым позволяет предсказать последствия действий. После чего мозг выбирает оптимальный с его точки зрения "маршрут" в самой привлекательной версии порождённых вселенных, остальные порожденные вселенные живут далее (или погибают, если проверка гипотезы была злодейская, например, злодей продумывает варианты уничтожения вселенной).

G>Из всего этого следует, что квантовое программирование — самый точный способ передать способ мысли человека.

Это называется "многовариантностью мышления". Это только у творческих людей так (к ним относится большинство программистов). У других людей совсем не так

Кстати, таким людям обычно нравится функциональное программирование. Их вдохновляет сама красота математических абстракций, а в абстракциях они разбираются просто превосходно. Это так, к слову. Ты попробуй! Может быть, и тебе тоже понравится?

Аналогия с квантовым компьютером мне очень понравилась. Не задумывался ранее
Re[10]: ;
От: gyraboo  
Дата: 15.10.25 17:10
Оценка:
Здравствуйте, dsorokin, Вы писали:

D>Аналогия с квантовым компьютером мне очень понравилась. Не задумывался ранее


Да. Парадоксально, но дешевле всего для решения задачи именно сгенерировать параллельные вселенные, чем обеспечить симуляцию вариантов на архитектуре фон неймана в одной вселенной. Генерация мульти-вселенных — это самый дешёвый и даже "обыденный" процесс. Каждая мини-радуга на стене от солнечного окна — это на самом деле ансамбль мульти-вселенных, взаимодействующих друг с другом через механизм интерференции, и это всё истинно параллельно. А для построения симуляции фон неймана нужно описать императив, прогнать его последовательно (или параллельно, но с издержками синхронизации).
Вопрос лишь за тем, чтобы дождаться удешевления квантового компьютинга и развития соотв. методик и языков.
Re[11]: ;
От: dsorokin Россия  
Дата: 15.10.25 17:19
Оценка:
Здравствуйте, gyraboo, Вы писали:

G>Здравствуйте, dsorokin, Вы писали:


D>>Аналогия с квантовым компьютером мне очень понравилась. Не задумывался ранее


G>Да. Парадоксально, но дешевле всего для решения задачи именно сгенерировать параллельные вселенные, чем обеспечить симуляцию вариантов на архитектуре фон неймана в одной вселенной. Генерация мульти-вселенных — это самый дешёвый и даже "обыденный" процесс. Каждая мини-радуга на стене от солнечного окна — это на самом деле ансамбль мульти-вселенных, взаимодействующих друг с другом через механизм интерференции, и это всё истинно параллельно. А для построения симуляции фон неймана нужно описать императив, прогнать его последовательно (или параллельно, но с издержками синхронизации).

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

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

Поэтому прошу тебя не отказывать себе в удовольствии изучения функционального программирования. Есть очень большие шансы, что оно тебе тоже понравится, хотя ты в начале чуть ли не наехал на него...
Отредактировано 15.10.2025 18:04 dsorokin . Предыдущая версия .
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.