Far Manager Unicode и std::vector, std::list, std::queue.
Far Manager Unicode и std::vector, std::list, std::queue.
Почему в исходниках Far на каждый чих городится свой array, list, stack или queue?
Что мешает использовать стандартные классы std::vector, std::list и std::queue? Я понимаю, что когда Евгений Рошаль начал писать Far, то этих типов не было и в помине. Но сейчас-то они уже есть.
Что мешает использовать стандартные классы std::vector, std::list и std::queue? Я понимаю, что когда Евгений Рошаль начал писать Far, то этих типов не было и в помине. Но сейчас-то они уже есть.
Re: Far Manager Unicode и std::vector, std::list, std::queue.
То есть, вы считаете, что написать "шляпа" на иврите это ответ умного человека?t-rex wrote:כובע
- Alexey Samlyukov
- Posts: 1765
- Joined: Tue 15 Mar, 2005 17:28
- Been thanked: 7 times
- Contact:
Re: Far Manager Unicode и std::vector, std::list, std::queue.
всегда удивлялся, как такие закорючки можно разобрать...
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: Far Manager Unicode и std::vector, std::list, std::queue.
А почему надо использовать "стандартные"? Ты объясняй почему ты считаешь, что это лучше. Доказывай даже. С какой стати щас все все бросят и начнуть перелопачивать весь код? Если будешь чепуху нести, причем, а не предметно доказывать, то могут и забанить, учти.eJ wrote:Почему в исходниках Far на каждый чих городится свой array, list, stack или queue?
Что мешает использовать стандартные классы std::vector, std::list и std::queue? Я понимаю, что когда Евгений Рошаль начал писать Far, то этих типов не было и в помине. Но сейчас-то они уже есть.
Re: Far Manager Unicode и std::vector, std::list, std::queue.
Этот вопрос адресован участникам Far Group. Вы состоите в этой команде?NightRoman wrote:А почему надо использовать "стандартные"? Ты объясняй почему ты считаешь, что это лучше. Доказывай даже. С какой стати щас все все бросят и начнуть перелопачивать весь код? Если будешь чепуху нести, причем, а не предметно доказывать, то могут и забанить, учти.eJ wrote:Почему в исходниках Far на каждый чих городится свой array, list, stack или queue?
Что мешает использовать стандартные классы std::vector, std::list и std::queue? Я понимаю, что когда Евгений Рошаль начал писать Far, то этих типов не было и в помине. Но сейчас-то они уже есть.
Единственный ответ, который я увидел здесь - от t-rex и тот неадекватный.
Re: Far Manager Unicode и std::vector, std::list, std::queue.
eJ, с учетом открытости кода твой вопрос скорее адресован всем, а Far Group примет окончательное решение.
Так что вопросы NightRoman`а обоснованные и имеют место быть.
Алга.
Так что вопросы NightRoman`а обоснованные и имеют место быть.
Алга.
We are the Borg. You will be assimilated.
So Say We All!
So Say We All!
Re: Far Manager Unicode и std::vector, std::list, std::queue.
Нет, это вопрос не всем, а конкретно к Far Group. Изменять исходники только они имеют право.Skirda wrote:eJ, с учетом открытости кода твой вопрос скорее адресован всем, а Far Group примет окончательное решение.
Так что вопросы NightRoman`а обоснованные и имеют место быть.
Алга.
Вот прислал я патч для использования аналога boost::shared_ptr, его отвергли. Вывод какой: если хочешь сделать код фара хорошим, то делай fork или упрашивай команду. Первый вариант для меня не подходит, поэтому начал сразу со второго.
Меня полностью устраивает работа фара в бинарном виде, но от его исходников веет курсовой работой на 3-м курсе института. Можно понизить вероятность дальнейших ошибок, вот и все.
Например:
1. Публичный член Length в CList, а значит и в DList.
2. Возврат ссылки на внутренние данные в TStack (Peek, Pop, Push), TArray (setItem, getItem, addItem)
3. Использование циклов for (... i = 0; i < BLABLABLA.getCount(); ++i) { BLABLABLA.getItem(i); } где можно использовать итераторы (однозначно быстрее)
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: Far Manager Unicode и std::vector, std::list, std::queue.
Хоть Skirda уже и ответил, могу добавить - я не разработчик Фара, но мне совсем неохота, чтобы разработчики занимались сомнительными "улучшениями" работающего кода.eJ wrote:Этот вопрос адресован участникам Far Group. Вы состоите в этой команде?
У STL, кроме красивого слова "стандарт" есть и оборотные стороны. Навскидку: по сравнению с домашними грамотно сделанными альтернативами STL может быть медленнее, может есть больше памяти, может быть сложнее для отладки и диагностики. Я согласен, что для утилки на один-два дня разработки STL - неплохой выбор. Для проекта с многолетним стажем - очень не уверен.
Каков вопрос, таков ответ.eJ wrote:Единственный ответ, который я увидел здесь - от t-rex и тот неадекватный.
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Re: Far Manager Unicode и std::vector, std::list, std::queue.
Не, я конечно, всё понимаю - папа Бьярне велел юзать стандартные контейнеры повсюду, ибо это хорошо.
Но так сложилось, что тут все упёртые и словам не верят.
Покажите нам на пальцах.
Берите код, меняйте самопальное на stl'ное, замеряйте прирост производительности.
Если хотя бы 10% наберётся - приходите.
Но так сложилось, что тут все упёртые и словам не верят.
Покажите нам на пальцах.
Берите код, меняйте самопальное на stl'ное, замеряйте прирост производительности.
Если хотя бы 10% наберётся - приходите.
-
- Posts: 705
- Joined: Tue 05 Apr, 2005 09:26
- Been thanked: 3 times
- Contact:
Re: Far Manager Unicode и std::vector, std::list, std::queue.
DrKnS, справедливости ради стоит заметить, что если производительность отсанется такой же, а кода станте в N раз меньше, то это тоже очень не плохо.
Ы?
- HaRT
- Moderator
- Posts: 10868
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Re: Far Manager Unicode и std::vector, std::list, std::queue.
Это справедливо только при хорошем покрытии автоматизированными тестами, а это, боюсь, не наш случай.DiRTy_GaRRy wrote:если производительность отсанется такой же, а кода станте в N раз меньше, то это тоже очень не плохо
Фар есть инструмент, а не нянька. © 2009 DrKnS
Re: Far Manager Unicode и std::vector, std::list, std::queue.
При правильной юзании - крайне маловероятно.NightRoman wrote: У STL, кроме красивого слова "стандарт" есть и оборотные стороны. Навскидку: по сравнению с домашними грамотно сделанными альтернативами STL может быть медленнее,
Аналогично.может есть больше памяти
Диагностику и отладку самих контейнеров не считаем? Далее, если для сборки используется VisaulStudio2008, там есть cheked iterators и прочие вкусности для отладки. Домашние подели отдыхают.может быть сложнее для отладки и диагностики.
Для вновь начинаемого большого проекта проверенные решения вроде STL - однозначно лучший выбор, нежели наколенные разработки.Я согласен, что для утилки на один-два дня разработки STL - неплохой выбор.
Для проекта с многолетним стажем - очень не уверен.
Для проекта с уже многолетним стажем (как FAR) - согласен, что есть ньюансы, и ответ не столь однозначный.