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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> C && C++ 
:(
    Опции темы
HellStranger
Дата 2.8.2010, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(GrayCardinal @  2.8.2010,  11:29 Найти цитируемый пост)
Ха. Если программу можно написать на чистом Си - лучше так и сделать. Если придет понимание того, что без классов не обойтись - дописываем нужные классы. То же с ассемблером. Ежели очень хочется - то можно. И почему некоторые пишут на чистом Си++ (всё есть классы) лично я не догоняю.


Абсолютно согласен! Я уже приводил минимум 5 проектов, написанных на чистейшем C (в некоторых применяется ООП, но реализация всех классов на том же старом добром C), широко и не очень применяемых под разными осями. То есть, люди хорошо знающие C, прекрасно обходятся без всех довольно спорных прелестей C++, а главное в практически такие же сроки, как, если бы задача решалась на cpp. Плюс, многие здесь говорят, что программа не должна быть очень быстрой, а должна быть довольно быстрой... Знаете, товарищи, воообще-то для серверного ПО скорость очень критична, как и затраты ресурсов. И здесь cpp до C как до Киева в одной позе... Приведу простой пример: компания контент-провайдер, в которой я работаю, разработала и использует 2 плоатформы: 3G_Video_IVR (работал в Германии) и платформа для sms. Первая- вся начинка сишная, вторая- cpp. Так вот 3G_Video_IVR  держал 10 видео абонентов на Pentium 4 3.4 GHz с гигом оперативки под XP и грузил проц на 25-30% максимум, вторая по 5 раз на дню вылетает при более-менее нормальной нагрузке: 100-1000 sms. Я думаю, не нужно здесь доказывать, что обработка online-видео c перекодированием на лету и работа со строками длиной до 150 символов- разной сложности задачи.
Возьмём ту же асму. Если человек хорошо знает архитектуру процессора, систему команд и операционку, под которую пишет, то серверное приложение будет разработано в те же сроки, что и приложение на cpp (всё-равно использовать API системы и там и там). Только вот кому будет нужен cppшный сервак, когда есть асмовский... 
А мораль сей басни такова: нужно быть профессионалом в том, чем ты занимаешься, и тогда границы между asm, C, C++, C# и т.д. и т.п. становятся очень размытыми... В идеале, современный программист должен знать всё, и выбирать язык и технологии в зависимости от задачи. А меряться: писька у cpp длиннее всех, а C и asm- прошлый век, это очень не умно. 
PM MAIL   Вверх
Modul
Дата 2.8.2010, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

Но в итоге опыт обобщили до любых сложных задач.


Вот. И теперь мы решаем сложные и еще более сложные задачи.

Мы же говорим про настоящий момент и немного на перспективу ! smile 

Кроме того есть теоретики и практики.

Есть и определенные критерии (показатели) оценки эффективности.
Например скорость разработки, спрос, зарплата.

А смысл изучать что-то хорошее, но мало востребованное.
Нонсенс !

Да еще важна специализация работника - к чему он тяготеет.

Цитата

Но через некоторое время должно надоесть велосипед изобретать

Все хорошее уже изобретено.
...и человек займется наконец своей работой !  smile 

Цитата

И почему некоторые пишут на чистом Си++ (всё есть классы) лично я не догоняю.

Тоже верно.
Смысл писать 1 функцию и для нее класс, потом еще создать объект и его удалить.
Написал DLL, загрузил сишным методом и дело сделано.
Отсюда вывод:
Зачем из пушки по воробьям стрелять. Незачем !

Другое дело - большой класс, например парсер с 10 функциями.
Здесь без ООП просто не обойтись.

Можно здание строить из кирпичиков и из глины, долго месить и построить через 3 года.
А можно из блоков (классов-объектов) или из панелей (готовые классы).
Результат - полгода.
Зарплата та же.

p.s. Философия ООП
--------------------
I'll be back !
PM MAIL   Вверх
Abyx
Дата 2.8.2010, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(GrayCardinal @  2.8.2010,  12:29 Найти цитируемый пост)
И почему некоторые пишут на чистом Си++ (всё есть классы) лично я не догоняю. 

потому что код должен быть повторно используемым, масштабируемым, удобным для рефакторинга, etc
PM MAIL   Вверх
Modul
Дата 2.8.2010, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

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


и потом еще можно свое творение (класс) снабдить описанием и толкнуть на рынке.

Чем не повторное использование, только на рынке.  smile 

Еще на этой основе встречаются библиотеки - довел до ума - покупай !
--------------------
I'll be back !
PM MAIL   Вверх
HellStranger
Дата 2.8.2010, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Abyx @  2.8.2010,  12:26 Найти цитируемый пост)
потому что код должен быть повторно используемым, масштабируемым, удобным для рефакторинга, etc


Загнал в тупик... Как тогда тысячи программеров с FFMPEG разбираются?.. Как новые программеры сего проекта продолжают его дальнейшую разработку?.. У меня на освоение принципов работы с FFMPEG ушла неделя наряду с текущей загруженностью. Ещё через месяц у меня уже был готов простенький видео-редактор, абсолютно с нуля. Live555 меня поверг в уныние через 10 минут просмотра исходного кода... Так что, как говорил Альберт наш Эйнштейн, всё относительно. smile
PM MAIL   Вверх
kemiisto
Дата 2.8.2010, 12:53 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



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

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



Цитата(HellStranger @  2.8.2010,  13:10 Найти цитируемый пост)
То есть, люди хорошо знающие C, прекрасно обходятся без всех довольно спорных прелестей C++, а главное в практически такие же сроки, как, если бы задача решалась на cpp.

Это доказывает лишь то, что С++ - плохой язык программирования. Плохой во всех смыслах.

Цитата(HellStranger @  2.8.2010,  13:10 Найти цитируемый пост)
Знаете, товарищи, воообще-то для серверного ПО скорость очень критична, как и затраты ресурсов. И здесь cpp до C как до Киева в одной позе...

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

Цитата(HellStranger @  2.8.2010,  13:10 Найти цитируемый пост)
Приведу простой пример

Я что-то ничего из этого примера не подчерпнул. Часть про asm совсем не к месту. Поток сознания. 




--------------------
PM MAIL WWW GTalk Jabber   Вверх
Abyx
Дата 2.8.2010, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(HellStranger @  2.8.2010,  13:10 Найти цитируемый пост)
Возьмём ту же асму. Если человек хорошо знает архитектуру процессора, систему команд и операционку, под которую пишет, то серверное приложение будет разработано в те же сроки, что и приложение на cpp (всё-равно использовать API системы и там и там). Только вот кому будет нужен cppшный сервак, когда есть асмовский... 

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

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


алсо да. и на С++ и на асме надо еще уметь программировать.

PM MAIL   Вверх
HellStranger
Дата 2.8.2010, 14:48 (ссылка)    | (голосов:5) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(kemiisto @  2.8.2010,  12:53 Найти цитируемый пост)
Ты очень остроумный. Но, тут разговор о десктопе. Так что уж слишком толсто получилось. Незачёт.


Что-то я в названии темы не увидел, что речь идёт ИСКЛЮЧИТЕЛЬНО о desctop, примеры были приведены десктопные, имхо, только потому что автор пока ими и занимался. Так что расписываться в моей зачётке не надо, без вас профессура уже давным-давно справилась. 

Цитата(kemiisto @  2.8.2010,  12:53 Найти цитируемый пост)
Я что-то ничего из этого примера не подчерпнул. Часть про asm совсем не к месту. Поток сознания. 


А у меня нет самоцели, чтобы лично вы что-то поняли. Между делом, в теме упоминались ещё и C#, и Java и ещё много других языков... Тоже не в тему, а в качестве примеров.

Добавлено через 4 минуты и 16 секунд
Цитата(Abyx @  2.8.2010,  13:07 Найти цитируемый пост)
чушь это.если надо только вызывать апи, то код асма  1в1 совпадает с Си. это факт.если нужна арифметика, в т.ч. обычная арифметика указателей, то асм сливает. количество строк кода отличается на порядки.


Знаете, в кривых руках и машинный код чистому C сливает. Я не говорю сейчас о горе-хаккерах, которые изучили систему команд x86 на уровне младших курсов МФТИ и мнят себя мегамозгами в asm. Их код может и cpp слить, что дальше?.. cpp всех круче?.. smile
PM MAIL   Вверх
ncr
Дата 2.8.2010, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Letchik @ 1.8.2010,  20:29)
Код получается весьма обширным, легко запутаться, но программа получается очень быстрой и маленькой по объёму.

У вас в корне неправильный подход.

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

А какого размера получится скомпилированный модуль - 10 Кб или 3 Мб, сколько он памяти будет потреблять - 1 Мб или 50 Мб, и за сколько он у вас выполнит требуемое действие - за 10 микросекунд или за тысячу - НИКОГО не волнует. 


Цитата(Letchik @ 1.8.2010,  20:29)
P.S. я большой противник всяких там MFC, VCL, Qt и тому подобное. Мне кажется, они лишают нас всего кайфа программирования.


Все такими были когда-то smile

Со временем приходит понимание, что настоящий кайф программирования - это свободное от программирования время, которое можно посвятить куда более приятным вещам.
А готовые общепринятые решения весьма ускоряют разработку и, что важно, позволяют сконцентрироваться непосредственно на сути программы, а не тратить время на стопицотое изобретение одних и тех же вспомогательных велосипедов.
PM MAIL   Вверх
HellStranger
Дата 2.8.2010, 14:57 (ссылка)    | (голосов:5) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Abyx @  2.8.2010,  13:07 Найти цитируемый пост)
на С++ вы пишете шаблоны функций. т.е. не одну функцию, а сразу семейство функций. используя шаблоны можно настраивать программу, меняя код только в необходимых местах, а не весь сразу.


Правда компилятор превращает ваше семейство в такой же набор функций. smile Я сейчас не говорю об удобстве, по-моему уже стопятьсот раз упоминалось, что нужно миллион шаблонов и классов на все случаи жизни- .NET Framework уже есть, смысла изобретать велосипед не вижу...

Добавлено через 3 минуты и 30 секунд
Цитата(ncr @  2.8.2010,  14:56 Найти цитируемый пост)
А какого размера получится скомпилированный модуль - 10 Кб или 3 Мб, сколько он памяти будет потреблять - 1 Мб или 50 Мб, и за сколько он у вас выполнит требуемое действие - за 10 микросекунд или за тысячу - НИКОГО не волнует. 


Специально для вас был создан .NET Framework. Сколько клиентов за эти 10 микросекунд: 10 или 10000 сможет обслужить сервер тоже никого не волнует?.. Вы перегрелись на солнышке, уважаемый... smile
PM MAIL   Вверх
mes
Дата 2.8.2010, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

Репутация: 144
Всего: 250



Цитата(HellStranger @  2.8.2010,  13:57 Найти цитируемый пост)
 что нужно миллион шаблонов и классов на все случаи жизни- .NET Framework уже есть

и сколько можно эту гадость пиарить ? к тому же еще только виндоус ориентированную.. 
 smile 


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


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


Новичок



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

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



Цитата(HellStranger @ 2.8.2010,  14:57)
Сколько клиентов за эти 10 микросекунд: 10 или 10000 сможет обслужить сервер тоже никого не волнует?.. Вы перегрелись на солнышке, уважаемый... smile


Объясню для непонятливых.

Топикстартер хочет писать интерфейс на "чистом С". Написанное мной следует понимать в этом контексте.

"Интерфейс" не обслуживает 10000 клиентов за 10 микросекунд.
Поэтому за сколько именно микросекунд обновится, например, надпись на кнопке - никого не волнует.


То, что при циклических интенсивных операциях скорость важна - и коню понятно.

PM MAIL   Вверх
HellStranger
Дата 2.8.2010, 15:39 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(mes @  2.8.2010,  15:16 Найти цитируемый пост)
и сколько можно эту гадость пиарить ? к тому же еще только виндоус ориентированную..   


А кто её пиарит-то?.. По-моему, вы определённо перегрелись... )))))))))))) Я вовсе никого не склоняю к её использованию, а просто привожу пример хрени, в которой есть всё на все случаи жизни: для построение клиентских приложений да ещё и для тех, кого производительность ни в каком виде не трогает- просто находка! smile

Цитата(mes @  2.8.2010,  15:16 Найти цитируемый пост)
HellStranger, приведите обоснование тому факту, который Вы не раз озвучивали, о том, что С++ сливает Си..


На эту тему можно нагуглить тонны статей как в пользу C, так и в обратную... Сторонников cpp не убедит ничего из доводов сишников, как и наоборот. А переливать из пустого в порожнее мне уже порядком надоело... Вам станет намного легче, если я выложу пару тройку ссылок на статьи, где говорится как и в чём cpp сливает?.. Уверен на стопятьсот процентов, что подтянутся местные воротилы cpp, и продолжится война C-cpp. Данахононадо. 

PM MAIL   Вверх
bsa
Дата 2.8.2010, 15:53 (ссылка) |    (голосов:7) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 63
Всего: 196



Цитата(HellStranger @  2.8.2010,  13:10 Найти цитируемый пост)
То есть, люди хорошо знающие C, прекрасно обходятся без всех довольно спорных прелестей C++, а главное в практически такие же сроки, как, если бы задача решалась на cpp.

Я прекрасно знаю Си (очень на это надеюсь). Но при этом я не готов утверждать, что на Си напишу программу сложнее hello world за время, незначительно уступающее оному на  C++. Все-таки, есть вещи, которые удобней и, я уверен, быстрей работают на С++, чем на Си. Например, строки. когда тебе надо сравнить две строки, strcmp будет перебирать все символы, пока не встретятся различия, а std::string может (при желании его разработчиков, конечно) для начала просто сравнить размеры строк - это операция с константной сложностью, в отличие, от strlen. Сортировка с помощью std::sort работает быстрей, чем через qsort. Думаю, список можно продолжать. Конечно, это все достигается за счет увеличения размера программы. Но кому надо, тот добавит ключик -O1 компилятору...
И вообще, ты хоть сам С++ знаешь? Или критикуешь его по типу: "не читал, но осуждаю"?
PM   Вверх
mes
Дата 2.8.2010, 15:55 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

Репутация: 144
Всего: 250



Цитата(HellStranger @  2.8.2010,  14:39 Найти цитируемый пост)
) Я вовсе никого не склоняю к её использованию, а просто привожу пример хрени, в которой есть всё на все случаи жизни: для построение клиентских приложений да ещё и для тех, кого производительность ни в каком виде не трогает- просто находка! 

Почему приводить то крайности ? тем более что требует она  специфических языков..  почему бы не привести пример хорошей библиотеки ? хотя бы той самой Qt..

Цитата(HellStranger @  2.8.2010,  14:39 Найти цитируемый пост)
. А переливать из пустого в порожнее мне уже порядком надоело..

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







--------------------
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




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


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

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