LINUX.ORG.RU

[теории-тред] Накидайте доводов убогости кода C++ only


0

3

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

А какие доводы из теории и своей личной практики в мою пользу можешь привести ты, ЛОР?

Всем спасибо.

★★★★★

Последнее исправление: LongLiveUbuntu (всего исправлений: 1)

Что такое C++-only? Парсер ini файлов пишется в 20 строк с использованием std::string и std::map. Это C++-only или нет?

Reset ★★★★★
()

Правильно, strсаt — совершенно бесполезная функция, пользоваться ей не надо.

Deleted
()

> даже strcat()

твой друг умнее тебя

aho
()

Твой друг научится программировать, а ты нет.

baverman ★★★
()

> strcat() и прочие не хочет использовать в коде

И слава Б-гу!

yoghurt ★★★★★
()

Ты ему тогда скажи, чтобы он и свой менеджер памяти написал. Потому как изменение поведения new на семантике программы скажется гораздо сильнее, чем переписывание strcat().

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

> Потому как изменение поведения new на семантике программы скажется гораздо сильнее, чем переписывание strcat().

не сильнее чем подмена malloc/free и самого strcat

aho
()

Потому, что в C++ strcat()-у не место.

А парсер ini-файлов пишется совсем просто: man std::string и std::map

Deleted
()

Велосипеды - зло.

Впрочем, если твой друг - студентота или школоло, то пусть пишет - поднаберется опыта.

Manhunt ★★★★★
()

Я знавал одного такого типа. Ему поставили задачу: прикрутить к системе нотификацию по e-mail. (Hint: заюзать библиотечный компонент, сформировать тело письма и отправить его одним вызовом.) Тип пропал на две недели, после чего объявился с мешками под красными глазами, и коммитнул нехилую кучку кода. Заказчик ознакомился, окончательно фалломорфировал, схватился руками за голову и возопил: «но зачем, Христа ради, зачем ты реализовал SMTP-клиент?!!» - на что был получен невозмутимый ответ: «Зато теперь у меня есть полный контроль над SMTP-сессией».

anonymous
()

Так можно делать или нубасам, в целях самообучения. Либо Гуру, так как они и вправду напишут лучше.

А учитывая:

парсер ini-файлов
так у меня получится производительнее и я буду знать как работает мой код"

Какая нахрен производительность??? Он нубас. А еще дурак. Просто не общайся с ним и не спорь. Ничего не докажешь - проверено.

dizza ★★★★★
()

Страшно даже представить, каких объёмов он собрался парсить файлы, если даже на С++ его волнует вопрос производительности.

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

>если даже на С++ его волнует вопрос производительности

Проблемы производительности всегда должны волновать программиста

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

А я даже знаю рецепт. Пересадить всех на атомы, желательно 270е. Особенно разработчиков десктопного софта. Они тогда и на питоне ракет сварганят.

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

> Проблемы производительности всегда должны волновать программиста

Только после того, как архитектура программы ясна. А иначе — вечный отлов необъяснимых ошибок.

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

> Пересадить всех на атомы, желательно 270е. Особенно разработчиков десктопного софта. Они тогда и на питоне ракет сварганят.

+inf

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

Ну скуль, конечно, очень авторитетный источник!

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

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

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

А проблемы производительности труда программиста никого волновать не должны.

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

Я все ждал, когда дадут ссылку на этот тред))

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

По вашей ссылке:

Moreover ты можешь пойти программировать на С++ ракеты земля-марс, получишь 400 000 $

Мне больше не хочется летать на космических кораблях.

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

Потому-что среди программистов много думающих людей.

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

Просто так. Здесь вообще все просто так кроме денег. ©

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

Друг ТСа настолько суров, что...
И, вообще, другу ТСа важна производительность при разборе ini файлов, поэтому готовые компоненты не покатят - надо писать свою реализацию.

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

>а чо, для плюсов нет годной библиотеки парсинга ини-файлов?

В бусте вроде есть.

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

Парсилка в данном случае пишется быстрее, чем ищется библиотека, которая это сделает (хотя если в проекте и так используется Poco, то будет логично применить Poco и для парсинга файлов).

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

Ini-файлы редко бывают больше 200-300 строк. Эти 200-300 строк можно хоть на баше распарсить, на быстродействии вряд ли скажется так, что кто-то сможет заметить.

Deleted
()

Молодец Ваш друг, если даже в такой нересурсоемкой задаче стремится все равно ее реализовать малой кровью. Посоветуйте ему реализовать сие деяние на ассемблере.

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

>В любой теме о крестах обязательно упоминают Qt, даже если ни к месту. К чему бы это?

Потому что Qt - это лучшее, что написано на С++ вообще. Даже разработчики KDE выбрали Qt, и это о чем-то говорит.

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

> Даже разработчики KDE выбрали Qt

KDE

Накидайте доводов убогости кода C++



Это многое объясняет, да.

anonymous
()

Если речь идет о новичке - то он всё правильно делает. Плюс - что значит это странное название темы, и содержание вообще? Он должен был писать не на чистом С++? Это как? MSVC++, Qt MOC? Или может прилепить обработчик на пистоне? Нет доводов убогости кода «С++ only».

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

Имеется в виду отказ от использования стандартной библиотеки.

LongLiveUbuntu ★★★★★
() автор топика

Ну решил и решил, вам то что? Или вы работаете на проектом и он решил повысить его стоимость за счёт увеличения времени разработки?

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

>А принцип повторного использования кода?

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

Booster ★★
()

Пишет на чистом С++ ... же strcat() и прочие не хочет использовать в коде ...

И что тебе не нравится?!

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