(no subject)
Sep. 13th, 2015 02:21 pmЧитая обсуждение http://ivan-gandhi.livejournal.com/3329246.html и ответы на мой коммент, я вдруг понял почему так тяжело идет. У меня нет никаких проблем барабанить на Erlang'е например, а Purescript, Elm или их идейный отэц Haskell (ну или ML) идет с гораздо большим трудом.
Потому что я пришел в программирование из программирования микропроцессоров. Для меня долгое время компьютер был просто гибкой логической микросхемой, которую можно было запрограммировать на последовательность действий вместо долгого и унылого паяния и протягивания проводов, а потом отладки пробником и паяльником же.
Потом как-то программирование на ассемблере превратилось в программирование на С, но компиляторы для этих микропроцессоров были таковы, что регулярно генерировали последовательности типа
Потому что так у него оптимизатор работает, видите ли. Ну или еще почему. И надо было компилировать в ассемблерный листинг, читать его и руками чистить от этого мусора, потому что иначе в ПЗУ не лезло.
А в универе учили как на Фортране ряды Тейлора вычислять, что тоже не прибавляло.
В результате я всегда когда программирую или читаю программу, симулирую в голове стековую-регистровую машину и "исполняю" на ней программу. И какие-нибудь list comprehensions, лямбды или хвостовые рекурсии отлично на такой голове исполняются. А вот стрелки и монады - почему-то нет.
Нужна книжка или статья "Функциональное программирование для недохардверных недоинженеров". Реквестирую у мироздания.
Потому что я пришел в программирование из программирования микропроцессоров. Для меня долгое время компьютер был просто гибкой логической микросхемой, которую можно было запрограммировать на последовательность действий вместо долгого и унылого паяния и протягивания проводов, а потом отладки пробником и паяльником же.
Потом как-то программирование на ассемблере превратилось в программирование на С, но компиляторы для этих микропроцессоров были таковы, что регулярно генерировали последовательности типа
mov bx, ax
mov dx, ax
mov bx, dx
mov ax, bx
Потому что так у него оптимизатор работает, видите ли. Ну или еще почему. И надо было компилировать в ассемблерный листинг, читать его и руками чистить от этого мусора, потому что иначе в ПЗУ не лезло.
А в универе учили как на Фортране ряды Тейлора вычислять, что тоже не прибавляло.
В результате я всегда когда программирую или читаю программу, симулирую в голове стековую-регистровую машину и "исполняю" на ней программу. И какие-нибудь list comprehensions, лямбды или хвостовые рекурсии отлично на такой голове исполняются. А вот стрелки и монады - почему-то нет.
Нужна книжка или статья "Функциональное программирование для недохардверных недоинженеров". Реквестирую у мироздания.
no subject
Date: 2015-09-14 09:13 pm (UTC)У самого фейсбука другая экономика.
Он ни у кого виртуалки не арендует, наоборот он свои железные сервера с нуля дизайнит, и RAM для них он всё равно покупает петабайтами, потому шо кеширование контента.
Когда у вас всё равно есть десятки петабайт RAM, конечно хаскель будет иметь смысл.
>проблема пользователей с тормозящими компьютерами традиционно решается не оптимизацией, а через lock-in.
Какой lock-in?
>Количество действительно performance-critical кода крайне невелико.
Это вам с вашей колокольни так кажется.
Ещё с прошлого года смартфонов/планшетов в интернетах уже больше, чем компов.
Весь мобильный софт performance-critical, потому шо там в среднем не особо быстрые ARM-камни, их охлаждать сложно, и технологии батареек как-то медленно прогрессируют.
no subject
Date: 2015-09-14 09:32 pm (UTC)no subject
Date: 2015-09-14 09:43 pm (UTC)Например из клиентов, для которых я сейчас разрабатываю софт для windows/osx десктопов, один делает в основном плагин для adobe after effects (софт для киношников), второй работает с пачкой чужих форматов word/pdf/odf и всеми остальными, где люди держат тексты (софт для пейсателей и переводчиков).