Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[13.58.113.193] |
|
Страницы: (32) « Первая ... 23 24 [25] 26 27 ... 31 32 ( Перейти к последнему сообщению ) |
Сообщ.
#361
,
|
|
|
Цитата Flex Ferrum @ По стандарту и сяшка требует определенной поддержки от рантайма, ведь у сяшки, внезапно, тоже есть стандартная библиотека. А так от плюсов успешно отрезается рантайм полностью. Да, мы теряем STL, RTTI, исключения и т.д., но сами возможности языка остаются при нас.C++ (по стандарту) требует определённой поддержки от рантайма - исключения, rtti, реализация операторов и прочие мелочи. Поэтому рантайм линковаться будет. И инициализация его будет. Причём фишка в том, что даже если отключить исключения опцией, их инфраструктура все равно будет инициализироваться. Вот сразу нагуглилось - How to write a C++ program without libstdc++ |
Сообщ.
#362
,
|
|
|
Цитата JoeUser @ Цитата D_KEY @ Никто же не заставляет учить С++ в полном объеме. Например, можно вообще не заморачиваться с созданием собственных классов, но использовать STL как удобный набор отдельных "инструментов". Обычный процедурный подход. И наоборот, можно не использовать STL, а самому реализовывать свой набор "инструментов" - получаем ООП без метапрограммирования, а можно заморочиться и метапрограммированием. Вкус приходит во время еды.Вопрос в том, дает ли тебе C++ по сравнению с Си столько, что его стоит изучать при условии его сложности и многочисленных тонкостей. Для себя дома и один ты можешь писать на чем угодно. А если мы говорим о работе или открытых проектах с несколькими участниками, то эти рассуждения не работают. |
Сообщ.
#363
,
|
|
|
Т.е выводы на мой взгляд однозначны:
- Программы написанные на Си работают не быстрее аналогичных написанных на С++. Возможно, даже медленнее, за счёт того, что С++ какие-то вещи переносятся в compile-time - По размеру преимуществ тоже может не быть. Но тут, при определённых усилиях. - На С++ легче писать более надежные программы, опять же, за счёт того, что компилятор выполняет массу рутинной работы. Которую в Си надо делать вручную. |
Сообщ.
#364
,
|
|
|
Субъективное мнение тоже должно быть обосновано. ИМХО |
Сообщ.
#365
,
|
|
|
Цитата D_KEY @ В таком контексте вопрос ТС вообще не имеет смысла, так что не в тему. Для себя дома и один ты можешь писать на чем угодно. А если мы говорим о работе или открытых проектах с несколькими участниками, то эти рассуждения не работают. |
Сообщ.
#366
,
|
|
|
Не забыл. И более того - если добавить что-либо плюсовое (хоть тупо #include <iostream>) - зависимость от libstdc++, естественно, появляется. Добавлено Цитата Олег М @ Т.е выводы на мой взгляд однозначны: С этим согласен. |
Сообщ.
#367
,
|
|
|
Цитата D_KEY @ Для себя дома и один ты можешь писать на чем угодно. Все верно - и это мой ответ на 2-й пункт вопроса топика. Цитата D_KEY @ А если мы говорим о работе или открытых проектах с несколькими участниками, то эти рассуждения не работают. Это может быть ответом на первый пункт вопроса топика. А может быть потому, что в разных командах существуют разные подходы к проектированию. Некоторые требуют понимания, но не обязательного использования отдельных конструкций и/или парадигм языка. Требование: "знать все" - конечно манит но такого не бывает, как правило. |
Сообщ.
#368
,
|
|
|
Цитата Олег М @ Т.е выводы на мой взгляд однозначны: - Программы написанные на Си работают не быстрее аналогичных написанных на С++. Возможно, даже медленнее, за счёт того, что С++ какие-то вещи переносятся в compile-time - По размеру преимуществ тоже может не быть. Но тут, при определённых усилиях. - На С++ легче писать более надежные программы, опять же, за счёт того, что компилятор выполняет массу рутинной работы. Которую в Си надо делать вручную. Тут надо отметить ещё что: серьёзные С-программисты не работают без lint или чего-то подобного. Точно так же, как серьёзные программы на плюсах не пишутся без использования статических анализаторов и санитайзеров. Это что-то вроде правил гигиены и чистых рук. Компилятор не может отловить всё (да и не должен), поэтому статический и динамический анализ ему в помощь. |
Сообщ.
#369
,
|
|
|
Цитата JoeUser @ Требование: "знать все" - конечно манит но такого не бывает, как правило. И заметь, что для си(и большинства языков) это звучит более реально, чем для C++. Язык сложен. И все опровдание для этого - история его и отрасли. |
Сообщ.
#370
,
|
|
|
Цитата Flex Ferrum @ Надо еще отметить, что степень необходимости линтеров и статических анализаторов прямо связана с недостатками языка. И почему это компилятор не должен отлавливать все? Идеальный сферический язык (и компилятор) не должен требовать никаких линтеров и анализаторов. Тут надо отметить ещё что: серьёзные С-программисты не работают без lint или чего-то подобного. Точно так же, как серьёзные программы на плюсах не пишутся без использования статических анализаторов и санитайзеров. Это что-то вроде правил гигиены и чистых рук. Компилятор не может отловить всё (да и не должен), поэтому статический и динамический анализ ему в помощь. |
Сообщ.
#371
,
|
|
|
Цитата D_KEY @ И заметь, что для си(и большинства языков) это звучит более реально, чем для C++. Чисто ИМХО - сложность C++ заключается только в метапрограммировании. А SFINAE вообще вершина маразма. Чтобы получить помошь в контроле типов, нужно "научить" компилятор в своей программе правильно подставлять типы (если точнее - подставлять нужные сигнатуры). Ну и нахрена мне такая помощь? Должны помогать мне, а по факту, помогаю я Добавлено А вот все остальное в С++ совершенно понятно и прозрачно. И если добавляет сложность, то только в дополнительном объеме документации о полезностях. |
Сообщ.
#372
,
|
|
|
Цитата applegame @ Надо еще отметить, что степень необходимости линтеров и статических анализаторов прямо связана с недостатками языка. И почему это компилятор не должен отлавливать все? Идеальный сферический язык (и компилятор) не должен требовать никаких линтеров и анализаторов. Нет, не связана. Статические анализаторы есть для многих языков. Программисты - люди, они пишут с ошибками. Часть ошибок - довольно популярны. На их детект и настроены статические анализаторы. Что не может поймать статический анализатор - ловят динамические и тесты. В их необходимости, я думаю, ты не сомневаешься? |
Сообщ.
#373
,
|
|
|
Цитата Flex Ferrum @ Это что-то вроде правил гигиены и чистых рук. По-моему, это моя фраза. Только я вроде подразумевал, что при программировании надо соблюдать определённые правила, тогда и профайлер не понадобится. |
Сообщ.
#374
,
|
|
|
Цитата Олег М @ По-моему, это моя фраза. Только я вроде подразумевал, что при программировании надо соблюдать определённые правила, тогда и профайлер не понадобится. Не, мы о разном. |
Сообщ.
#375
,
|
|
|
Цитата Flex Ferrum @ Тут надо отметить ещё что: серьёзные С-программисты не работают без lint или чего-то подобного. Ну и серьёзные программисты должны быть в курсе проблематики. Соответственно у них не должно возникать вопросов по-поводу Си vs С++ |