LINUX.ORG.RU
ФорумTalks

C++, большой Opensource проект


0

0
Есть ли OpenSource проект, который: * написан на С++ * используется нормальный неурезанный С++ (включая исключения, шаблонные классы, отличные от контейнеров) * используется STL и boost * исходники читаемы и поддерживаемы * проект относительно неглючный * проект имеет >= 50000 строк C++ кода * проект развивается более чем одним разработчиком ? Если в проекте используется Qt, то только в качестве GUI-модуля, небольшого по объёму, т.к. Qt не отвечает сформулированным выше требованиям.
★★★★★
Сорри за форматирование

Есть ли OpenSource проект, который:
* написан на С++
* используется нормальный неурезанный С++ (включая исключения, шаблонные классы, отличные от контейнеров)
* используется STL и boost
* исходники читаемы и поддерживаемы
* проект относительно неглючный
* проект имеет >= 50000 строк C++ кода
* проект развивается более чем одним разработчиком
?

Если в проекте используется Qt, то только в качестве GUI-модуля, небольшого по объёму, т.к. Qt не отвечает сформулированным выше требованиям.
Legioner ★★★★★
() автор топика
Ответ на: комментарий от Anoxemian
По-моему он не отвечает большинству требований. И я имел в виду скорее одну конкретную программу.
Legioner ★★★★★
() автор топика
Ответ на: комментарий от Legioner
полагаю что нет... C++ как ни грустно на практике лучше не использовать. Слишком много геморроя со временем вылазит.
vahvarh ★★★
()
Ответ на: комментарий от Legioner
BMPx? Но там и код красотой не блещет, и сам проект - говно, хотя так славно начинался...
cthulhu ★☆
()
Ответ на: комментарий от troorl
Исключений там нет. Из того, что я видел, если памяти не хватает, в дебаге будет assert, в релизе будет segfault. Ошибки сигнализируются (в лучшем случае) через возвращаемое значение функции.

Куча велосипедов, начиная от строк, и заканчивай контейнерами.

Библиотека, тем не менее хорошая, просто она не подходит под обозначенные критерии.

Legioner ★★★★★
() автор топика
Ответ на: комментарий от Legioner
Ну исключения они не используют осознанно, так как это само по себе костыль. Насчёт остального - я не особо вникаю, просто пользуюсь ею, так как удобно :)
troorl ★★
()
Ответ на: комментарий от Id
Тру - это исключительно то, что использует камрад Гик и ничего больше =)
troorl ★★
()
Вроде VLC на С++ написан, хотя я могу ошибаться. Там гуй как раз в виде отдельного модуля.
troorl ★★
()
Ответ на: комментарий от hibou
>А OpenOffice же тоже на С++ написан, или нет?

На жабе он написан, иначе бы не тормозил

PS переименовать жабу в улитку.

anonymous
()
Ответ на: комментарий от Id
у нас всегда остается запасной аэродром - паскаль. В его реализации free pascal c исключениями всё в порядке ;-)
anonymous
()
Ответ на: комментарий от frame
>Нужно написать игру (RTS), что предложишь (кроме Си)?

ObjectiveC, LISP, HASKELL + питон или lua для скриптования. Выбор достаточно широк. А чем не устраивает С?

geek ★★★
()
Ответ на: комментарий от troorl
>Жабы в опенофисе - процентов 10, не больше...

Хорошо, что разработчики вовремя остановились, попробовав запустить тестовый билд с девелоперского мейнфрейма на обычном компьютере :-)

frame ★★★
()
Ответ на: комментарий от geek
>А чем не устраивает С?

Нет перегрузки операторов для классов (структур), что иногда очень удобно, и методов (которые inline) в структурах - мне больше всего не хватает.

frame ★★★
()
Ответ на: комментарий от frame
>Нет перегрузки операторов для классов (структур), что иногда очень удобно, и методов (которые inline) в структурах - мне больше всего не хватает.

куда тебе там классы? Только не говори, что ты логику захардодить решил

geek ★★★
()
Ответ на: комментарий от geek
>куда тебе там классы? Только не говори, что ты логику захардодить решил

если создавать законченный продукт (c упором на производительность) - по другому никак

frame ★★★
()
Ответ на: комментарий от frame
>Нет перегрузки операторов для классов (структур)

и хорошо, что нет - не надо лазить по коду в поисках, что очередной пионер напереопределял "под себя, как удобно"

anonymous
()
Ответ на: комментарий от frame
>если создавать законченный продукт (c упором на производительность) - по другому никак

чушь какая. Ну да ладно, а классы-то тут зачем? :)

geek ★★★
()
Ответ на: комментарий от frame
>как хранилища методов для структур

бред какой. Даю вторую попытку

geek ★★★
()
Ответ на: комментарий от geek
Вообще от задачи зависит многое. И лисп с хаскелем вообще частенько вредны в бизнесе. Потому, что вместо того, чтобы выпускать продукт, программисты начинают академической херней заниматься.

Есть один пример, такой был тех лид гений в , что почти свой j2ee фирма написала. Вовремя поперли. Хотя надо признать кадры оставил после себя замечательные.

anonymousI
()
Ответ на: комментарий от anonymousI
>Вообще от задачи зависит многое.

угу. Только вот "буду писать rts! на плюсах!" - это не задача :)

>Потому, что вместо того, чтобы выпускать продукт, программисты начинают академической херней заниматься.

гг. Собсно, видов херни, которой могут заниматься программисты гораздо больше чем одна :)

geek ★★★
()
Ответ на: комментарий от anonymous
> не надо лазить по коду в поисках, что очередной пионер напереопределял "под себя, как удобно"

Страшность переопределения операторов сильно преувеличена. Нет никакой принципиальной разницы в том, будешь ли ты искать operator+() или add().

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от anonymousI
>Производительность на С++ - это что-то новенькое!

Что-то другое предложите? Кроме C и ассемблера?

anonymous
()
Ответ на: комментарий от anonymous
> Что-то другое предложите? Кроме C и ассемблера?

Лично мне, как любителю C и Python, очень нравится D.

realsmart
()
Ответ на: комментарий от in_dance
>А классы, уважаемый geek, нужны для облегчения повторного использования кода.

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

geek ★★★
()
Ответ на: комментарий от geek
Хорошо, на классике поясните свою точку зрения.

Есть фигуры, которые считываются из файла, есть общие алгоритмы для работы с фигурами.

Как такую прелесть вы будете на C реализовывать?

in_dance
()
Ответ на: комментарий от anonymousI
>Производительность на С++ - это что-то новенькое!

Вызов (статического) метода класса A с параметрами B и C - А.method(B,C) эквивалентен Сишному method_for_struct_a(&A,B,C), inline и функции сохраняют свою производительность при прямом наследовании, всё это можно увидеть в дизассемблере. За виртуальность, множ. наследование и пр. приходится платить, как и везде.

frame ★★★
()
Ответ на: комментарий от in_dance
>Есть фигуры, которые считываются из файла, есть общие алгоритмы для работы с фигурами.

что значит "общие алгоритмы работы с фигурами" ? Давай конкретнее, а то вот для меня общие алгоритмы - это считать коллизии по bbox. Ну так bbox у всех одинаковый.

geek ★★★
()
Ответ на: комментарий от geek
А вот очень хороший пример, если алгоритм не известен заранее.

На с++, можно использовать паттерн visitor (первое что приходит в голову).

in_dance
()
Ответ на: комментарий от geek
А если так, то загрузить, сдвинуть, сохранить. Если это имеет какое-то значение.
in_dance
()
Ответ на: комментарий от in_dance
>А вот очень хороший пример, если алгоритм не известен заранее.

это с++ так калечит моск, что выражать свои мысли ясно адепт недоязычка становится неспособен? :)

geek ★★★
()
Ответ на: комментарий от geek
>это с++ так калечит моск, что выражать свои мысли ясно адепт недоязычка становится неспособен? :)

обычно так начинают говорить, когда других аргументов не хватает.

Пример: есть текстовый редактор. Он может проверять орфографию, делать подсчёт статистики и много ещё другого (других, заранее не известных алгоритмов).

Можете уже не отвечать, и так понятно, что масштабируемое решение вы предложить не в состоянии.

in_dance
()
Ответ на: комментарий от in_dance
>обычно так начинают говорить, когда других аргументов не хватает.

ты не способен внятно объяснить, что значит "неизвестные алгоритмы"?

>Пример: есть текстовый редактор. Он может проверять орфографию, делать подсчёт статистики и много ещё другого (других, заранее не известных алгоритмов).

о. Давай, расскажи мне, как проверяет орфографию нотепад. Уверен, что спеллчекинг для него - это "неизвестный алгоритм" :)

geek ★★★
()
Ответ на: комментарий от geek
geek, причём здесь notepad? Тут идёт речь о выборе проектного решения, удобного для добавления алгоритмов, способных полиморфно работать с какими-то общностями.
in_dance
()
Ответ на: комментарий от in_dance
>Тут идёт речь о выборе проектного решения, удобного для добавления алгоритмов, способных полиморфно работать с какими-то общностями.

с++ тут при чем?

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