avva: (Default)
[personal profile] avva
В случайно встреченной записи прочитал такой текст:

"Выкачал себе gcc и g++ версий 2.95, 3.3, 3.4 и 4.0. Сразу написал себе Makefile'ики, чтобы тестить по ним всем (точнее, скриптик, чтобы эти Makefile'ики генерить)..."

Моя первая мысль: к этому началу подходит только концовка с баш.орг.ру. "блин. не может быть так сексуально неудовлетворен человек! не может!"

Прочитал дальше, и оказалось, что человек работает над чем-то, что называется InteLib. Прочитал, что это такое.

Боже мой, какое ужасное извращение. Впечатляет.

(автор этого дела - юзер [livejournal.com profile] croco, преподаватель в МГУ)

Date: 2005-10-16 07:51 am (UTC)
From: [identity profile] penguinny.livejournal.com
Прежде чем обсуждать феерическую кривизну C++, расскажите, пожалуйста, на каком языке можно эффективно скомпилировать сложные, допустим, векторные операции, записывая их в удобном, упакованном виде?

Date: 2005-10-16 07:59 am (UTC)
From: [identity profile] cmm.livejournal.com
разделим вопрос на два:

1. "на каком языке можно эффективно скомпилировать X?"

это вопрос не столько языка (как абстрактной спецификации), сколько конкретной реализации.  мне известны реализации языков, не являющихся C++, умеющие генерировать векторные операции для современных процессоров.

2. "на каком языке можно записывать X в удобном, упакованном виде?"

на языках с адекватными механизмами синтаксической абстракции.  на C++, оказывается, как мы видим, тоже можно.  только это чрезвычайно неудобно и не так чтобы уж очень компактно.  не говоря уже о читабельности, но это дело привычки (видимо).

Date: 2005-10-16 08:16 am (UTC)
From: [identity profile] penguinny.livejournal.com
Нет, вы неправы. Речь идёт именно о произвольных сложных объектах. Да, теоретически можно построить компилятор, оперирующий векторами и/или матрицами. Но это не единственный очевидный случай - хотя и один из самых распространённых. Возьмём комплексные числа. Они были реализованы на уровне компилятора в фортране. Ну а что если нужно выйти за пределы двойной точности? Обязательно идти на рабочую станцию с процессором покруче? А что если нужно иметь, допустим, библиотеку с комплексными числами произвольной точности? Нельзя любую стоящую перед программистом задачу перекладывать на плечи компилятора. Это просто невыгодно по соотношению цена/время разработчиков.

А потом вы предлагаете писать то же самое на каком-то ещё языке, не приводя примеров. Мне прекрасно понятно, почему примером нет. По эффективности компиляции эти языки даже близко не приблизятся к C++. А библиотек со всеми дикими и прекрасными типами данных, иногда необходимыми для различных практических вычислений, в них, разумеется, не существует.

Ваше решение - идеальное. Моё - практическое. Вы предлагаете мне подождать, пока нужные мне или кому-то ещё задачи можно будет посчитать легко. А я подозреваю, что такие задачи никогда не станут по-настоящему массовыми, так что поддержки шире чем сейчас ждать не приходится. Именно поэтому, имхо, компиляторы C++ ещё долго будут испытывать на прочность самыми неприличными способами.

Date: 2005-10-16 08:38 am (UTC)
From: [identity profile] cmm.livejournal.com
> Нельзя любую стоящую перед программистом задачу перекладывать на плечи компилятора.

а?

> По эффективности компиляции эти языки даже близко не приблизятся к C++

ну разумеется.  никогда.

> А библиотек со всеми дикими и прекрасными типами данных, иногда необходимыми для различных практических вычислений, в них, разумеется, не существует.

конечно же.

> Вы предлагаете мне подождать

а?

я удалюсь из Вашей беседы с самим собой, с Вашего позволения.

Date: 2005-10-16 08:44 am (UTC)
From: [identity profile] penguinny.livejournal.com
А вы ещё и удивительно вежливы. До свидания.

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 30th, 2025 03:16 am
Powered by Dreamwidth Studios