Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Почему все любят С++? 
:(
    Опции темы
TP@MB@Y
Дата 11.7.2005, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 18.12.2004
Где: Москва

Репутация: 1
Всего: 4



Сорри если не туда запостил топик smile

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

Конечно, существует такой сильный фактор, как "к чему в детстве приучили". Я например начинал с паскаля и сейчас отдаю ему предпочтение (читай Delphi). Кто то начинал с Си и сейчас например предпочитает Билдер Дельфям. А ктооо тооо (тут полагается сделать зловещую паузу smile ) учил в детстве бэйсик....

Так вот. Вопрос заключается в следущем: ЧЕМ кардинально отличается С++ от паскаля? Конкретные примеры есть?

PM   Вверх
Domestic Cat
Дата 11.7.2005, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 4
Всего: 172



Это в религиозные войны. Кстати, к примеру, я жутко не люблю С++, так что слово "все" лишнее... smile



--------------------

PM   Вверх
Void
Дата 11.7.2005, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 11
Всего: 173



Во-первых, как правильно заметил Domestic Cat, этот провокационный вопрос надо в Религиозные войны smile

Цитата(TP @ 11.7.2005, 21:35)
Вобщем мне жутко интересно, чем лучше C++ того же паскаля? Думаю всем здесь известно, что настоящий программист составляет и реализует свои алгоритмы, и в зависимости от специфики задачи выбирает удобную в плане реализации среду программирования.

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

Цитата(TP @ 11.7.2005, 21:35)
А ктооо тооо (тут полагается сделать зловещую паузу smile ) учил в детстве бэйсик....

Ну я учил smile К счастью, прогноз Дейкстры не оправдался smile Я полностью излечился smile

Цитата(TP @ 11.7.2005, 21:35)
Так вот. Вопрос заключается в следущем: ЧЕМ кардинально отличается С++ от паскаля? Конкретные примеры есть?

Отличий масса... На мой взгляд, наиболее существенное отличие языка - наличие шаблонов и автоматических объектов. Именно из этого проистекают наиболее важные на мой взгляд практические различия. Ну и некоторый синтаксический сахар в виде перегрузки операторов. Это из преимуществ. А из недостатков (опять же на языковом уровне) - отсутствие модульности.

Кстати, "все" его действительно не любят. Сейчас, пожалуй, даже больше тех, кто его не любит. Правда, C++ они чаще противопоставляют Java и .NET, а не Паскаль/Delphi.



--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
TP@MB@Y
Дата 11.7.2005, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 18.12.2004
Где: Москва

Репутация: 1
Всего: 4



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

По поводу шаблонов и перегрузки операторов: действительно это делает Си более мощным языком, но мне например кажется, что эти "вкусности" мало испоьзуются и являются экзотикой (хотя это конечно же ИМХО)

А вообще мне лично Си ненравится из-за его "закорючности" в синтаксисе: фигурные скобки, амперсенты, звездочки... =) Вобщем если сравнивать с тем же паскалем (хотя он создавался как учебный язык программирования для студентов), то у первого код намного читабельнее чем у Си.

PS я не против переноса темы в "Религиозные войны" smile
PM   Вверх
Domestic Cat
Дата 11.7.2005, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 4
Всего: 172



Не путай Си и С++ - в С нет шаблонов и это вообще чисто процедурный язык.


--------------------

PM   Вверх
Mayk
Дата 11.7.2005, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 2
Всего: 134



Паскаль vs C? smile Усё. Счас начнется(а кончится всё фразой, что каждой задаче - свои инструменты).
Цитата(TP @ 11.7.2005, 20:35)

Так вот. Вопрос заключается в следущем: ЧЕМ кардинально отличается С++ от паскаля? Конкретные примеры есть?

В паскале нет шаблонов. Это раз.
В паскале нет циклов. Это два(for i := 10 downto 0 это не цикл, while(*i++=*j++) - вот пример цикла. for(iter i = collection->begin(); i->value != desired_value && i != collection->end(); ++i) - вот пример цикла)
В паскале очень длинный, запутанный, я б даже сказал, дурацкий синтаксис. Это три(integer вместо int, begin вместо { и end вместо }, then вместо <тут пусто>).
В паскале указатели просто смешны. Мне НУЖЕН указатель на статическую переменную. Я НЕ хочу вызывать операции по удалению объектов в ручную. Я НЕ хочу обращаться к тормознутому менеджеру памяти(выделение в стеке гораздо быстре). И если компилятор имеет на этот счёт иное мнение, то я имею топку в которую полетит шибко умный компилятор. Это четыре. И это приговор.
В паскале нет препроцессора. Это пять(кстати за это я не люблю яву, с#)
В паскале очень тупые ветвления(then, наличие ';', отсутствие ';') это пять с копейками
В паскале нет оператара присваивания. Это шесть с копейками(a:=b это операция присваивания. a=b=c=d=e=f=g=someFunction(h) - вот это оператор присваивания в своей красе).
В паскале синтаксис очень похож на basic'овский. Это шесть с копейками. С ОЧЕНЬ ВЕСОМЫМИ копейками
В паскале очень тупая библиотека. На си создания дубликата участка памяти я запишу в одно выражение memcpy(malloc(len),src,len); В паскале getmem НЕ возвращает значение. А устанавливает переданный ей pointer.
В си есть циклы, операторы присваивания, препроцессор, stdlib функции которой возвращают то что им положено возвращать.
В си++ есть классы. Паскалевскому stringу в пору бится в конвульсиях.

Кстати, сколько операционных систем написано на паскале? smile

Цитата(TP @ 11.7.2005, 20:35)
учил в детстве бэйсик

Ну, например, я. Это был единственный нормальный ЯВУ на ZX спеки 48кб. Все остальные не могли быть нормальными, так как им негде было размещать свое толстое тело. Бейсик был просто вшит.

ЗЫ. МОДЕРАТОРЫ, перенесите тему в религиозные войны.



--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
Void
Дата 11.7.2005, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 11
Всего: 173



Цитата(TP @ 11.7.2005, 22:31)
По поводу шаблонов и перегрузки операторов: действительно это делает Си более мощным языком, но мне например кажется, что эти "вкусности" мало испоьзуются и являются экзотикой (хотя это конечно же ИМХО)

Я сейчас буду занудой... smile Не Си, а C++. Это разные языки.
Без шаблонов современный C++ невозможен в принципе. На шаблонах держится практически вся стандартная библиотека C++.
Без перегрузки операторов невозможно прозрачно сэмулировать числовые, векторные и матричные типы, умные указатели.

Цитата(TP @ 11.7.2005, 22:31)
А вообще мне лично Си ненравится из-за его "закорючности" в синтаксисе: фигурные скобки, амперсенты, звездочки... =)

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

Цитата(TP @ 11.7.2005, 22:31)
общем если сравнивать с тем же паскалем (хотя он создавался как учебный язык программирования для студентов), то у первого код намного читабельнее чем у Си.

Для новичка - да. А для опытного программиста поддержка кода на них одинакова по сложности, имхо.

P.S. Как и многим здесь присутствующим, мне наперед известны почти все аргументы и контраргументы, которые сейчас пойдут в дело. И все-таки мне почему-то еще интересны язковые войны smile

Это сообщение отредактировал(а) Void - 11.7.2005, 21:02


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
Earnest
Дата 11.7.2005, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: нет
Всего: 183



Mayk, полностью поддерживаю!
И еще добавлю: шаблоны С++ сделали возможным реализацию концепций обобщенного программирования. Да, в С++ нет объектов типа "метакласс", порождающих классы. Но с помощью шаблонов это прекрасно эмулируется - достаточно почитать Александреску или посмотреть в boost. Причем, все это (в отличие от супер-высокоуровневых языков типа Smalltalk) абсолютно бесплатно (в смысле производительности)! Потому что все навороты кода беследно исчезают в момент компиляции.
Таким образом, ИМХО, наиболее мощное свойсво С++, отличающее его от всех существующих языков программирования, это то, что он позволяет писать очень высокоуровневые и выразительные программы, и при этом получать очень производительный код.


--------------------
...
PM   Вверх
simanyay
Дата 11.7.2005, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Антон Ковалёв
****


Профиль
Группа: Участник
Сообщений: 2053
Регистрация: 22.8.2002

Репутация: 0
Всего: 36



Но лучше всего Java smile


--------------------
«It's better to be a pirate than to join the Navy» — Steve Jobs.
PM MAIL WWW   Вверх
TP@MB@Y
Дата 11.7.2005, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 18.12.2004
Где: Москва

Репутация: 1
Всего: 4



Mayk
Сдаюсь! Вы просто разбомбили меня аргументами smile

Теперь я кажется получил довольно полный ответ на мой вопрос.

PS Говоря "Си" я подразумевал С++ smile

PSS Ну на самом деле я "войны" не хотел, а просто удовлетворил свой интерес smile

Хеппи энд smile
PM   Вверх
chipset
Дата 11.7.2005, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4067
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 4
Всего: 164



Эй, эй! Ну я люблю C++ smile
А почему? А патамушта и свобода и удобно программировать! Хочешь, на чисто Сишных функциях дрова кодь, а не хочешь, с GC и мета-программированием высокоуровневую хрень программируй. Если стоит выбор .NET или C++, тут и думать не надо, C++ конечно. Ни под .NET ни под Java нету такого хорошего ассортимента, к примеру GUI либ..
Я думаю все фичи Джавы уже давно реализованы в виде многочисленных бустов, и прочего барахла, а в Джава нету тех фич которые есть C++, и не будет, ибо это ограниченный язык, не универсальный, и сравнивать их нехорошо.
Джаву я признаю только в веб-программировании.
PS. c.l.c++.moderated: Why do you program on C++?


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
TP@MB@Y
Дата 11.7.2005, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 18.12.2004
Где: Москва

Репутация: 1
Всего: 4



Ну ладно. Тогда задам такой дурацкий вопрос: что можно сделать на С++, чего нельзя сделать на дельфи? Я про конкретную задачу, а не про внутреннее описание всяких там шаблонов и перегрузку оперторов.
PM   Вверх
Ch0bits
  Дата 12.7.2005, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Python Dev.
****


Профиль
Группа: Завсегдатай
Сообщений: 2124
Регистрация: 21.2.2005
Где: Казань

Репутация: 1
Всего: 62



А чё на Delphi можно OSь написать? smile
smile smile smile

Это сообщение отредактировал(а) Vadim999 - 12.7.2005, 00:14
PM WWW   Вверх
TP@MB@Y
Дата 12.7.2005, 00:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 18.12.2004
Где: Москва

Репутация: 1
Всего: 4



Vadim999
1) Я конечно не компетентен в этом вопросе (программирование осей), но почему нет?

2) Допустим нельзя написать ось на дельфи (в чем я сомневаюсь). Но разве это ОГРОМНЫЙ МИНУС smile Ведь оси пишутся не каждым вторым программистом. Абсолютное большинство программистов пишут программы под оси, а не оси. (Хотя я могу узко понимать этот вопрос, ведь оси пишутся не только под ПиСи, но и под всякие мобилы...).

С осями разобрались. smile Что еще нельзя на дельфи?
PM   Вверх
Kurt
Дата 12.7.2005, 01:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: нет
Всего: 36



Цитата
Что еще нельзя на дельфи?

Писать под не-Windows системы. Kylix не в счет - он тока под *.nix и уже не развивается.


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.1658 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.