Фраза про алгоритмы, опережающие рост производительности процессоров является обычной мантрой и не имеет никакого смысла, - примерно как "распространение Макдональдсов опережает потребности населения в еде", - and so what? Алгоритмы - это не семантика языка, а наоборот - семантика является одним из вспомогательных инструментов описания алгоритма. Когда программист оперирует абстракциями упорядоченого списка, мап-редьюса или иммутабельности, он должен понимать, что это абстракции для его удобства, в реальности всё работает совершенно иначе. Нет необходимости знать все тонкости - это и невозможно - но ни математика, ни конкретная парадигма программирования не является конечным алгоритмом, а только языком его описания. Оценку работы алгоритма можно проводить только на стыке абстракций и real world. Именно поэтому в HPC пока нигде нет функциональных языков в значимых масштабах - они неэффективны для высокопроизводительных систем. Это не означает, что они плохие - ряд задач можно и на скрипте Экселя решить при желании и это решение вполне может оказаться приемлемым, - но упорная фиксация на "разбор моих грехов оставьте до поры - вы оцените красоту игры" уже начинает несколько пугать.
no subject