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 ушёл оттуда, где ему никогда не было место. А в тех задачах, на которые он расчитан, его позиции остаются стабильными.

Почему не существует IDE для Си уровня проприетарной Visual Studio?

А что ты хочешь увидеть в такой IDE ? Инструментов для С хватает - построение графов вызова, отладчики, инструменты формальной верификации, итд. IBM сравнительно недавно заявляла о выпуске самообучающегося оптимизирующего компилятора (точнее, генератора этого самого компилятора). Что ещё надо ?

Вообще, я не понимаю, почему до сих пор сравнивают С, С++, и С# ? Ведь это совершенно разные языки.

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

> скажи это watcom'у 10.6 под qnx4

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

aho
()

The more you can avoid programming in C the more productive you will be. (C) Eric Raymond

/вбросил

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

> мне о-о-чень неудобно объявлять все переменные в начале тела

У этого объявления есть плюсы:
1. Код будет проще читать, все переменные будут в одном месте. Откроете в редакторе кода файл в двух фреймах, в одном будете просматривать переменные, в другом - сам код.
2. Лишний раз задумаетесь над тем, создавать ли очередную переменную i, j, num, temp и так далее. Лишние сущности будете отсекать на автомате.

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

Я упоротый фанатик, который в своей жизни ни строчки не написал. Очевидно же.

да, очевидно :)

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

Особенно если потом какую-то часть кода выносить или убирать придётся :}

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

Вместо того, чтобы разводить пустые холивары C vs C++ просто обличу себя в роль КЭПа:

Для тебя объекты и классы - лишние сущности. Поэтому ты хочешь избавить софт от парадигмы ООП. Для других ООП кажется весьма изящным (в качестве удачного воплощения ООП приведу Qt, и думаю, что многие со мной согласятся), с которым намного легче разрабатывать и поддерживать архитектуру приложения, им нравится инкапсуляция, наследование и полиморфизм. Каждый выбирает концепцию по вкусу.

Хотя было бы интересно услышать, в чём ущербность ООП.

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

> Можно выстраивать более логичную иерархию программы

«Якобы логичность» важнее простоты?

ns_ramesses
() автор топика
Ответ на: И вдогонку... от Chaser_Andrey

И вдогонку...

Почему объектно-ориентированное программирование вызывает у тебя такой butthurt?

потому что ТС, как яркий представитель нубошколоты, думает что таким образом он выражает своё чувство солидарности с бородатыми хацкерами 80-х, ошибочно полагая что тем самым повышается его статус в обществе

shty ★★★★★
()

>Почему не существует IDE для Си уровня проприетарной Visual Studio? А зачем? nano+gcc не хватает?

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

> Чем выше поднимаемся — тем проще программировать

И тем сложнее выучить язык с его 100500 конструкциями и особенностями.

меньше рутинных действий, быстрее разработка


От IDE зависит больше всего.

при этом, чем больше проект, тем большие преимущества в его поддержке дает ООП


Скажите это Линусу, он посмеется.

man Gtk


Про ГТК в курсе, но запустить IDE, кинуть на форму кнопку, кликнуть два раза, написать «messageBox(...);» и нажать «Run» всяко быстрее.

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

У тебя нет ведроида? Ай-ай-ай, как же ты мог так поступить?! Скоро небось закон выйдет, что без зонда жить нельзя.

:)

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

> которой в С нет, и которую в С «эмулируют» вложенными структурами

Эмуляция такая нужно в крайне редких случаях, для которых действительно можно заюзать C++. Но 99% софта можно без геморроя написать и на Си.

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

> Почему не существует IDE для Си уровня проприетарной Visual Studio?

А чем не устраивают Visual Studio, Eclipse + cdt, Sun Studio, Anjuta и остальные?

Зачем подниматься выше?

А ты писал что-нибудь на Си? Проекты вроде CCAN и gnulib не на пустом месте возникли. Реализовывать стандартные контейнеры и алгоритмы каждый раз достаточно утомительно.

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

Нет. Тут вопрос в количестве строк кода необходимых для решения задачи.

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

A common refrain among C++ programmers talking with C programmers is, «Everything you can do, I can do beuer!» © 2008 Bjarne Stroustrup

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

> И тем сложнее выучить язык с его 100500 конструкциями и особенностями.

хорошо, ты видимо С знаешь - покажи как ты объявишь множество, состоящее из строк, как добавишь туда строку и удалишь

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

В «ыштырпрайзе» скриптовые языки не в моде, так как скрипты открыты, код не спрячешь. Есть обфускаторы, но и они не спасают.

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

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

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

конечно можно

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

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

Да. Скомпилируй любую программу на C плюсовым компилятором и поразись как всё просто.

kim-roader ★★
()
Ответ на: комментарий от hibou

Да ну, за МКАДом всё равно жизни нет. Кто нас тут искать будет… :)

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

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

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

> Эмуляция такая нужно в крайне редких случаях, для которых действительно можно заюзать C++.

а ты много кода на С лично пересмотрел?

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

задание не совсем честное. Задача описана в терминах С++. Адаптирована для С++. Точно так же можно задать специфичную задачу для С# и долбаться с ее решением на С++.

Нужны независимые задачи.

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

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

смотри выше

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

>Про ГТК в курсе, но запустить IDE, кинуть на форму кнопку, кликнуть два раза, написать «messageBox(...);» и нажать «Run» всяко быстрее.

Не нужно.

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

>И тем сложнее выучить язык с его 100500 конструкциями и особенностями.


4.2 Порог вхождения скажем в Питон, или РНР нереально низкий.

От IDE зависит больше всего.


Прозреваю, что на Си писал не больше, чем хелловолд.

Скажите это Линусу, он посмеется.


Ну и как например игровой движок уровня Unreal Engine III на чистом Си запилить? Точнее не как, а какие ресурсы потребуются.

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

> никто не заставляет их использовать

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

легко

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

> Если не заметили, это во всем сейчас так. В телефонах - в дизайре уже проц 1 ГГц - ё-мае!

Если бы системы развивали интенсивно, а не экстенсивно, телефон с процессором 1 ГГц работал бы от аккумулятора на порядок (в ~10 раз) дольше, крутил бы сотни приложений одновременно и при этом не тормозил. Но увы.

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

> Про ГТК в курсе, но запустить IDE, кинуть на форму кнопку, кликнуть два раза, написать «messageBox(...);» и нажать «Run» всяко быстрее.

man glade

kim-roader ★★
()

>Почему все сейчас отказались от чистого Си? Почему все ломанулись в это объектно-ориентированное программирование? Даже простейшие программы пишут с использованием ООП.

По той же причине, почему популярны 3Ds Max, Adobe Photoshop, Cubase и т.д.
Потому, что:
1. Пиар.
2. Окружающие «специалисты» (как правило сами поверхностно знающие тему, но мнящие себя невесть кем) начинают парить неокрепший мозг начинающего.
3. Как следствие такого повального внедрения начинают входить книги типа «фотошоп за 5 минут».
4. Тех, кто кое-как это хозяйство освоил, берут на работу преподавать «программирование» (быдлокодинг), «компьютерную графику» (пародию на графику), и прочее

В процессе этого грязного дела у неспециалистов (а они все не являются специалистами, так как не владеют теорией вообще никак) складывается такая картина мира, в которой единственный возможный графический редактор - это фотошоп, единственная возможная САПР - автокад, и тому подобное.

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

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

задание не совсем честное. Задача описана в терминах С++. Адаптирована для С++. Точно так же можно задать специфичную задачу для С# и долбаться с ее решением на С++.

Нужны независимые задачи.

это с чего ты решил? обычная практическая задача, которая хоть на C# хоть на чём хочешь возникает

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

>задание не совсем честное. Задача описана в терминах С++. Адаптирована для С++.

Это множество строк что ли? С чего бы вдруг?

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

> потому что удобно

Зато C++ учить на порядок дольше, чем Си. И он богат лишними сущностями.

Vim rules


Двумя руками за! Но в Виме не кинешь на форму компонент, не кликнешь по нему и не запустить софтину. RAD IDE быстрее.

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


Вопрос в другом. Люди не задумываются над там, нужен ли этот велосипед.

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

> Зато C++ учить на порядок дольше, чем Си. И он богат лишними сущностями.

назови лишнюю сущность - быстро, решительно

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

Python несоизмеримо лучше, чем C++. Совершенно другой уровень.

C++ - это костыли, которые припёрли к C, чтобы получить «современный ООП-язык». В результате получили кучу костылей.
Python делали как язык общего назначения. И получили его. Не без недочётов, но получилось гораздо лучше, чем C++.

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

> А что ты хочешь увидеть в такой IDE ?

То же, например, что проприетарная Delphi дает объектному паскалю или проприетарная M$ VS дает сям++.

IBM сравнительно недавно заявляла о выпуске самообучающегося оптимизирующего компилятора (точнее, генератора этого самого компилятора)


Пруфлинк?

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

> Не без недочётов, но получилось гораздо лучше, чем C++.

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

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

pylin> Под Python IDE нормальных то же нет и все же его популярность растет

Есть. По крайней мере были. Тот же KDevelop.
Да и IDE там не особо нужно: GUI делается спокойно без специальной IDE для мышекодеров, а синтаксис довольно наглядный.

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

> То же, например, что проприетарная Delphi дает объектному паскалю или проприетарная M$ VS дает сям++.

Открытие документации по f1? Или запуск компилятора по f5? Это тебе и vim даст. Ты конкретнее говори. И сразу с примерами чего нет в VS, Eclipse+cdt, Sun Studio и Anjuta для C, но что хотелось бы видеть.

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