LINUX.ORG.RU
ФорумTalks

C++ - некошерно, C - кошерно. Почему?


0

0

Решил тут поднять свой левел знания С/С++ дальше понимания синтаксиса и пр., т.к. с Pascal'ем в моем городе дальше хобби не "уехать" по всей видимости :) Ну и собственно начал практиковаться, переводя один свой проЭкт на С. Почему-то расстроило отсутствие аргументов по умолчанию, с трудом привык к работе со строками и пляскам вокруг ручного контролирования выделения под них памяти и т.д. Свыкся с разбивкой модулей на *.c/*.h(даже проникся)... в общем ладно, отошел от темы немного ) Хотел поинтересоваться, какие реальные аргументы на тему "С++ - УГ" можно привести? :) И будет ли извратом/некошерно использовать C++ не прибегая к использованию классов/STL/etc.?

ЗЫ: давно подобных тредов не было, лень искать старые.

★★★★
Ответ на: комментарий от Absurd

> А в ++ полетит segmentation fault, и чо?

кто-то из вас двоих знает язык на котором все программы работают как надо? рассказывайте :)

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

> вы знаете что такое тестирование ПО?

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

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

По бессмертным трудам нашего светоча разума и великого учителя В.С.Лугоффского и пророка его А.Александреску:

"Типичной ошибкой программиста на С++ является выбор С++ в качестве языка программирования." (с)

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

А вы попробуйте написать на С++ подсчет количества символов в файле и случайно забудьте о проверке eof. А мы посмотрим, как оно откомпилится, что оно будет выдавать и какие новые матерные слова вы придумаете.

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

> просто 2 my mind тебя слишком рантаймовые оштбки в пистоне затрахали в результате чего у тебя слишкои идеализированное представление о языках со статической типизацией

Я почти пол-жизни (профессиональной) работал на Си++, немного на Яве, и сейчас довольно много - на Си. У меня нет никакого идеализированного представления ни о чем.

> рантаймовые баги порой анноят по сравнению с ++ или жабой это сущие мелочи жизни.

Только вот динамическая типизация тут не при делах, Питон просто более высокоуровневый и удобный язык. А песец с динамической типизацией проявляется не тогда, когда ты пишешь программу, а когда ты ее _переписываешь_.

tailgunner ★★★★★
()
Ответ на: Некошерно. от Camel

>Более того, смешивать процедурную и ОО парадигмы крайне некошерно.

C++ процедурный язык. OO процедурности - перпендикулярно.

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

> По бессмертным трудам нашего светоча разума и великого учителя В.С.Лугоффского

я вас вероятно шокирую - но в жопу Лугоффского, его я не застал, но судя по цитатам - он типичное быдло

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

говорите полную ерунду..
ошибки случаются во всех програмах. Тестирование должно избавить от этих ошибок... Так во всех языках...
Вот только когда падает питон (в рамках тестирования естественно), то буквально сразу знаешь в чем трабл, а вот на том же С++ придеться репку то почесать...

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

>> А в ++ полетит segmentation fault, и чо?

>дык аккуратней программы писать надо, и segmentation fault не полетит

А что, про пистон нельзя сказать тоже самое?

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

> дык аккуратней программы писать надо, и segmentation fault не полетит

я уверен что вы на плюсах в жизни если что то и писали, то только учебные примеры... аккуратист вы наш)

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

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

>>А в ++ полетит segmentation fault, и чо?

>дык аккуратней программы писать надо, и segmentation fault не полетит

дык аккуратней программы писать надо, и TypeError не полетит. ответ устраивает?

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

> Вот только когда падает питон (в рамках тестирования естественно), то буквально сразу знаешь в чем трабл, а вот на том же С++ придеться репку то почесать...

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

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

>А песец с динамической типизацией проявляется не тогда, когда ты пишешь программу, а когда ты ее _переписываешь_.

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

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

> >дык аккуратней программы писать надо, и segmentation fault не полетит

> А что, про пистон нельзя сказать тоже самое?

можно и нужно естественно

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

>> Как ты смог? Меня это в них очень убивает :)

Силой воли :) А так да, глядя на громадный код, вместо какого-нить "str1 := str1 + IntToStr( Value ) + str2;" становистя тошно...

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

> дык аккуратней программы писать надо, и TypeError не полетит. ответ устраивает?

вполне

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

> Он тоже быдло?

читал его книгу по С++ - где он явно указывает на недостатки последнего( still wait for C++ 1x ), но не видел такой же по Java ;)

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

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

1) на практике такого не встречал (python использую довольно часто)
2) тестирование (в том числе автоматическое) сводит возможность такой ошибки в продакшине к нулю...

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

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

Кстати, многие банальные ошибки отлавливают инструменты типа pyflakes и pylint.

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

> 1) на практике такого не встречал (python использую довольно часто)

не разу не очепятывался ? не верю (с) ...

> 2) тестирование (в том числе автоматическое) сводит возможность такой ошибки в продакшине к нулю...

тестирование это костыли, оно нужно, но это всего лишь костыли ...

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

> Кстати, многие банальные ошибки отлавливают инструменты типа pyflakes и pylint.

это костыли под изначально шаткой конструкцией

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

> Торвальдс в том самом треде порекоммендовал начинающему евангелисту плюсов в качестве задачи "устранить в большом проектве С++ несколько неэффективных абстракций".

Мне искренне наплевать на то, как именно Линус троллит.

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

>но почему-то визитной карточкой больших программ на Java является именно тормознутость

Потому что визитной карточкой аналогичных програм на С++ является отсутсвие оных.

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

Мне она не помогла, такие ужасы всегда вызывали желание поудалять весь код к такой-то бабушке :)

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

>> но почему-то визитной карточкой больших программ на Java является именно тормознутость

> Потому что визитной карточкой аналогичных програм на С++ является отсутсвие оных.

Как-то неожиданно толсто.

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

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

Сколько не писал на питоне - ни разу такую ошибку не получал. Может быть стоит попробовать тренировать внимательность? Например, перечитывать то, что ты написал. Хорошая привычка, кстати.

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

> не разу не очепятывался ? не верю (с) ...

ни разу опечатка не уходила дальше первичного тестирования

> тестирование это костыли, оно нужно, но это всего лишь костыли ... 

что значит костыли? мне смешно даже слушать такое...

сколько вы лет работаете и на какой должности если не секрет???

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

> Может быть стоит попробовать тренировать внимательность?

это да ... чет последнее время не очень сосредоточен ...

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

> сколько вы лет работаете и на какой должности если не секрет???

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

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

>Посмотрим на KDE, которые написаны на Qt, которые в свою очередь написаны на C++.

Qt это такая жаба которую написали на С++ чтобы приглушить ощущение ужоса от самого языка. У меня такая же либа на жабе есть с которой зубы не так скрипят.

>Сомневаюсь, что круизис и прочие сталкеры написаны на C#.


Угу. У них и время разработки.... Стулкер начали писать наверное когда дипбла вторая вышла. Релиз опоздал года на 3-4 - поколения видеокарт поменялись несколько раз и пришлось переписывать.


r ★★★★★
()

lester вышел из чата (с)

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

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

И все-таки я не понял чем же python хуже в отладке от плюсов? И почему програмисты на нем ошибаются чаще?

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

>> Торвальдс в том самом треде порекоммендовал начинающему евангелисту плюсов в качестве задачи "устранить в большом проектве С++ несколько неэффективных абстракций".

>Мне искренне наплевать на то, как именно Линус троллит.

А что, в ++ можно просто устранить неэффективные абстракции?

Absurd ★★★
()

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

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

>а давайте рассмотрим мой любимый пример, торрент-клиенты ... безусловным лидером является мастдайная закрытая программа utorrent, написаная на С++, занимающая 200 Кб и отлично работающая, всякие азуреусы на яве по 11 Мб, и клиенты на пистоне сливают однозначно ... ну не энтерпрайз конечно, да ...

Давай лучше сравним linuxdcpp и deluge.

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

> просто таких высказываний о тестировании ПО никогда не слышал...

дык я говорю что тестирование НУЖНО ... просто слишком часто уж слишком полагаются на него, вместо того чтобы думать головой ...

> И все-таки я не понял чем же python хуже в отладке от плюсов? И почему програмисты на нем ошибаются чаще?

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

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

> Давай лучше сравним linuxdcpp и deluge.

не имел счастья попользоваться к сожалению, ибо мастдайщик

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

>например?

Те про кеоторые ты говорил что они тормозят. Сравнивает Eclipse/Idea с чем хочешь. Да кушают память. Да бывает подтормаживают. ДА делают много такого о чем остальным плюсовым IDE можно даже не мечтать. Да QtCreator быстро запускается. Да - это все что он умеет.

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

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

Выбрось свой Emacs и открой для себя PyDev.

tailgunner ★★★★★
()

>C++ - некошерно, C - кошерно. Почему?

Изя, ты зачем сегодня на проповедь в синагогу не приходил?

Талмуд перестал читать. Бороду сбрил... Что с тобой делать, даже не знаем. :(

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

>или вы вообще считаете, что нет больших программ на С++? тогда вы просто тупите

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

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

> Выбрось свой Emacs и открой для себя PyDev.

Не обижать емакс. Он неплохо питон цепляет, и pdb умеет.

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

>lester зашел в чат<

> Те про кеоторые ты говорил что они тормозят. Сравнивает Eclipse/Idea с чем хочешь. Да кушают память. Да бывает подтормаживают. ДА делают много такого о чем остальным плюсовым IDE можно даже не мечтать


посмотрите как нибудь на MS Visual C++ и Visual Assist и после этого вам станет стыдно, что вы подняли тему IDE, особенно что касается скорости работы

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

> Выбрось свой Emacs и открой для себя PyDev.

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

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

>> А что, в ++ можно просто устранить неэффективные абстракции?

>А что, это хоть где-нибудь просто?

Ну речь AFAIU шла о том что рефакторить код с динамической типизацией ужасно тяжело. А сейчас оказалось что и со статикой нелады.

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