C vs. C++ (Почему C популярнее C++?)

Модератор: Модераторы разделов

PIF
Сообщения: 391

Re: C vs. C++

Сообщение PIF »

flook писал(а):
22.09.2005 13:23
Просто программисты нынче уже не те. Не хватает квалификации писать на языках без сборщика мусора и без "удобных" библиотек, которые все за тебя делают.

Угу. И трава раньше была зеленее; и вообще лучше. :)
А про JAVA самому интересно. Я читал, что существуют ее компиляторы в машинный код, но какие у не плюсы перед С++ таки не понял.
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: C vs. C++

Сообщение elide »

Не хватает квалификации писать на языках без сборщика мусора и без "удобных" библиотек
а смысл писать на языке с неудобными библиотеками? чтоб потом всем говорить, что ты ТРУъ, а они все ламеры и нет у них квалификации?
процессорное время все дешевле, а жизнь человека - все короче. если что-то на яве я могу написать за неделю, а на С++ за две - нахрена мне С++?
С++ тут не катит. с одной стороны, он уже не дает такой компактности, скорости и управляемости как чистый С, с другой - не дает такой скорости разработки и отладки, как та же жава, или какие-нить скриптовые языки.
слава роботам!
Спасибо сказали:
Аватара пользователя
flook
Сообщения: 585
Статус: Просто flook

Re: C vs. C++

Сообщение flook »

elide писал(а):
22.09.2005 16:06
Не хватает квалификации писать на языках без сборщика мусора и без "удобных" библиотек
а смысл писать на языке с неудобными библиотеками? чтоб потом всем говорить, что ты ТРУъ, а они все ламеры и нет у них квалификации?
процессорное время все дешевле, а жизнь человека - все короче. если что-то на яве я могу написать за неделю, а на С++ за две - нахрена мне С++?
С++ тут не катит. с одной стороны, он уже не дает такой компактности, скорости и управляемости как чистый С, с другой - не дает такой скорости разработки и отладки, как та же жава, или какие-нить скриптовые языки.


Я не призываю писать с неудобными библиотеками. Я утверждаю, что С народ знает плохо в массе. Я много общаюсь с kernel разработчиками, а они пишут только на C. Так вот такого качественного кода и такой скорости написания оного я еще ни у кого не видел. Ни у Jav-еров ни у ++ников.
В каждом из нас спит гений... и с каждым днем все крепче...
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: C vs. C++

Сообщение elide »

я не понял, при чем здесь С? я сравнивал жаву и С++.
про С я молчу. в его нише ничего лучше нет.
слава роботам!
Спасибо сказали:
Аватара пользователя
flook
Сообщения: 585
Статус: Просто flook

Re: C vs. C++

Сообщение flook »

elide писал(а):
22.09.2005 17:29
я не понял, при чем здесь С? я сравнивал жаву и С++.
про С я молчу. в его нише ничего лучше нет.

Это хорошо :) Но про качество программистов я должен был написать шире :) А именно то, что квалификация в порядке возрастания выглядит так:
1. Java
2. C++
3. C
Причем между 1 и 2 дыра Агромных размеров.
В каждом из нас спит гений... и с каждым днем все крепче...
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: C vs. C++

Сообщение elide »

да причем тут квалификация? что есть такого в С++, что требует большей квалификации, чем для жавы? арифметика указателей? вот для С - там понятно. чтоб эффективно, портабельно и логично запрогить там тот же двухсвязный список, там да. надо думать. а вот чем в С++ этот список создать сложнее чем в жаве - не понимаю.
слава роботам!
Спасибо сказали:
Аватара пользователя
flook
Сообщения: 585
Статус: Просто flook

Re: C vs. C++

Сообщение flook »

elide писал(а):
22.09.2005 18:49
да причем тут квалификация? что есть такого в С++, что требует большей квалификации, чем для жавы? арифметика указателей? вот для С - там понятно. чтоб эффективно, портабельно и логично запрогить там тот же двухсвязный список, там да. надо думать. а вот чем в С++ этот список создать сложнее чем в жаве - не понимаю.

Вот именно! Эффективно и логично! На ++ так писать тяжелее чем на Java а на С тем паче. Чем ниже уровень тем выше квалификация и шире возможности. А ++ "ниже по уровню" чем Java.
В каждом из нас спит гений... и с каждым днем все крепче...
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: C vs. C++

Сообщение elide »

"Слайды! Слайды давай!" (с)
flook, ты меня конечно извени, но по-моему, ты гонишь. приведи хоть один пример задачи, которую круглый С++ программист в вакууме (с высокой квалификацией) решит, а такой же круглый программист в вакууме (с низкой квалификацией) на жаве - нет.
а то, все что ты говоришь, сводится примерно к "в жаве есть сборщик мусора, потэтому на ней пишут глупые неопытные халявщики". примеры давай.
причем именно касательно программистов, а не кодеров.
слава роботам!
Спасибо сказали:
Andrew S
Сообщения: 225
Статус: экспериментатор
ОС: Conrad-Gentoo

Re: C vs. C++

Сообщение Andrew S »

Мне кажется, что корень проблемы (низкой популярности С++) в том, что этап проектирования софта появился совсем недавно. Раньше программеры садились за комп и сразу сломя голову бросались что-то писать (т.е. кодировать). Теперь же потихоньку начинают доходить до осознания того, что не подумавши можно наломать дров и потерять уйму времени (хорошо если только своего). И соответственно начинают проектировать и тут же приходят к объектам. Но в ВУЗах пока еще этому не учат, поэтому мы еще долго будем пребывать в неведении о современных техниках программирования :(
Спасибо сказали:
Аватара пользователя
innkeeper
Сообщения: 110

Re: C vs. C++

Сообщение innkeeper »

Кроме Си в институте, самостоятельно изучаю С и С++. По поводу различий языков могу сказать следующее:

В С++ больше уделено вниманию области видимости. При правильном применении модулей и конкретных типов, код становиться яснее, чище. Легче отслеживать ошибки.

Но при этом ничего не мешает писать чисто и ясно на С ;-) Была бы голова на плечах, и опыта немного.

По поводу популярности:

Обучение языкам более высокого уровня проходит быстрее. Пишуться реальноые программы на таких языках тоже быстрее. А людей, которые хотят сделать всё быстро ещё больше ;-)
Наверно там, где С++ действительно нужен, там он и используется. Если человек знает С, а на изучание С++ нужно время, то соответсвенно быстрее и тем более качественнее получиться написать задачу на С ;-)

Мысли почему quake написан на С:

Ну.. можно конечно на создавать всяких классов для моделей, камеры, ещё чего нибудь.. Только где в графике для таких классов можно применять операторы +, -, *, \? Соответсвенно сишных структур должно вполне хватать ;-)

P.S. всё выше описанное ИМХО
Спасибо сказали:
Аватара пользователя
golodnyj
Сообщения: 172

Re: C vs. C++

Сообщение golodnyj »

Andrew S писал(а):
22.09.2005 23:25
Мне кажется, что корень проблемы (низкой популярности С++) в том, что этап проектирования софта появился совсем недавно. Раньше программеры садились за комп и сразу сломя голову бросались что-то писать (т.е. кодировать). Теперь же потихоньку начинают доходить до осознания того, что не подумавши можно наломать дров и потерять уйму времени (хорошо если только своего). И соответственно начинают проектировать и тут же приходят к объектам. Но в ВУЗах пока еще этому не учат, поэтому мы еще долго будем пребывать в неведении о современных техниках программирования :(


Хех выводы неутешительные почти для всех, читаем Брукса, он хрен знает когда сказал +) ,что все должно быть организованно, как говориться нефиг хакать на коленке +) B)
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: C vs. C++

Сообщение t.t »

Мне кажется, что корень проблемы (низкой популярности С++) в том, что этап проектирования софта появился совсем недавно. Раньше программеры садились за комп и сразу сломя голову бросались что-то писать (т.е. кодировать). Теперь же потихоньку начинают доходить до осознания того, что не подумавши можно наломать дров и потерять уйму времени (хорошо если только своего). И соответственно начинают проектировать и тут же приходят к объектам. Но в ВУЗах пока еще этому не учат, поэтому мы еще долго будем пребывать в неведении о современных техниках программирования
М-да.. Ну вы придумали.. Начнём с того, что программы проектировались _всегда_. И первый объектный язык, если я не ошибаюсь, -- CLOS (Common Lisp с объектами), который появился уже минимум лет 30 как. И в вузах нормальных этому давным-давно учат; в Англии и во Франции, по крайне мере, точно.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
Asgard
Сообщения: 215
Статус: North Valfader

Re: C vs. C++

Сообщение Asgard »

И в вузах нормальных этому давным-давно учат; в Англии и во Франции, по крайне мере, точно.

но у нас в России, к сожалению, этому не учат... у нас вообще не учат, а только деньги высасывают...
sator arepo tenet opera rotas ;)
------------------------------------------------------------
LJ
Спасибо сказали:
printf

Re: C vs. C++

Сообщение printf »

у нас вообще не учат, а только деньги высасывают...

C этим полностью согласен. Хорошо, что я на бюджете :)
Спасибо сказали:
Аватара пользователя
Bruce
Сообщения: 647
Статус: beat maniac
ОС: Debian GNU/Linux 4.0

Re: C vs. C++

Сообщение Bruce »

по крайней мере, крутость с++ по сравнению с Страуструп доказывал на протяжении всей своей книги. и не надо говорить, что на С пишут крутые профессионалы. Выводы Бьорна - пустая трата времени на то, что можно написать проще. а эффективность его - это уже от компилятора зависит.

и быстрые приложения на яве просто не бывают. её фишка в машинной независимости.
Samsung r40 (t5500, 1.5G ram, 80 gb hdd)

koolkhel's lj
Спасибо сказали:
Аватара пользователя
Asgard
Сообщения: 215
Статус: North Valfader

Re: C vs. C++

Сообщение Asgard »

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

примеры в студию. приведите хоть несколько строк, где Страуструп пишет, что ++ 'круче' С. Страуструп просто описывал нововведения, указывая их преимущества и _недостатки_. Он также не предлагал отказаться от си и ни в коей мере не пророчил данному языку скорую смерть.
Выводы Бьорна - пустая трата времени на то, что можно написать проще.

Если вы имеете в виду его рассуждения о повторном использовании кода, то я с вами категорически не согласен. Зачем изобретать велосипед, если можно воспользоваться готовой библиотекой, кторая значительно может сэкономить время и деньги?
а эффективность его - это уже от компилятора зависит.

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

смотря с чем сравнивать...
её фишка в машинной независимости.

я бы ещё добавил к её плюсам обширный инструментарий готовых реализаций, что и позволяет разрабатывать на жабе 'быстрые' проекты _по сравнению с С++_
sator arepo tenet opera rotas ;)
------------------------------------------------------------
LJ
Спасибо сказали:
Аватара пользователя
flook
Сообщения: 585
Статус: Просто flook

Re: C vs. C++

Сообщение flook »

Bitterman писал(а):
24.09.2005 03:16
а эффективность его - это уже от компилятора зависит.

Факт! Но для ++ нет нормальных компиляторов :(
В каждом из нас спит гений... и с каждым днем все крепче...
Спасибо сказали:
Аватара пользователя
Bruce
Сообщения: 647
Статус: beat maniac
ОС: Debian GNU/Linux 4.0

Re: C vs. C++

Сообщение Bruce »

А чем плох g++?

"Напишите корректную программу на С++, содержащую последовательность из десяти идущих подряд различных ключевых слов, не разделённых идентификаторами, операторами, символами пунктуации и т.д."

одним из списков "крутизны" является содержание :).

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

точно помню, что было что-то вроде:
"Возьмите программу на С в 500 строк и переведите её на С++. Как изменился размер? Удобочитаемость? Расширяемость, поддержка? Сколько, по-вашему, займёт такой переход программы в 100000 строк?" (точно не нашёл, но было стопудово).
Samsung r40 (t5500, 1.5G ram, 80 gb hdd)

koolkhel's lj
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: C vs. C++

Сообщение t.t »

но у нас в России, к сожалению, этому не учат... у нас вообще не учат, а только деньги высасывают...
К сожалению, вынужден почти полностью согласиться.. Не только в России, но и на всём пост-советском пространстве хороших преподавателей -- единицы, а таких, которым вообще следовало бы закрыть доступ к преподавательской деятельности -- легион. Но эта тема всё же не об этом.

flook писал(а):
24.09.2005 08:41
Bitterman писал(а):
24.09.2005 03:16
а эффективность его - это уже от компилятора зависит.
Факт! Но для ++ нет нормальных компиляторов :(
Создать компилятор си++, который будет генерить код, сопоставимый по эффективности с кодом си-компилятора -- задача, думается, нереальная.

точно помню, что было что-то вроде:
"Возьмите программу на С в 500 строк и переведите её на С++. Как изменился размер? Удобочитаемость? Расширяемость, поддержка? Сколько, по-вашему, займёт такой переход программы в 100000 строк?" (точно не нашёл, но было стопудово).
А как изменится размер бинарника? Скорость выполнения? А расширяемость больше зависит от грамотности проектирования, чем от языка. А удобочитаемость -- от грамотности написания кода; да и вообще это вещь сугубо субъективная.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
Bruce
Сообщения: 647
Статус: beat maniac
ОС: Debian GNU/Linux 4.0

Re: C vs. C++

Сообщение Bruce »

размер бинарника, имхо, не существенен. уродств-порождений дельфов и visual basic не увидим.

при нечётком проектировании, когда прога ещё целиком не ясна, с++ даёт фишки, помогающие его направить в правильное русло и предостерегает от множества возможных ошибок. соглашусь, что ооп бывает на асме, но с++ всё-таки правильнее (для ооп) и даёт для него большие возможности.

вопрос - нужен ли ооп - уже полный оффтоп.

я хотел сказать, что не бывает полезного (большого) софта, полностью спроектированного в теории и безошибочно реализованного на практике. с++ даёт большие возможности при нечётких проектах (по вашему, kde на с++ писали только из-за qt?)
Samsung r40 (t5500, 1.5G ram, 80 gb hdd)

koolkhel's lj
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: C vs. C++

Сообщение t.t »

размер бинарника, имхо, не существенен.
Это только ваше мнение.

при нечётком проектировании, когда прога ещё целиком не ясна
Открою вам секрет: по-хорошему надо сначала проектировать, а потом кодить. Если у программиста каша в голове, когда он приступает к написанию кода, то и в коде будет каша -- и никакой язык тут не спасёт.

я хотел сказать, что не бывает полезного (большого) софта, полностью спроектированного в теории и безошибочно реализованного на практике.
И? С++ даёт меньше шансов совершить ошибку при разработке? Могу вас разочаровать -- это не так. А насчёт "полностью спроектированного в теории" я уже сказал выше: пока программа полностью не спроектирована (текущая функциональность + расширяемость), приступать к реализации глупо.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
charlie
Сообщения: 104

Re: C vs. C++

Сообщение charlie »

2 t.t:
Ну, имхо, в настоящее время размер бинарника не является таким уж важным, особенно для прикладных программ. И программа, написанная на Python за месяц на мой взгляд будет лучше аналога на C, на написание которого ушло минимум месяца 3. Про крупные проекты я и не говорю.
Из университета Беркли вышли два главных продукта: LSD и BSD.
Ну было просто рулез!...
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: C vs. C++

Сообщение t.t »

2 t.t:
Ну, имхо, в настоящее время размер бинарника не является таким уж важным, особенно для прикладных программ. И программа, написанная на Python за месяц на мой взгляд будет лучше аналога на C, на написание которого ушло минимум месяца 3. Про крупные проекты я и не говорю.
Стоп. При чём тут питон? Это разве компилируемый язык? А насчёт того, что будет лучше -- так это зависит от конкретной задачи: в одних случаях важнее скорость и простота разработки, в других -- компактность и скорость работы.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
charlie
Сообщения: 104

Re: C vs. C++

Сообщение charlie »

ну на мой взгляд разговор зашел дальше, чем противостояние c++ и c. Если ошибся - то прошу прощения.
Из университета Беркли вышли два главных продукта: LSD и BSD.
Ну было просто рулез!...
Спасибо сказали:
printf

Re: C vs. C++

Сообщение printf »

Насчёт проектирования...
Сначала определитесь, что вы хотите друг другу доказать, а затем начинайте доказывать. А то мне, как наблюдателю ваших споров, совершенно непонятны ваши позиции.
Спасибо сказали:
Аватара пользователя
Asgard
Сообщения: 215
Статус: North Valfader

Re: C vs. C++

Сообщение Asgard »

Если у программиста каша в голове, когда он приступает к написанию кода, то и в коде будет каша -- и никакой язык тут не спасёт.

Буч это называет 'техникой водопада', т.е. решение проблем по мере их возникновения.

Bitterman
я хотел сказать, что не бывает полезного (большого) софта, полностью спроектированного в теории и безошибочно реализованного на практике.

Буч, Страуструп, Брукс утверждают, что на этапе проектирования можно обнаружить некоторые немаловажные проблемы и впоследствии от них _грамотно_ избавится.

Вы когда-нибудь пробовали писать немаленький проект, решая проблемы по мере их поступления? Обычно получается вполне работающая программа, но
1) не расширяемая
2) кривая и трудноразбираеая
3) не структурированная
Т.о. проектирование не является панацеей от ошибок и от безмозглости(если программист туп, то тут ничто не поможет), это позволяет избавится от трёх вышеуказанных ляпов, а также получить некоторые дополнительные немаловажные плюсы.
sator arepo tenet opera rotas ;)
------------------------------------------------------------
LJ
Спасибо сказали:
Аватара пользователя
Bruce
Сообщения: 647
Статус: beat maniac
ОС: Debian GNU/Linux 4.0

Re: C vs. C++

Сообщение Bruce »

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

насчёт gcc и ядра. да, они написаны на с. но:
- модель разработки - патчи от сторонних юзеров. в с++ (имхо) централизованная разработка лучше (хотя, вообще, ядра на с++ писать - это в беос видел и всё..)
- время разработки (2 года до 1.0 в ядре, про gcc не знаю, но он появился раньше с++ как такового).

короче, действительно, непонятно, кто чему доказывает. просто я за то, чтобы приложения на с++ писать - и всё. у с своя ниша - та, откуда его не выкинешь, а то что почти весь софт на нём написан - кто сказал, что это хорошо, даже если это и работает? нужен прогресс... всё, умолкаю, битв на деревянных палках не хочу.
Samsung r40 (t5500, 1.5G ram, 80 gb hdd)

koolkhel's lj
Спасибо сказали:
Аватара пользователя
Asgard
Сообщения: 215
Статус: North Valfader

Re: C vs. C++

Сообщение Asgard »

просто я за то, чтобы приложения на с++ писать - и всё.

Я думаю, многие разделяют ваше мнение, но есть одно немаловажное препятствие: неприспособленность никсов к качественной и быстрой ООП разработке. Начиная от скупости инструментария и кончая 'психологическим' давлением огромного количества успешно написанных сишных программ. Не хочу быть непонятым, но, _имхо_, винда предоставляет гораздо более богатые возможности в плане ООП, всячески их развивая. Не смотря на её(винды) крисвость, средства для разработки там гораздо более богатые, удобные и 'продвиднутые'(хотя винду это не спасает :)). Думаю, наличее какой-нибудь более-менее 'прямой' и хорошо структурированной и развивающейся платформы(типа дотнет) позволило бы
1) упростить и ускорить разработку, удаляя из её процесса рутинное набивание однообразного кода
2) увеличить расширяемость программ
3) это являлость великолепной пропагандой перехода на ООП и С++ в частности.

пока, к сожалению, такой платформы я не встречал, поэтому не вижу смысла писать на том, что не не поддерживается/слабо поддерживается ОС и её разработчиками.
sator arepo tenet opera rotas ;)
------------------------------------------------------------
LJ
Спасибо сказали:
PIF
Сообщения: 391

Re: C vs. C++

Сообщение PIF »

2Asgard
Можешь аргументировать "скупость инструментария"? Я просто не в курсе. Вроде же есть всякие IDE, тот же KDevelop, например.

А про .Net и ее клонирование - спорный вопрос, больная тема (по-моему)
Спасибо сказали:
Аватара пользователя
Asgard
Сообщения: 215
Статус: North Valfader

Re: C vs. C++

Сообщение Asgard »

Можешь аргументировать "скупость инструментария"?

Всё познаётся в сравнении. Сравните виндовый инструмментарий с никсовым. Возможно, для вас предоставляетмых OpenSource сообществом средств разработки более чем достаточно, и вы чувствуете себя в них вполне комфортно, но человеку избалованному win-программированию они(средства разработки) кажутся скупыми и слабыми.
В win доминирует ОО разработка, т.к. она 'навязывается' существующим инструментарием.
А про .Net и ее клонирование - спорный вопрос

я не говорил о клонировании.
sator arepo tenet opera rotas ;)
------------------------------------------------------------
LJ
Спасибо сказали: