juan_gandhi: (Default)
Juan-Carlos Gandhi ([personal profile] juan_gandhi) wrote2018-07-28 02:43 pm

из Вашингтона спрашивают

"В своё время Питер Нортон сказал, что в СССР была очень сильная математика, поэтому нас ждут очень хорошие успехи в области программирования.

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

Так в чем здесь проблема? Уровень математики всё же оказался недостаточно высоким?"
 

Т.к. я не знаю ответа, могу только языком почесать, то приглашаю желающих. Особенно Дениса, конечно.

[personal profile] sassa_nf 2018-08-03 10:27 pm (UTC)(link)
"рекурсии"

Lol. Are you afraid of recursion then? Most programmers are.

A similar list can be constructed for imperative programming:

File descriptors, deallocating memory, and returning error codes. People juggling mutexes, threads, and understanding LL/SC become gods. The more faff, the more "real" the programming. Jesus is coming! Look busy!
snowps: (Default)

[personal profile] snowps 2018-08-04 05:35 am (UTC)(link)
Когда отсмеётесь, вспомните, что речь шла о конкретном примере с 45-кратной разницей в производительности там, где рекурсия была абсолютно не нужна.

[personal profile] sassa_nf 2018-08-04 08:34 am (UTC)(link)
I don't know what you are talking about. What about the list of things I composed? Is that programming?

Year 3 kids know how to add natural numbers. Are they mathematicians?

Year 5 kids know how to solve quadratic equations. Are they mathematicians?

Sophomores know how to integrate. Are they mathematicians?

Peano figured out how to add natural numbers. But that's exactly what made him a mathematician!
snowps: (Default)

[personal profile] snowps 2018-08-04 10:34 am (UTC)(link)
Программист - это ремесленник, он делает программный продукт, который решает определённую задачу. Если задача математическая, то он должен знать определённые области математики, чтобы понимать, что он пишет. Если задача не математическая - не должен. Если задача требует знания железа - он должен знать железо, если не требует - не должен. Почему Вы не выдвигаете требования к программистам о знании железа, ведь количество задач, связанных с железом, у программистов больше, чем задач, связанных с с математикой?

[personal profile] sassa_nf 2018-08-04 11:36 am (UTC)(link)
"Почему Вы не выдвигаете требования к программистам о знании железа"

How do you conclude that?


"[Почему Вы ... выдвигаете требования к программистам о знании] связанных с математикой?"

Because I can see a gap there.
snowps: (Default)

[personal profile] snowps 2018-08-04 12:56 pm (UTC)(link)
Ну так это Ваша собственная проблема, что для Вас математика имеет какие-то особенные свойства, поскольку есть "I see", а есть статистика. Первый тип оценки - для внутреннего применения, вроде "я люблю чернику, но не люблю крыжовник", - придерживайтесь своих собственных убеждений и не мешайте другим придерживаться других.

[personal profile] sassa_nf 2018-08-04 04:45 pm (UTC)(link)
"есть "I see", а есть статистика"

Statistically, only 10% of candidates are able to produce all strings that match regex [ab]*.
snowps: (Default)

[personal profile] snowps 2018-08-04 06:56 pm (UTC)(link)
Если остальные не используют регэксп, то в чём проблема?

[personal profile] sassa_nf 2018-08-04 08:44 pm (UTC)(link)
"в чём проблема"

The problem is that I can (and do) reformulate this question in a variety of ways, but they still can't solve it. So we never get to talk about what really matters.
snowps: (Default)

[personal profile] snowps 2018-08-05 12:56 am (UTC)(link)
Беда в том, что Вы не понимаете, что у всех свой набор того, what "really" matters.

[personal profile] sassa_nf 2018-08-05 07:47 am (UTC)(link)
Why do you think so? Just because I asked one question? Should I not ask any questions? One question doesn't matter. A discussion that follows is important.
snowps: (Default)

[personal profile] snowps 2018-08-05 11:19 am (UTC)(link)
После утверждений, что простой, как табуретка, алгоритм реверса списка "решает не ту задачу" и только поэтому быстрее в сорок пять раз, чем рекурсия на ФЯ, я полностью утерял желание что-либо иллюстрировать кодом - в религиозной среде доказательства, противоречащие вере, не работают.
snowps: (Default)

[personal profile] snowps 2018-08-05 03:56 pm (UTC)(link)
С чего бы это меня тогда убедили - разве был приведён код на ФЯ с адекватной производительностью? Нет, не был, а с интуиционистскими брауэровскими закидонами про то, что у каждого математика своё воображение и опыт никому не нужен, - это именно к математикам, я с реальным оборудованием дело имею и хорошо представляю, где заканчивается воображение и начинается реальность. :)
snowps: (Default)

[personal profile] snowps 2018-08-04 03:49 pm (UTC)(link)
Да почему не существует-то? Это не я занимаюсь отрицанием всего прошлого программистского наследия по искуственному критерию. Вы сейчас говорить точно как проповедник, которому задали вопрос про существование бога. "Бог есть, а вы не веруете, поэтому и не понимаете". Разницы - ноль. Даннинг-Крюгер проявляется в излишней самоуверенности - в нашем диалоге к ней склонны как раз Вы. :)

[personal profile] sassa_nf 2018-08-04 05:06 pm (UTC)(link)
"Разницы - ноль"

There is a massive difference between, say, Thorsten Altenkirch asking that question, and you asking that question. This is apparent from the arguments you use.

Example: you keep banging on about the right tool for the job. I don't think anyone argues about that. However, you need to know HoTT, to know if that's the right tool for the job. Your evasive answer about whether you know HoTT means you should not be talking about the applicability or non-applicability of HoTT for the job, whatever the job.

Your only gauge of the applicability is the "huge and growing codebase".
snowps: (Default)

[personal profile] snowps 2018-08-04 07:15 pm (UTC)(link)
Нет никакой разницы, кто задаёт вопрос, - разница есть только в том, какой на этот вопрос получается ответ. Изучение новых инструментов оправдано только тогда, когда новые инструменты позволяют решать задачи, которые прежними инструментами эффективно решать нельзя. Если Вам нравится сам процесс изучения новых инструментов, то Вы не работой занимаетесь, а самообразованием за счёт работы. Это вполне распространённая ситуация, но надо отдавать себе отчёт в том, что работодатель платит при этом за ваш фан, а не за продукт.

[personal profile] sassa_nf 2018-08-04 08:52 pm (UTC)(link)
"какой на этот вопрос получается ответ"

Not an answer, but the discussion. "HoTT is necessary to write TCP/IP driver" is false. "HoTT is applicable to writing TCP/IP driver" is true. You keep banging on about the necessary condition (which no one has claimed). So there is no discussion, only an illusion that you've got the question settled and some others rejecting the hand of reconciliation.
snowps: (Default)

[personal profile] snowps 2018-08-05 01:02 am (UTC)(link)
Нет, дискуссия - это промежуточный процесс для получения ответа на вопрос. Так ассемблер тоже прекрасно applicable к написанию драйвера - почему бы и его использование не включить в список того, без чего программист - нвежественный непрограммист?

[personal profile] sassa_nf 2018-08-05 07:49 am (UTC)(link)
Why do you think that I don't include that? (I remind you that this will look like a repeating question - that's the same question I asked before I stated "there is a gap", but I don't reckon it is my fault)
snowps: (Default)

[personal profile] snowps 2018-08-05 10:41 am (UTC)(link)
Ну давайте тогда туда вообще все языки включим, мол программист должен знать все текущие и прошлые языки и писать на них с закрытыми глазами. В реальности ни хорошее знание специфики машинных кодов, ни глубокое знание теории категорий для среднестатистического программиста не является обязательным (хотя и может быть полезным), достаточно знать наиболее важные плюсы и минусы подходов, чтобы понимать, годится определённый подход для задачи или не годится. Программисты тоже люди, у них есть свои предпочтения, но если столяру предлагают изготовить стальную деталь, то он обычно отправляет клиента к слесарю, а у программистов принято начинать объяснять клиенту, что его деталь можно и из дерева выпилить, будет ничуть не хуже, причём ещё и делать намного быстрее, а слесарка - это, мол, прошлый век, так теперь только ретрограды работают, долго и муторно, а мы тут - хренак-хренак и всё! Вся эта антимония с немутабельностью, имплицитной параллелизацией и доказательством безошибочности затеивается исключительно для того, чтобы поменьше работать, - всем плевать, что производительность радикально падает, что паралеллизация эффективна только на узком классе задач, что real-world interfacing нужно городить через монадические прослойки и т.п., зато можно гордо сказать, что "nen у унас категории Клейсли".

[personal profile] sassa_nf 2018-08-05 11:23 am (UTC)(link)
"Ну давайте тогда туда вообще все языки включим"

Moving goalposts?


"программист должен знать все текущие и прошлые языки и писать на них с закрытыми глазами"

It's your idea. Why would I do that?


"не является обязательным (хотя и может быть полезным)"

Isn't that what everyone else is saying?


"чтобы поменьше работать"

Absolutely! Don't compete with computers at what the computers are good at!


"производительность радикально падает"

Whose performance?


"паралеллизация эффективна только на узком классе задач"

Moor's law is no longer about singlethreaded improvements. You've got to ride parallellism. Your beloved HPC does.
euthanasepam: Ла-ла-ла-ла! Ла-ла-ла-ла! (Default)

[personal profile] euthanasepam 2018-08-07 09:38 pm (UTC)(link)
Тоже вот хотелось бы поставить здесь лайк.