LINUX.ORG.RU

Почему многие кодеры считает С++ недоделкой?


0

2

Смотрю конференции разработчиков на ruby, python. Очень часто проскакивает стеб в адресс С++. Называют недоделкой, псевдо объектно ориентированным и т.п. Почему? Как вообще оценивается степень объектно-ориентированности языка? И почему такая любовь к С++ ?



Последнее исправление: Genesis_39 (всего исправлений: 1)

Смотрю конференции разработчиков на ruby, python. Очень часто проскакивает стеб в адресс С++. Называют недоделкой

И почему такая любовь к С++ ?

ниасиляторы

MrHouse
()
Ответ на: комментарий от VladimirMalyk

основные выпадки именно в сторону объектно ориентированности

Genesis_39
() автор топика

угребищный синтаксис, без костылей типа буста плюсы - херня. А про объектноориентированность лучше всего сказал Алан Кей

lazyklimm ★★★★★
()

неосиляторы они все. на плюсах писать сложно, особенно с бустом. вот я например 2 дня писал вот этот хеллоу-ворлд. надо попробовать на qt переписать...

anonymous
()

Этот тред на случай если 2 предыдущих угаснут?
Неделя С++ на лоре. Хотя читаю с удовольствием да. :)

bga_ ★★★★
()
Ответ на: комментарий от bga_

Я всегда считал C++ за образец объектно-ориентированного программирования, сложный но черезвычайно мощный язык. И при этом самый быстрый! И как получается так, что какие-то скриптовые языки смеют упрекать его в неполноценном ООП?

По мне так с помощью классов, шаблонов и виртуальных функций можно создавать системы любой сложности.

Я за свой опыт работы с C++ я бы и на секунду не променял его ни на bash, ни на perl.

anonymous
()

Потому что не осилили.

Zhbert ★★★★★
()

Проблема в том, что в плюсах объектная модель «слаба». Вся динамичность есть темлпейты и не более.
C++ не ООЯП по той причине, что ты фигурируешь не объектами, а, в лучшем случае, классами. Объектная модель есть в Qt, GTK, но во втором она скрыта внутри библиотеки(С же). Вот Qt - да, движение в сторону ООП на C++.

tia
()
Ответ на: комментарий от anonymous

Да я сам в душе плюсовик. Правда сейчас сейчас всякой функциональщиной увлекся. Но одно друглму не мешает. В С++0x будет то за что сейчас ценят всякие руби. Много сахара. С++0x будет промышленным стандартом еще шире чем С++ сейчас.

bga_ ★★★★
()
Ответ на: комментарий от anonymous

неосиляторы они все. на плюсах писать сложно, особенно с бустом. вот я например 2 дня писал вот этот хеллоу-ворлд. надо попробовать на qt переписать...

посмотрел «хеллоу-ворлд», это не плюсы - это Ц с бустом :)

MKuznetsov ★★★★★
()

потому что есть plain C. а плюсы - костыль поверх.

devl547 ★★★★★
()
Ответ на: комментарий от anonymous

Глупо было бы говорить что если язык не ООП, то он ничего не может. Стоит признать что С++ слаб в ООП, но он обладает интересным механизмом темплейтов, классов. Что С++ обладает самым сильным оптимизатором и компилятором - gcc(может есть и лучше, но суть того, что я хотел сказать, надеюсь, ты уловил).
На самом же деле скорость C++ обусловлена низкоуровневостью, популярностью Linux и многих других проектов, использующих С ИЛИ C++(нет, ну правда, популярность С сильно повлияла на популярность С++), наличием компиляторов, которые столько впитали в себя, над которыми столько работали.
В теории, будь вместо C - Python, а вместо C++ - Ruby, то сейчас бы все говорили «кому нужен этот ваш уродливый быдло С++, который ещё и тормозит, когда есть компилируемый Ruby и Python с такой то объектной моделью?».

tia
()
Ответ на: комментарий от bga_

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

Жду этот день.

anonymous
()
Ответ на: комментарий от MKuznetsov

а если бы я завернул это всё в тучи шаблонных классов и неймспейсов, с почти всеми переопределенными операторами, оно стало бы больше похоже на плюсы?

anonymous
()

Синтаксис у него в вырви глаз. Бедный перегруженный по самое небалуйся *. Как будто бы других знаков не хватило. Замуд в виртуальными функциями как гибко но в 90% случаев нужен именно такой вариант потому в java без лишних объявлений так. Это логично. Да даже -> смотрится не так хорошо как . и на символ больше. А так язык популярен как бы его не хаяли. И всякие питоны руби тоже на чем то ведь сделаны :).

mf
()
Ответ на: комментарий от mf

> его не хаяли. И всякие питоны руби тоже на чем то ведь сделаны :).

Они вообще-то на C написаны. Никто не замазался C++.

anonymous
()
Ответ на: комментарий от aho

про gcc была новость, но я не знаю было ли что-то сделано с тех пор

aho
()

Потому что Си оказался слишком хлипким фундаментом для того, что на него водрузил Си++

tailgunner ★★★★★
()

Ну вас не смущает что от ООП и хорошего дизайна ПО вас постоянно отвлекают указатели, конструкторы копирования, передача по ссылке или по значению, отсутствие таких простых вещей как кроссплатформенные потоки. Этим просто не хочется заниматься. Я представить не могу корпоративную систему с кучей бизнес-логики на плюсах. Оно будет ТАК течь, что далеко за границей неюзабельности. Конечно можно достить нормального результата и на плюсах, но за такое время отладки и тестирования, что программа станет совсем негодной.

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

>Я представить не могу корпоративную систему с кучей бизнес-логики на плюсах

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

anonymous
()
Ответ на: комментарий от anonymous

И к чему этот коммент? Ну я тоже согласен что на С++ хорошо hello worldы писать. Остальное - очень большими затратами

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

> Ну я тоже согласен что на С++ хорошо hello worldы писать. Остальное - очень большими затратами

авторы фотожопа, крысиса, хромого, автокада и пр. смотрят на тебя с недоумением

aho
()
Ответ на: комментарий от vertexua

> Я представить не могу корпоративную систему с кучей бизнес-логики на плюсах.

Молодой еще...

LamerOk ★★★★★
()
Ответ на: комментарий от aho

Это уже ЛОР слышал давненько и много раз. Я же сказал, что пишутся, но большими затратами. Если есть финансы, то почему бы не заняться этим мазохизмом. Программы будут действительно намного быстрее

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

> Если есть финансы, то почему бы не заняться этим мазохизмом.

ну не всем же бизнес-логику (с) писать

aho
()
Ответ на: комментарий от aho

Естественно. Но ускорение обычно достигается так же хорошими алгоритмами, а в меньше мере легким рантаймом. Вот паралельно 3 проекта на плюсах я бы не успевал. А так норм.

vertexua ★★★★★
()

Смотрит конференции питонистов и удивляется их мнению про С++. Вот интересно что пишут на конференциях С++ про питоны?

anonymous
()
Ответ на: комментарий от vertexua

>Вот паралельно 3 проекта на плюсах я бы не успевал.

И что? Какие выводы следуют из этого?

anonymous
()
Ответ на: комментарий от vertexua

Если вам нет смысла начинать 3 проекта на языке Х одновременно, то это значит, что именно вам нет смысла начинать именно эти 3 проекта именно на Х. Ничего другого это не значит.

anonymous
()
Ответ на: комментарий от vertexua

> паралельно 3 проекта на плюсах я бы не успевал

нет смысла начинать 3 проекта на С++ одновременно


гениальный вывод :) а вообще странно начинать сразу три проекта в одиночку( если это не Hello World (c) ), неважно на каком языке

aho
()
Ответ на: комментарий от aho

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

vertexua ★★★★★
()
Ответ на: комментарий от anonymous

Ну понятно что если кто-то прекрасно знает С++, но не знает Java, то логично предположить что из 3 Java проектов ничего хорошего не выйдет

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

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

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

> Но если фактор времени давит, то выбор очевиден сразу

это конечно же CL - интерактивная разработка рулит, когда надо сделать что-то быстро

aho
()
Ответ на: комментарий от vertexua

> Не пробовал, может быть

да и вообще непонятно зачем использовать Java - CL и мощней сам по себе и разработка на нем быстрей

aho
()
Ответ на: комментарий от aho

Пока есть С++ и Лисп — тролли всегда найдут на ЛОРе обильное питание.

anonymous
()
Ответ на: комментарий от vertexua

> Но вообще намек начинается тут

http://projects.apache.org/indexes/language.html#Java. Это только Apache...


как бы CL - тоже не «голый», да и к примеру из него легко можно использовать тот же Qt, например, когда для Java все забросили, вон товарищ love5an замечательную библиотеку для FFI написал

aho
()
Ответ на: комментарий от aho

К чему это все, сами посудите, есть коллектив из 100 разработчиков разных уровней, от Junior до Lead.

Есть два языка. Один обладает большой синтаксической мощностью, возможностью решать задачи разнообразными и нетривиальными методами, имеет относительно небольшой набор библиотек, проверка продакшном есть, но эпизодическая в масштабах всего количества ПО в мире.

Другой имеет достаточно простой синтаксис, синтаксические выверты не поощряются, сильный Coding Convention, код следовательно очень стандартный у все выходит. Количество библиотек протестированных годами продакшна в тысячах проектов на любую тематику зашкаливает. Язык и платформа разрабатывается лидерами индустрии. Для большинства рантаймов и библиотек есть платная поддержка.

Какой бы язык вы выбрали будучи тимлидом и ответственным за успех проекта? Только честно )

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

> Какой бы язык вы выбрали будучи тимлидом и ответственным за успех проекта? Только честно )

не зная сути проекта? никакой, я не считаю, что существует универсальный язык под все задачи, и я не посажу человека писать на Java под iPhone, или на питоне писать СУБД и т.д.

aho
()

2 причины

1. не осилили

2. разработка на питоне/руби в разы быстрее

ЗЫ а по поводу ООП, так это зависит от знаний и опыта. Все высказывания типа «псевдо ООП» - от незнания, имхо.

Berluskoni ★★
()
Ответ на: комментарий от aho

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

А вот о Java нужно думать, может есть более удачные альтернативы для этого конкретного проекта. Но рассуждать нужно о таких вещах, не абстрактно выкрикиваея «учи хацкелл», а реально оценивая с точки зрения могли бы вы вложить в это большую часть своего предполагаемого капитала. Вот если у вас есть 50 млн, готовы вложить около 30 в проект на лиспе? ;)

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

Я в одном проекте на 3 языках одновременно работаю. А за что-то одно цепляются только конченые фанатики.

anonymous
()
Ответ на: комментарий от vertexua

То, что вопрос «Какой бы язык вы выбрали будучи тимлидом» сформулирован неверно. Это всё равно что спросить что бы выбрали на обед — суп или котлеты.

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