LINUX.ORG.RU

Будущее g++

 ,


0

2

Привет. Были разговоры, что шланг заменит ГЦЦ. Вот смотрю на g++, он активно пилится, оперативно внедряются всякие плюшки из новых стандартов, не похоже как-то на агонию. Может мне не повезло, но для крестов я так и не встретил ни одной нормальной tag системы, а кодить без неё удовольствие сомнительное. Шланг решил эту проблему, дав возможность комфортного, крестового кодописания. Вопрос - зачем нужен g++, если рядом должен быть установлен Шланг? Зачем вообще gcc тратит силы на g++, может лучше вообще забросить и отдать кресты в руки шланга? Просто интересно, ведь пилить компилятор - не самое простое занятие, да ещё и бессмысленное учитывая то, что g++ без шланга неполноценен. О чём они там в ГЦЦ думают? Может я просто не умею голый g++ (без шланга)?

★★
Ответ на: комментарий от bonta

не выглядят, там всё удобно и красиво

По сравнению с чем? С Си? Или же с ML/Swift? По сравнению с последним это всё беспомощные калеки.

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

исключения часть ртл, они отключаются т.е. частью языка они не являются это пришитый функционал

Для обработки исключений необходимо изменить кодогенерацию, потому они настолько же часть RTL, насколько и часть компилятора.

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

Вызвать деструктор вручную, почему нет

А потому что зачем тогда все пляски изначально создавались, если в итоге все равно всё нужно писать и контролировать руками.

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

вы естественно один в один не сможете получить тот же с++, но сможете получить его подобие которое будет работать схожим образом, естественно в отсутствии синтаксического сахара в С это будет выглядеть страшненько, но сути дела это не меняет

Человек пишет не на машинных кодах, человек пишет на конкретном языке. По этой причине, даже если сгенерированный код в итоге одинаков, ментальные затраты на его написание в случае Си и C++ не сравнимы, писать на C++ намного безопаснее и проще.

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

Чистый Си уже давно пора закопать

Ну я пишу на Си. В моем проекте профита от C++ практически нет, потому что RAII невостребовано, при этом код должен знать каждый свой байтик и не допускает свободной работы с динамической памятью, потому всякие абстракции, вроде контейнеров, протекают и невостребованы. Да, таких проектов нынче мало, но это не значит прям-таки «Си пока закопать», потому что прежде всего у самого C++ есть свои проблемы, которые уже никогда не решат, из-за чего Си не спешат закапывать.

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

у С есть преимущество в том, что его ABI более-менее стандартизировано и универсализировано, в отличие от того же C++, где каждый компилятор лепит свои несовместимые ABI

Это не преимущество Си, на самом деле. Дело в том, что Си изначально делался как один сплошной интерфейс к ассемблерному коду, поскольку и сам Си транслировался в асм. Вот и получается, что инетрфейсы в Си хорошо проработаны. Однако, очень часто эти самые интерфейсы тебе не нужны, а нужно инлайнить, нужно подставлять константы вместо вызова функций, нужно вообще выкидывать неиспользуемые символы из результирующего бинарника — и тогда выясняется, что Си плохо подходит для этой роли.

Ты можешь экспортировать функцию — а как ты будешь экспортировать шаблон? Класс? Перегруженную функцию? Либо через исходные коды, либо через четко прописанное руками ABI, но никак не линкуясь с объектником от чужого компилятора.

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

потому что прежде всего у самого C++ есть свои проблемы, которые уже никогда не решат

Какие проблемы есть в C++ если не использовать проблемный функционал C++? Что мешает полностью отказаться от режима компиляции Си (кроме совместимости) и компилировать всё в режиме C++?

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

Что мешает полностью отказаться от режима компиляции Си (кроме совместимости) и компилировать всё в режиме C++?

Ничего. Ничего не приобретается и не теряется.

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

Именно по идеологическим.

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

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

On January 2, Stallman renewed the conversation by noting that he hoped «we can work out a kind of ‘detailed output’ that is enough for what Emacs wants, but not enough for misuse of GCC front ends».

М-дааа… Может с точки зрения опенсорца он и прав, но это уже очевидное торможение развития технологии в угоду принципам. Может и хорошо что его турнули, может теперь дело с мёртвой точки сдвинется.

UPD. Первый же комментатор made a point: теперь, когда есть LLVM, вся эта паранойя не имеет никакого смысла.

UPD2. Мог бы в лицензию свои хотелки вписать, в конце концов.

dimgel ★★★★★
()
Последнее исправление: dimgel (всего исправлений: 2)

Ты смотришь со стороны x86, на некоторых платформах GCC это основа и пилить *энд для еще и шлагна - не всегда будут. Но если думать только о популярных архитектурах, то может ты и прав

А еще лицензии разные же

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.