LINUX.ORG.RU
ФорумTalks

[c] [c++] [c#] Тенденция, однако

 ,


0

1

Почему все сейчас отказались от чистого Си? Почему все ломанулись в это объектно-ориентированное программирование? Даже простейшие программы пишут с использованием ООП. Почему не существует IDE для Си уровня проприетарной Visual Studio? Получается замкнутый круг. С одной стороны, на Си не пишут, потому что для него нет крутых «интырпрайзных» IDE. С другой стороны, разработчики тех самых IDE не спешат поддерживать Си. Пустую форму с кнопкой, при нажатии на которую выскакивает «Hello, world!», быстрее наклепать на C++. Но это ведь преимущества IDE, а не языка, да?

Ассемблер неплох, но не переносим. Си уровнем чуть повыше, на этом уровне уже достигается переносимость. Зачем подниматься выше? Зачем тащить за собой ООП, как гроб? Я признаЮ, что есть вещи, где ООП позарез нужно, но ведь нужно оно не всегда.

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

В чем секрет популярности коммерческих продуктов? Когда продукт перестает быть конкурентноспособным, менеджеры придумывают фичу - как правило, очередной уровень абстракции, скрывающий реализацию чего-либо, или «прогрессивный» интерфейс типа M$ Ribbon - и агрессивно продвигают эту фичу как современный стандарт. Посмотрите на БД Oracle: объемные SQL-запросы, раздутые на два экрана. Сейчас интенсивное развитие многих продуктов завершилось. Тот же M$ Office 2003 по функциональности почти равен 2010-му. Если скаммерсанты не будут придумывать очередные риббоны, дотнеты и прочее, то люди перестанут покупать новые версии. Главный недостаток такого подхода - раздувание программного обеспечения.

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

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

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

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

> Ъ-пацаны говорят, что дебаггеры не нужны.

С тобой пошутили, а ты и поверил.

навигация по коду

cscope/etags недостаточно?

Каменный век.

рефакторинг

может за тебя ещё и программу написать?

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

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

> может за тебя ещё и программу написать?

А что не так? Что плохого в том, чтобы упрощать себе жизнь? (:

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

>В отличие от написания программы, для некоторых видов рефакторинга ума не надо.

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

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

Фиг с ними, питонистами да перлистами - это, все-таки, то же самое, что и скрипты на баше, для повседневных нужд...

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от ns_ramesses

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

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

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

1) напишете пару десятков программ по 40-50 тысяч строк кода в каждой, 2) будете вынуждены активно юзать чужие компоненты в своём софте (и особенно допиливать их под себя),

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

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

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

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

gajim? deluge?

Чего матюгаетесь-то? :) Первый раз такие слова вижу...

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от lazyklimm

Синтаксис однако , хотя мне тут уже подсказали , что в С99 можно и без этого

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

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

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

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

> Вот и выросло поколение, для которого «модульность» и «хороший код» значат «ООП».

вы так говорите будто оно выросло недавно

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

Можно на C++ написать программу без единого класса/объекта?

И после этого ты берёшься рассуждать о С++? )))

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

В самом существовании концепции. Лишние сущности, лишние конструкции.

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

Reaper ★★
()

Первое сообщение в треде - аццкий бред шизофреника. «Здесь всё смешалось: кони, люди, мечи, секиры, топоры...».

Сравнивать язык с парадигмой, придумать бред про отсутствие IDE, а потом с умным видом начать спрашивать у всех, почему нет IDE, приплести сюда дизайнер гуйни, сравнить интерфейс (риббон) с архитектурой программы, придумать в качестве негативного примера для БД абстрактный сложный запрос - поздравляю, ты выиграл конкурс на самый тупой топик года. ))

Ты или невероятно глуп или невероятно толст. Скорее всего, первое. )

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

но все же хочу понять, чем вариант с редакторами предпочтительнее

Для меня редактирование текста в имаксе настолько удобно, что недостатки реализации отдельных вещей, характерных для IDE несущественны, вот и весь сказ.

Reaper ★★
()

>Пустую форму с кнопкой, при нажатии на которую выскакивает «Hello, world!», быстрее наклепать на C++. Но это ведь преимущества IDE, а не языка, да?

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

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

>способные писать

вменяемый код


вот в этом и загвоздка.

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

>gajim?

deluge?


Это мелочи, на питоне традиционно пишется например софт для молекулярного моделирования, правда с критическими частями на фортране и си

DNA_Seq ★★☆☆☆
()

Копипаста коммента :}

… Gnome is based on an outmoded hack of an attempt to build an OOP based GUI without the benefit of an object-oriented compiler. Instead is uses a collection of nasty hacks and conventions, which which I am deeply familiar because I once was deluded enough to think also that C is just as capable of writing object object oriented code as C++. It isn't. What you end up with is an unholy unmaintainable mess. Full of messy casts, and full of bugs, as Gnome has always been. And unable to express reasonable defaults for things in any powerful or consistent way, the result being that Gnome tends to have lousy defaults for just about everything. Add in a liberal does of hubris from certain Gnome maintainers, and have blinkers on regarding the limitations of the GUI toolkit, and you have a recipe for the nasty mess that Gnome has been from the get-go, and will be until somebody finally does something about it. Thankyou Mark.

Incidentally, these comments apply equally to glib, dbus and various other crappy decorations the Gnome guys have forced on the Linux desktop over the years. At least Bonobo is gone, that goodness for small mercies.

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

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

tcl/tk

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

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

Оно и без ООП нормально (тот же gtk).

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

>Оно и без ООП нормально

когда надо делать свой компонент-виджет, это проще и удобнее сделать с помощью ООП.

Voviandr
()

> Почему все сейчас отказались от чистого Си?

1) Потому как еще в 1985 году компания Stepstone выпустила Objective-C - маленькую и приятную ОО «оболочку».

2) Потому как GTK+/GNOME - это изначально Pure C.

3) Потому как кульхацкеров в реальные программные конторы не берут.

4) Потому как толстый троллинг не доставляет.

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

>Оно и без ООП нормально (тот же gtk).

нельзя упоминать слова «gtk» и «нормально» в одном предложении. Если gtk не набор костылей то что же тогда костылями является?

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

А что, разве не костыль? Для каждой, даже элементарной, вещи в Qt написана своя оболочка. Зачем это? И что это, как не костыли?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от DNA_Seq

Именно поэтому кути такие монструозные и тормозящие. Зачем писать обертку, скажем, для pthreads? А для последовательного порта? И т.д., и т.п. Вот это уж точно людям нечего делать.

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

Одно из основных правил юникс-вея - жертвуй производительностью ради переносимости. К тому же gtk-поделки зачастую даже более тормозные, xfce по тормозам уже гном догнал хоть даже половины его весьма убогой функциональности не имеет.

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

Одно из основных правил юникс-вея - жертвуй производительностью ради переносимости

Переносимости куда? В POSIX-совместимых системах все будет работать, безо всяких велосипедов.

gtk-поделки зачастую даже более тормозные, xfce по тормозам уже гном догнал

Зато IceWM летает. Что там такого в xfce, что он тормозит, понятия не имею. Gnome тормозит по понятной причине: там слишком много лишнего.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от DNA_Seq

Ну например на кластеры

Не думал, что на кластерах используют софт с GUI...

Зато IceWM летает.

Я бы не сказал, не зря же e17 с gtk ушел

А вы проверьте, если мне не верите. Всякие fluxbox'ы и то тормознутее IceWM, а уж монстры вроде гнома или кед - вообще жесть какая-то (хотя, они уже DE, так что, возможно, тормознутость - их «фича», а не баг)...

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

>Не думал, что на кластерах используют софт с GUI...

Сюрприз - Qt позволяет писать не только гуйню. В тому же например не требуется модифицировать программу чтоб задействовать ускорение отрисовки видеокартой.

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

> А где ты увидел ООП в С++? Там есть пакеты и импорты?

А где в Смоллтоке пакеты и импорты? %)

Там есть duck typing? Без всего этого ООП не ООП.

Ахренеть.

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

Все равно не люблю я кути :) Кстати, про

не требуется модифицировать программу чтоб задействовать ускорение отрисовки видеокартой

а при чем здесь тулкит вообще? Это же только от модуля видеокарты зависит...

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от sS

Блин, тебе шашечки или ехать? Мне ехать, поэтому С++ и C я в своих приложениях на десктоп буду использовать только в том случае, если оно мне «риальне нада». Понятно, что на си(плюс-плюс) всё можно сделать красиво и оптимизированно, но в немалом количестве случаев мне это нахрен не надо. Мне надо быстро и работоспособно. Если для этого мне потребуется .net framework или mono и гиг памяти в нагрузку - мне по-барабану.

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

P.S. Не, не понять мне апологетов ручного распределения памяти...

Dark_SavanT ★★★★★
()

>Пустую форму с кнопкой, при нажатии на которую выскакивает «Hello, world!», быстрее наклепать на C++. Но это ведь преимущества IDE, а не языка, да?

Нет.

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

>>gajim?

deluge?

Это мелочи, на питоне традиционно пишется например софт для молекулярного моделирования, правда с критическими частями на фортране и си

но ты же не будешь говорить, что это просто скрипты аля баш, написал и забыл )
http://www.linux.org.ru/forum/talks/6007099/page2?lastmod=1300012481241#comme...

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

deluge в принципе единственный нормальный торрент-клиент на gtk, вот такая ситуация с гномософтом - либо убогие поделки на чистом си либо более-менее удобные на интерпретируемых языках

DNA_Seq ★★☆☆☆
()

>Почему все ломанулись в это объектно-ориентированное программирование?

Кстати, а почему ты задаешь вопрос спустя 20 лет после того как ломанулись?

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