metaclass: (Default)
[personal profile] metaclass
Вот жеж страуструпъ намутил, блин.
const/не-const
указатель/ссылка/значение
куча/стек

Date: 2012-06-17 06:16 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Я думаю, написать можно и даже оптимизировать, но ничего хорошего с этого не выйдет. Оптимизированный под производительность хаскелевый код выглядит чудовищно. Интерор с сторонним тоже печален, впрочем.

Date: 2012-06-17 06:25 pm (UTC)
From: [identity profile] vaddimka.livejournal.com
Вот и основная разница. Плюсы - высокопроизводительный кроссплатформенный язык, синтаксис которого /местами/ ужасен, оброс всякими всякостями за годы. Все что он умеет можно писать и на чистых сях, но неудобно получается для больших проектов (или код выглядит как внутренности того же ffmpeg). Альтернативы я ему пока не вижу. Тут проскакивали попытки впихнуть в него гэрбедж-коллектинг, но при наличии shared_ptr оно и не сильно нужно (оверхед в случае наличия множества мелких объектов убирается аллокаторами памяти, типа гуглового или jemalloc, что позволяет избавляться от излишней фрагментированности кучи при активной работе с памятью).

Date: 2012-06-17 07:44 pm (UTC)
From: [identity profile] gds.livejournal.com
ну ебать. Разве у крестиков проблемы с синтаксисом? Проблемы как раз с семантикой.
Синтаксис -- почти всегда мелочь, на которую почему-то именно тупые кодеры обращают внимание.

Date: 2012-06-17 09:25 pm (UTC)
From: [identity profile] vaddimka.livejournal.com
я сколько общался со страдальцами - все жаловались на синтаксис
я сам не могу быть объективен, так как на плюсах пишу уже лет 15 и давно глаз замылен
т.е. что-то типа
typedef boost::shared_ptr< Frame > FramePtr;
FramePtr frame = boost::make_shared< Frame >( data, width, height, pixelformat );
не вызывает проблем никаких, но для многих может быть непривычным

Date: 2012-06-17 10:58 pm (UTC)
From: [identity profile] gds.livejournal.com
значит дебилы-страдальцы попадались. Это бывает.
Конкретно тут -- разве что type inference могла бы пофиксить синтаксис, да и то, не сильно: убрать typedef и/или тип значения frame. Но в данном куске кода это всего лишь косметика, к такому придираться низко.
К отсутствию type inference придерусь, но это не синтаксис, а типизация (которую я бы назвал "семантика для компилятора", хотя слишком вольно звучит).
В остальном -- пример очень понятный с точки зрения синтаксиса, если знать, что такое "t1<t2>" и "::" и представлять параметризованные типы данных (так называемая "большая лямбда" в функциональщине, "типы, зависящие от типов").

Date: 2012-06-18 05:17 am (UTC)
From: [identity profile] metaclass.livejournal.com
Ну, это не десятикратно вложенные вектора и алгоритмы из буста:)

Date: 2012-06-17 06:52 pm (UTC)
From: [personal profile] alll
И в связи с этим приподнимается вопрос: как будет выглядет тот же хаскель лет через тридцать сверхинтенсивного индустриального использования где надо и не надо - и пары-тройки ревизий с учётом накопившегося опыта. ;)

Date: 2012-06-17 07:10 pm (UTC)
From: [identity profile] yantayga.livejournal.com
Кстати да... Хаскель же очень молод...

Date: 2012-06-17 07:36 pm (UTC)
From: [identity profile] thesz.livejournal.com
Возрастом примерно соответствует C++. 1983 у C++, 1987 у Хаскеля.

Date: 2012-06-17 07:52 pm (UTC)
From: [identity profile] yantayga.livejournal.com
Имхо, историю С++ следует считать с создания С. Но не настаиваю...

Date: 2012-06-17 08:06 pm (UTC)
From: [identity profile] thesz.livejournal.com
Тогда и Хаскель надо тоже как-то отодвинуть. Возьмём за основу работы Чёрча 1936 года...

Date: 2012-06-17 08:21 pm (UTC)
From: [identity profile] yantayga.livejournal.com
Ну тогда историю С++ следует отсчитывать от Автокода (http://traditio-ru.org/wiki/%D0%90%D0%B2%D1%82%D0%BE%D0%BA%D0%BE%D0%B4)

Date: 2012-06-18 11:06 am (UTC)
From: [identity profile] nivanych.livejournal.com
Я согласен!

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 28th, 2025 03:38 pm
Powered by Dreamwidth Studios