LINUX.ORG.RU
ФорумTalks

А почему из c11 выкинули complex.h?

 , , тормоз


0

2

Предыстория: жил себе не тужил и вдруг выяснил, что в c99 были комплексные числа из коробки: https://ru.wikipedia.org/wiki/Complex.h Но радость была недолгой, так как выяснилось что оные были выставлены на мороз (сделаны необязательными) в с11: https://en.wikipedia.org/wiki/C11_(C_standard_revision)#Optional_features

Кто-нибудь помнит почему?

Аналогично были выкинуты Variable length arrays

★★★★★

Последнее исправление: Evgueni (всего исправлений: 1)
Ответ на: комментарий от hummer

Это уже было ажно в 1975 году на лисп-машинах. Потом регулярно были попытки разной степени ненужности типа этой: https://github.com/dakrone/eos/blob/master/eos.org не говоря уж о emacs как замена wm. То есть всякий юзерспейс не проблема, проблема в железной поддержке лиспа, которая таки вполне себе была.

Evgueni ★★★★★
() автор топика
Последнее исправление: Evgueni (всего исправлений: 3)
Ответ на: комментарий от Evgueni

Что же это за ОС, которой нужна поддержка языка программирования высокого уровня сразу в железе? Неужели Лисп не компилится в машинный код?

hummer
()
Ответ на: комментарий от Evgueni

Не даром, до сих пор Fortran существует в современности в том числе и потому, что комплексные числа там из коробки от рождения.

потому я на Фортране до сих пор и пишу :)

WerNA ★★★★★
()
Ответ на: комментарий от hummer

Одно лишь требование объявлять все переменные в начале выглядит сейчас анахронизмом.

В C, до C99 точно такое же требование…

fsb4000 ★★★★★
()
Ответ на: комментарий от fsb4000

В C, до C99 точно такое же требование…

Не совсем, в ANSI C можно было объявлять переменные в начале любого нового блока, что вовсе необязательно в начале новой функции.

hummer
()
Последнее исправление: hummer (всего исправлений: 1)
Ответ на: комментарий от X512

Дык B было допилить ещё проще, добавив байты и структуры.

luke ★★★★★
()
Ответ на: комментарий от luke

ну… я рад за тех, кто им пользуется. А меня Embedded C кормит, разработка на фортран сейчас дешевле, как следствие - рынок решает.

aiqu6Ait ★★★★
()
Ответ на: комментарий от X512

Покажите на них Emacs.

Посмотри на Symbolics.

mv ★★★★★
()
Ответ на: комментарий от cvs-255

Чтобы программистам которые приходят в проект не надо было уметь виртуозно владеть C, C++ и в довесок Fortran-ом. Матлабу ещё тяжелее, там ещё и Java есть (а может даже и scala, фиг знает что там на jvm-е то крутится), но там и деньги платят за написание кода.

peregrine ★★★★★
()
Ответ на: комментарий от peregrine

Fortran это не C++ им виртуозно владеть гораздо проще. И какая разница что внутри у Матлаба? У него есть Сишный API.

Reset ★★★★★
()
Ответ на: комментарий от Reset

Разница есть для разработчиков матлаба, а не для пользователей. Но матлаб коммерческий и за работу нанятым разработчикам платят, а вот GNU Octave свободный и за коммиты в него не платят.

peregrine ★★★★★
()
Ответ на: комментарий от luke

Чем бы дитя не тешилось — лишь бы программировало.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от aiqu6Ait

Могут быть, а могут и не быть. А в clang VLA точно нет уже сейчас.

Но честно говоря, мне на VLA как-то поровну. Меня больше complex.h беспокоит.

Evgueni ★★★★★
() автор топика
Последнее исправление: Evgueni (всего исправлений: 1)
Ответ на: комментарий от hummer

Паскаль, мой первый ЯП, безвозвратно устарел.

Расскажи это авторам Double Commander, лучшего графического ФМ под линукс (подчёркиваю, я про файловые менеджеры, а не закосы под Проводник (c) Windows (TM)).

Одно лишь требование объявлять все переменные в начале выглядит сейчас анахронизмом.

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

С другой стороны — я привык, что в плюсах я объявляю переменную и почти всегда тут же её инициализирую. С паскалевским подходом так уже не получится.

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

Тут уже отмечали, что в современных компиляторах Паскаля последнее давно не актуально. Очевидно, что языки и инструменты обеспечивающие их работу меняются. Проблема Паскаля не в том что он плох/хорош, а в том, что в реальной работе предметников с небольшими знаниями информатики он не используется.

Поинт же топика в том, что временами стандарты меняются в сторону примитивизации и IMHO это не есть хорошо.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от hobbit

Расскажи это авторам Double Commander, лучшего графического ФМ под линукс (подчёркиваю, я про файловые менеджеры, а не закосы под Проводник (c) Windows (TM)).

Причём тут авторы Double Commander?

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

Ужасом это выглядит для тех, кто надеется на более оптимальное использование стека.

hummer
()
Ответ на: комментарий от hummer

Ужасом это выглядит для тех, кто надеется на более оптимальное использование стека.

Разверни мысль подробнее. Ты намекаешь на то, что если в рамках одной области видимости переменная более не используется, компилятор того же C++ может вхреначить на её место другую, объявленную ниже? (Кстати, в Фортране для подобного было специальное ключевое слово, в Си-подобных можно использовать union, хотя предназначен он, конечно, для другого.)

hobbit ★★★★★
()
Ответ на: комментарий от hummer

Ужасом это выглядит для тех, кто надеется на более оптимальное использование стека.

можно тоже пример, если есть какой-нибудь.

Можно будет посмотреть работу оптимизатора fpc, может его чему-нибудь научили…

fsb4000 ★★★★★
()
Ответ на: комментарий от hobbit

Ты намекаешь на то, что если в рамках одной области видимости переменная более не используется, компилятор того же C++ может вхреначить на её место другую, объявленную ниже?

Да.

hummer
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.