Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 4, 2015 18:01:30

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9879
Репутация: +  853  -
Профиль   Отправить e-mail  

Вывод видео

Shaman
Я могу ещё найти.
Например?
Shaman
Это всё не библиотеки питона
Вообще-то, пользователей у перечисленного больше, чем у питона. И появилось всё это совсем недавно. Так что ссылки на то, что мол это на C, потому что это старое и писалось тогда, когда C++ не был достаточно развит, не прокатят.



Отредактировано py.user.next (Сен. 4, 2015 18:02:00)

Офлайн

#2 Сен. 4, 2015 19:03:03

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Вывод видео

py.user.next
Например?
Это издёвка? Nagios. Quake engine помер.

Офлайн

#3 Сен. 5, 2015 01:55:56

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9879
Репутация: +  853  -
Профиль   Отправить e-mail  

Вывод видео

Shaman
Nagios. Quake engine помер.
Если брать времена Quake'а, то программ на C ещё больше можно найти.
Речь идёт о современных программах, которые пишутся на C.
Вот задайся для себя вопросом: а почему их не стали писать на C++?

Shaman
Это издёвка?
Ну, ты же пишешь, что C непригоден для современных программ. А потом вдруг оказывается, что ты просто не знаешь на чём написаны современные программы, которыми все пользуются. Значит, вопросом не интересовался и просто теоретически заливаешь.



Отредактировано py.user.next (Сен. 5, 2015 01:59:41)

Офлайн

#4 Сен. 5, 2015 09:43:20

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Вывод видео

py.user.next
Ну, ты же пишешь, что C непригоден для современных программ. А потом вдруг оказывается, что ты просто не знаешь на чём написаны современные программы, которыми все пользуются. Значит, вопросом не интересовался и просто теоретически заливаешь.
Я где-то сказал, что сейчас ничего не пишется на C??? Нет! Я только выразил отношение к написанию на С. Кроме как для создания низкоуровневых штук он сейчас не пригоден. Кроме того, никто не возбраняет не использовать классы c++ там где они не нужны, отключить exception handling и продолжать пользоваться строгой типизацией, но “нет, мы крутые сишники и будем ходить по углям ради понтов!”, которые я и наблюдаю.
PS
Ты о GCC ничего не сказал. Наверное не в курсе.

Отредактировано Shaman (Сен. 5, 2015 09:55:07)

Офлайн

#5 Сен. 5, 2015 10:15:37

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Вывод видео

py.user.next
А потом вдруг оказывается, что ты просто не знаешь на чём написаны современные программы, которыми все пользуются
Ну это легко проверяется.

открываем http://sourceforge.net/directory/science-engineering/os:windows/freshness:recently-updated/
Область где я обычно пишу Science & Engineering Software.

И видим: java 1148, c++ 1085, c 549, python 524.
В играх лидирует c++ с большим отрывом. В системном администрировании с с++ почти равны.

С это подмножество C++ его используют когда нет возможности использовать компилятор C++ (таких ситуаций практически не осталось), Когда накладные расходы RTTI,Exception, iostream непозволительны. - узкая область это можно отрегулировать ключами компиляции. Когда исторически сложились сишные интерфейсы и архитектура приложения. Ну и самый частый вариант, когда квалификации разработчиков не хватает для использования С++.

Т.е. если вы начинаете новый проект, и у вас есть компилятор C++ то практически нет причин ограничивать себя подмножеством C. Другое дело что внешние интерфейсы желательно поддерживать простыми. Хорошая идея иметь чисто сишный интерфейс. Это существенно упростит взаимодействие с питоном например.

Возможно такая постановка вопроса вообще некорректна. В больших проектах очень часто используется несколько языков программирования одновременно.



Отредактировано doza_and (Сен. 5, 2015 10:19:19)

Офлайн

#6 Сен. 6, 2015 00:53:01

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9879
Репутация: +  853  -
Профиль   Отправить e-mail  

Вывод видео

Shaman
Ты о GCC ничего не сказал. Наверное не в курсе.
Я читал исходники ;) И решонал его. Он перевёл проект в сишном стиле, чтобы можно было использовать классы и шаблоны. А кто будет всё это переписывать на цппшный стиль? Правильно, никто.

Shaman
Кроме того, никто не возбраняет не использовать классы c++ там где они не нужны
Ты GTK вообще читал? Там ООПшная иерархия на чистом C.

doza_and
И видим: java 1148
Что ж мы на Java не пишем? Меня лично скорость не устраивает, не нравится, что окна долго открываются.

doza_and
В играх лидирует c++ с большим отрывом.
Сейчас игр не делают, на платформы лепят. Да раньше игры килобайтные были интереснее этих терабайтных.
Недавно скачал в стиме team fortress, при распаковке это ~15 гигабайт, а по сути - квейк. Только вот квейк у меня стоял в лине и весил 300 мегов, а это фуфло неинтересное - много-много гигабайт.

doza_and
c 549, python 524.
Все страницы, которые ты тут оправляешь, проходят через nginx. А как nginx стал таким популярным? Да очень просто - он качественный, а не какое-то фуфло на десять гигов.

doza_and
С это подмножество C++ его используют когда нет возможности использовать компилятор C++
C используют тогда, когда C++ нафиг не нужен, и очень часто так и оказывается. Преимущества C++ перед C сильно раздуты и преувеличены. У них и стандарты различаются, например int main() и int main() означают разные вещи. Редко бывает, когда цппшники это знают.

doza_and
Когда исторически сложились сишные интерфейсы и архитектура приложения. Ну и самый частый вариант, когда квалификации разработчиков не хватает для использования С++.
С квалификацией дело обстоит в обратную сторону. Про игры пример привёл. Как так получается, что реально никакая игра (в которой нет ничего) весит несколько гигабайт?
Кстати, Go, который сейчас делают Томпсон и Пайк, удивительно похож на C, но почему-то там даже классов нет, которые как бы везде есть. Оказалось, что классы можно сделать, не делая классы. Но для этого нужно немножко ума.

doza_and
Т.е. если вы начинаете новый проект, и у вас есть компилятор C++ то практически нет причин ограничивать себя подмножеством C.
А зачем мне C++? Да и не скомпилирует он сишный код. У них разные стандарты. К примеру, один и тот же код может не скомпилироваться, потому что в цппшном стандарте кое-чего нет:
int main()
{
void *p = 0;
int *n;

n = p;
n++;
return 0;
}



Отредактировано py.user.next (Сен. 6, 2015 00:53:41)

Офлайн

#7 Сен. 6, 2015 01:48:20

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Вывод видео

py.user.next
например int main() и int main() означают разные вещи
видимо разметка съела некоторые символы, переделайте в тегах code пожалуйста



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#8 Сен. 6, 2015 02:05:11

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9879
Репутация: +  853  -
Профиль   Отправить e-mail  

Вывод видео

JOHN_16
видимо разметка съела некоторые символы
Нет. Именно это и имеется в виду. Это такая загадка для doza_and.



Отредактировано py.user.next (Сен. 6, 2015 02:06:10)

Офлайн

#9 Сен. 6, 2015 08:22:37

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Вывод видео

py.user.next
Как так получается, что реально никакая игра (в которой нет ничего) весит несколько гигабайт?
Ну не код же эти гигабайты занимает, в самом то деле. Спрайты, звуки, текстуры, ролики и прочая графика, на этом сейчас никто не экономит, вот и гагабайты выходят.







Отредактировано FishHook (Сен. 6, 2015 08:23:35)

Офлайн

#10 Сен. 6, 2015 10:07:21

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Вывод видео

py.user.next
стандарте кое-чего нет:
Не кое чего нет, а более жесткие проверки типов. И поэтому много чего может не компилироваться. На практике много раз приходилось увязывать разные языки. В том числе затаскивал сишные коды для компиляции С++. Всегда приходится кое чего делать, но результат получается быстро и комплируется и сишным комплиятором и плюсовым. Если вы возьмете другой компилятор С то тоже будут аналогичные выкрутасы и потребуется корректировать код.

py.user.next
C используют тогда, когда C++ нафиг не нужен,
При этом вы можете использовать плюсовой компилятор, Я не знаю полезных свойств сишного компилятора которые отсутствуют в плюсовом компиляторе. Я в этом случае отбрасываю выбор сишного компилятора по причине - зачем использовать два когда можно использовать один компилятор. (Меньше надо помнить об особенностях языка проще билд система и т.п.) Понятно что мой выбор объясняется тем что в системе полно плюсовых частей от которых никуда не денешся.

Тут правда может возникнуть идеологическая дискуссия по поводу необходимости более строгой проверки типов. Сравните например Java и С. На мой вкус в Java перегнули палку, может на ваш вкус ее перегнули в C++.

По поводу ООП на С. Да можно сделать. Немного больше писанины, но это не принципиально. На мой вкус в C++ принципиально наличие template которые позволяют снизить ограничения накладываемые типизацией.

py.user.next
Преимущества C++ перед C сильно раздуты и преувеличены.
Ну тут надо привести ссылки на источники где это раздуто. Тогда и можно обсуждать. Иначе это утверждение не имеет смысла. В плюсовых проектах часто интерфейсы украшены “бантиками”. А в проектах на Java этих бантиков еще на порядок больше. Но это ведь больше от квалификации архитектора зависит а не от языка, хотя в C меньше техничексих возможностей создать эти бантики.



Отредактировано doza_and (Сен. 6, 2015 10:20:03)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version