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 ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.