Во-первых, Питон популярен. Сказано было скорее в тоне «да им вообще никто не пользуется», чем «да, во многих целевых областях приложения есть 1-2 более успешные технологии». Но даже меньшая популярность Питона относительно Java или C# обусловлена обратной несовместимостью 3-й версии в лучшем случае в десятую очередь. Хотя сравнивать популярность этих языков вот так, в целом — в известной степени бессмысленно.
После доклада про Питон он утверждал, что язык непопулярен, потому что версия 3 обратно несовместима со 2-й. Поэтому его анонс как «человека широчайших познаний в области программного обеспечения» вызывает сомнения.
Третья существенная оптимизация была связана с чтением данных. Этот этап занимал гораздо большее время, чем этапы построения графа и поиска пути в нём
Очень странно. Неужели в Интеле хотели провести соревнование на то, кто лучше напишет парсинг дат и собственный менеджер памяти? У других участников это тоже было узким местом?
Вообще у INLINABLE кажется немного другая семантика, с кросс-модульной компиляцией связанная. Так-то GHC и функции совсем без прагмы решает, встраивать или нет, теоретически.
Сомневаюсь:
1) Откажитесь почти от всего STL. std::string, std::vector и std::map — это слишком быстро для Хаскеля. Только std::forward_list, только хардкор.
2) Где в C++ обычное тело цикла, в Хаскеле вызов функции. Причем вызов в Хаскеле — это не просто аргументы на стек и call, там же еще рантайм таскает по стеку туда-сюда кучу внутренних переменных.
Ваше замечание о полях верно в случае, если программа в целом написана в ленивом стиле, что с высокой производительностью само по себе не очень вяжется.
Насчет INLINABLE не согласен, GHC очень печется о лишней паре килобайт бинарника и сам почти ничего не инлайнит.
Помимо Джинни и КП я пробовал еще 2 системы, ни одна не понравилась.
Очень странно. Неужели в Интеле хотели провести соревнование на то, кто лучше напишет парсинг дат и собственный менеджер памяти? У других участников это тоже было узким местом?
type String = [Char].1) Откажитесь почти от всего STL.
std::string,std::vectorиstd::map— это слишком быстро для Хаскеля. Толькоstd::forward_list, только хардкор.2) Где в C++ обычное тело цикла, в Хаскеле вызов функции. Причем вызов в Хаскеле — это не просто аргументы на стек и
call, там же еще рантайм таскает по стеку туда-сюда кучу внутренних переменных.И так далее…
Насчет INLINABLE не согласен, GHC очень печется о лишней паре килобайт бинарника и сам почти ничего не инлайнит.
И на мой взгляд вопрос в Хаскеле не сколько в наивности, столько в бойлерплейте.
-finline-functions-by-default— серьезное упущение.{-# NOINLINE #-}же есть.Это в точности совпадает с описанием условий получения платной academic licence на сайте.