Здравствуйте, push, Вы писали:
P>- отсутствие стандартных библиотек для основных направлений разработки ПО: audio, video, images, net, text processing, embedded, GUI, science, и т.д. короче тут можно перечислять вообще всё.
Наоборот, считай все более-менее серьёзные либы в этом направлении писаны на С/С++. Последние лет 10-15 почти всегда последнее.
На других языках наблюдается только бинд/обертки нейтивного плюсового кода.
Слово "стандартный" мог написать только человек, который не в теме наглухо.
P>*я пишу нет — это значит, что нет стандартных и удобных средств и библиотек.
Наоборот, только для плюсов есть всевозможные либы на абсолютно все востребованные направления. Ни для каких других языков такого набора готового функционала нет и не предвидится, ес-но.
P>Так-то в плюсах всё есть. Теоретически.
Фактически.
P>А практически либо переусложнённое, либо настолько раком вывернутое, что можно с уверенностью сказать — практически этого нет.
Без разбора конкретных не устраивающих АПИ популлярных библиотек подобные высказывания являются пустозвонством.
P>Короче полный швах по всем фронтам. Да, есть с++11+14+17, но это смешная капля от того, что надо сделать.
Да, многое надо было делать в нулевых, но тогда было увлечение управляемыми средами. С развитием мобильного сегмента опять вернулись к эффективности вычислений, поэтому, сложившаяся ситуация выглядит логичной. Нелогичным тут может быть лишь ошибочный подход родом из первой половины 2000-х, но ты демонстрируешь именно это. ))
P>По хорошему надо разогнать текущий комитет, сделать ревизию текущего состояния стандарта (убрать все UB и т.п.). И наконец добавить все эти нужные вещи.
Конкретней, плиз. Есть огромный список драфтов для включения в будущие версии. Пройдись по ним и дай нам знать, что конкретно ты имел ввиду.
P>И никаких "n" лет для обсуждения какой-то хрени. Учитывая весь предыдущий опыт, а также перенимая опыт других языков — _всё_ это вполне делается максимум за 1 (_один_) год.
Если ты про включение аудио в стандартную библиотеку, то, повторюсь, ты не в теме абсолютно.
Различные технологии аудио порой отличаются кардинально. Любая попытка привести всё к одному некоему "стандарту" — это будет вредная гиря на ногах для индустрии.
И да, тебе-то, как разработчику, какая нафик разница, идёт ли библиотека, например Cubase ASIO или C++20 std::asio_audio?
P>ПС: но как-бы то ни было, альтернативы плюсам пока что не наблюдается, печалька
Здравствуйте, push, Вы писали:
P>Ну, начнём с того, что я пока не вижу фич, которые поломают обратную совместимость.
Главная совместимость которая ломается современными C++ компиляторами это невозможность работать на WinXP. Нахрена мне ваши фичи если после компиляции оно не будет запустится с криками это не windows приложение. Дело не конкретно winxp, скоро это будет и win7, дело в принципе. Что за мода на цифровое старенее.
P>А если будут ломать — то в чём проблема сделать ключики компиляции? Старые либы, которые ломаются компилить как обычно, а новые фичи будут доступны в либах, скомпиленых с нужным ключиком (как, например в msvs есть ключики для разных версий языка, а можно делать и по другому — вообще только на фичи языка). Проблемы я вообще никакой не вижу.
Современные либы уже во всех вариантах и под все платформы и разные опции компиляции уже сейчас весят безбразно моного гигабайт.
P>А во-вторых, оно уже как бы да — auto, спецификация исключений И ничего, все выжили.
В C был такой синтаксис. Помоему гораздо приятнее чем в C++, где каждому аргументу надо писать тип. Да в коде меньше мусора.
int add(x,y)
int x,y;
{
int z;
z=x+y;
return z;
}
Кстати в C++ нельзя написать auto переменную заранее, только по месту.
Здравствуйте, kov_serg, Вы писали:
_>Главная совместимость которая ломается современными C++ компиляторами это невозможность работать на WinXP.
А при чём тут С++?
_>В C был такой синтаксис. Помоему гораздо приятнее чем в C++, где каждому аргументу надо писать тип. Да в коде меньше мусора.
_>Кстати в C++ нельзя написать auto переменную заранее, только по месту.
Жжошь!
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, CreatorCray, Вы писали:
_>>Главная совместимость которая ломается современными C++ компиляторами это невозможность работать на WinXP. CC>А при чём тут С++?
Вот и мне интересно. Он тут не просто причем. Это главный инструмент по выпиливанию старого железа.
Ведь компилировать с поддержкой предыдущих систем становиться всё геморройней и дороже. Хотя раньше это было бесплатно и из коробки.
В результате всё больше софта на базовом уровне становятся не совместимыми со старыми ос и железом, т.к. базовые элементы из которых они состоят собираются C++ с использованием сторонних библиотек, которые любят новомодное и компилятор C++latest подавай, а уж они генерируют бинарники которые не будут работать на старых системах.
Получаем механизм цифрового устаревания. Кому от этого хорошо понятно. Но нам то что делать со всем этим. Согласиться и каждый месяц покупать новое по и железо.
Простой пример: cygwin — не на winnt, не на winxp уже не ставиться, хотя раньше всё работало при этом на xp не работает инсталятор, а не сам cygwin.
Если железяка выполняет свои функции то с какого перепоя она устарела. Не модно, не молодёжно — плевать, главное работает и выполняет поставленные задачи.
Если надо модно то есть angular и другие шедевры компилирующие из javascript в javascipt. Может уже пора C++ на webassembly собрать и заморачиваться, отвязаться от ос и привязаться к браузеру.
Я вообще смотрю на это стремление ко всему новому. И не очень понимаю разве не видно что лучше не становиться. КПД использования железа непрерывно падает, несмотря на то что железо становиться всё более изощрённым. Для сравнимых задач теперь требуется в десятки раз больше ресурсов.
В целом мне как-то фиолетово у меня основная ось linux. Но в виртуалке xp работает, и когда софт говорит что эта ось не поддерживается этот софт идёт лесом. Остальные win7 и win10 на виртуалках тоже есть, но они используются по необходимости.
Здравствуйте, Muxa, Вы писали:
M>Как регистронезависимо сравнивать будешь их друг с другом?
Так я в самом начале написал как — через функцию, которая сравнивает без учета регистра.
MTD>>Во-вторых, ты не сможешь использовать методы которые принимают std::string. M>Метод стандартной библиотеки? Можно пример?
Слушай, ну если ты на С++ не пишешь, то зачем в тему влез? Любой конструктор от класса отнаследованного от std::exception, например, std::o[i]fstream
M>Твой собственный метод? Ты автор — пиши метод так чтобы он принимал все что должен принимать.
Вот про это я в самом начале и писал — люди совершенно оторвавшиеся от реальности. Все же хотят вместо:
void print(const std::string& text)
Писать:
template<
class CharT,
class TraitsT,
class AllocT>
void print(const std::basic_string<CharT, TraitsT, AllocT>& text)
Здравствуйте, CreatorCray, Вы писали:
MTD>>Нет, я хочу из коробки кроссплатформенно создать директорию. Это рокет сайнс? CC>Ты не поверишь но для абстрактной платформы в вакууме — да!
Этим аргументам 100 лет в обед и уже тогда они критики не выдерживали. Про треды тоже говорили, что никому не надо, на некоей платформе их может не быть, а потом разум восторжествовал и ввели, жить стало проще. Это все равно, что если у кого-то нет ног, то пусть все ездят в креслах каталках. Нет, у кого есть ноги пусть ходят, а для абстрактной платформы в вакууме это просто не будет работать.
CC>Кроссплатформ в этом плане страшное зло.
Да, ради 0.5 процента где нет файловой системы с директориями должны страдать 99.5%. Правда в комитете, хвала богам, не совсем с этим согласны и таки поддержку добавляют, хоть и криво.
Здравствуйте, CreatorCray, Вы писали:
MTD>>Ты про то, что угара нет? А по моему есть, в 3 раза слить Питону — это надо постараться. CC>А при чём тут С++ к криворуким погромистам? При должной кривизне верхних хваталок можно и в бОльшее колво раз слить.
Ты сейчас на сам божественный Буст наехал — тебя будут ненавидеть.
Здравствуйте, CreatorCray, Вы писали:
MTD>>Мне бы хотелось, чтобы наконец в стандарте появились адекватные средства для этого. Ты против? CC>Да, потому что будет как с другими стандартными всемогутерами: громоздко и неудобно но зато на все случаи жизни. CC>"А клиент хотел просто шину на верёвке" (С) CC>Так что нафиг, уж лучше мы своими специализированными фреймворками будем и дальше пользоваться.
STL ты не используешь? Да и по Бусту ты знатно проехал, один его логгер чего стоит, который никто не использует, потому что не может настроить.
Здравствуйте, CreatorCray, Вы писали:
MTD>>Например, в С++ передали вектор в функцию не по ссылке — получили тормоз. CC>Ну да, С++ требует чтоб аффтар понимал что он делает. CC>Передача по ссылке, по const & и по значению — это ж три кардинально разных use case.
Зачем рукавицы и кожух вокруг диска надеюсь понятно? В С++ можно тупо опечататься — всего один символ не набрать. Страуструп, кстати, вполне адекватный мужик и в Дизайне и эволюции писал, что считает, что копирование по дефолту надо было отключить.
Здравствуйте, AlexGin, Вы писали:
AG>Неадекваты — пытаются на форумах привести абсолютно всё к одной общей гребенке. AG>В той компании где я тогда работал, требовалось выполнить это на PC, в среде ОС Windows, при этом без спец-требований к аппаратуре.
В этом случае я бы взял какую-нибудь проверенную временем фортрановскую библиотеку.
В свое время мы именно так и делали. Все, что требовалось — разобраться с взаимодействием модулей на разных языках. Я тогда не нашел, как обращаться к безымянному COMMON-блоку. Но вменяемые разработчики не делают безымянных COMMON-блоков.
Здравствуйте, MTD, Вы писали:
MTD>Этим аргументам 100 лет в обед и уже тогда они критики не выдерживали. Про треды тоже говорили, что никому не надо, на некоей платформе их может не быть
Да просто надо пользоваться платформенными и не морочить никому голову. Потому что генерализация всегда получается настолько кривая что без слёз не взглянешь, а платформенные полезняшки и вкусности оказываются за бортом и приходится чтоб ими попользоваться городить такой угар что лучше бы сразу писали на платформенных и не выделывались.
Что с потоками что с файлами.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, MTD, Вы писали:
MTD>Ты сейчас на сам божественный Буст наехал — тебя будут ненавидеть.
Я на него уже много лет наезжаю, натрахавшись с их багами и багами в фиксам к багам в своё время.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, MTD, Вы писали:
MTD>STL ты не используешь?
Отказался давно.
Использую STL API compatible контейнеры, которые когда то пришлось написать сначала производительности ради, потом ещё и предсказуемости для.
MTD> Да и по Бусту ты знатно проехал, один его логгер чего стоит, который никто не использует, потому что не может настроить.
Угу, логгер на вариадиках у нас тоже свой имееццо, простой как три копейки и быстрый.
В бусте народ просто забился в Александрескувском экстазе и сделал GENERIC! ВСЁ! ПАРАМЕТРИЗУЕМО!
Давно когда то первое время пытались бороцца выкусывая код из буста и выкидывая излишества, получая порой реальный прирост скорости 2x+
Потом надоело и просто стали писать сразу своё, и под задачу. Оказалось быстрее и менее баговано чем курочить бустовышивания.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, MTD, Вы писали:
MTD>std::o[i]fstream
Без обид, но я лично считаю пользующихся этим ужасом просто профнепригодными.
std streams это один из самых лютых дизайнерских косяков.
MTD>
MTD>template<
MTD> class CharT,
MTD> class TraitsT,
MTD> class AllocT>
MTD>void print(const std::basic_string<CharT, TraitsT, AllocT>& text)
MTD>
Здравствуйте, Privalov, Вы писали:
P>В этом случае я бы взял какую-нибудь проверенную временем фортрановскую библиотеку.
Зачем? Берем интеловскую IPPL, и вуаля.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Здравствуйте, alex_public, Вы писали:
_>И всё это (не считая модулей, которые очевидно нельзя реализовать библиотекой) имелось в Boost'е уже много много лет назад (и частично уже переехало в стандарт). Но у тебя же фобия на Boost, поэтому для тебя это реально проблема. ))) Сочувствую. )))
Судя по постам, как и у всех бустофобов, еще и представление о бусте как о чем-то едином-неделимом.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Здравствуйте, CreatorCray, Вы писали:
CC>Использую STL API compatible контейнеры, которые когда то пришлось написать сначала производительности ради, потом ещё и предсказуемости для.
Понял, да, есть ряд задач для которых STL не подходит.
CC>В бусте народ просто забился в Александрескувском экстазе и сделал GENERIC! ВСЁ! ПАРАМЕТРИЗУЕМО! CC>Давно когда то первое время пытались бороцца выкусывая код из буста и выкидывая излишества, получая порой реальный прирост скорости 2x+ CC>Потом надоело и просто стали писать сразу своё, и под задачу. Оказалось быстрее и менее баговано чем курочить бустовышивания.