| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Религиозные войны > Так востребован ли сейчас C++ |
| Автор: S.A.G. 18.10.2007, 12:13 |
| сабж.. Кто-то может сказать, какой софт сейчас пишется на плюсах? |
| Автор: Daevaorn 18.10.2007, 12:40 |
| По сути любой. Из-за универсальности самого языка его применяют практически везде, в любой сфере. Другой вопрос о целесообразности и эфективности, но это каждый решает сам. |
| Автор: SergeCpp 18.10.2007, 12:55 | ||
http://www.research.att.com/~bs/applications.html
|
| Автор: Ch0bits 18.10.2007, 14:59 |
| Аминь! |
| Автор: S.A.G. 18.10.2007, 15:03 |
| SergeCpp, меня интересует настоящий момент.. Добавлено @ 15:04 В каких случаях предпочтение отдается C++? |
| Автор: Ch0bits 18.10.2007, 15:07 |
В тех где скорость критична + низкоуровневое программирование ОСи, дравишки и т.п. |
| Автор: Daevaorn 18.10.2007, 15:09 |
когда необходима максимальная производительность. ну и когда нет другого средства. |
| Автор: S.A.G. 18.10.2007, 15:10 |
Разве это сейчас актуально? Производительность современных машин очень высока.. |
| Автор: Daevaorn 18.10.2007, 15:16 | ||
у моего микроконтролера 100MHz процессор... |
| Автор: S.A.G. 18.10.2007, 15:20 |
| Почему программисту на C++ приходиться искать работу среди кучи предложений для Java и C#? С чем это связано? Значит там C++ не игрок? Есть те сферы которые прочно закреплены за ним? Добавлено @ 15:22 С микроконтроллерами понятно. Однако, в C++ есть средства для написания серьезных проектов. (ООП) Добавлено @ 15:25 Меня прежде всего волнует вопрос - есть ли будущее у C++? И как следствие, стоит ли им заниматься серьезно? Язык мне нравиться. |
| Автор: Daevaorn 18.10.2007, 15:29 | ||||||
ты не обижай мой микроконтроллер
а почему программистам на Java приходится искать работу среди кучи прдложений для C++ и С#?
закрепленных нет. везде есть место С++. |
| Автор: S.A.G. 18.10.2007, 15:40 | ||
Это у тебя проц на 100MHz?
Для Java и C# примерно одинаковое количество предложений. Для C++ меньше в разы. Иначе бы я не создавал эту тему. |
| Автор: Sartorius 18.10.2007, 15:55 | ||
ИМХО C++ последний язык о востребованности которого следует беспокоиться. Все игры пишутся на плюсах (как бы MS не пытались продвигать MDX + C#), OS, встроенное ПО. Для UNIX - подобных систем C++ - стандарт де-факто.
откуда такие данные? |
| Автор: S.A.G. 18.10.2007, 16:04 |
rabota.ua, запрос по Киеву и по Украине в целом. Все что связано с Java там вообще выделено в отдельную рубрику. |
| Автор: Sartorius 18.10.2007, 16:08 | ||
Ээээ... нда думаю на Украине дела именно так и должны обстоять, ибо аутсорсятся малые бизнес -приложения в основном. Я думал глобальная ситуация обсуждается... |
| Автор: S.A.G. 18.10.2007, 16:13 |
| В России C++ востребован больше? Добавлено через 56 секунд Можешь разъяснить, почему ты так считаешь? |
| Автор: Sartorius 18.10.2007, 16:17 |
| ИМХО да. ЗЫ как то забредал на Украинские и Белорусские сайты с объявлениями о работе. Действительно C# и Java в основном. В России соотношение предложений по С# Java и C++ примерно одинаково. Посмотри сам предложения по России. Хотяб на job.ru |
| Автор: S.A.G. 18.10.2007, 16:19 |
| ДА, но почему? Я в этой кухне неразбираюсь. :( |
| Автор: MAKCim 18.10.2007, 16:58 |
| тут говорили, что С++ используется для написания ОС и драйверов в основном используется как раз С, а не С++ |
| Автор: Hidrag 19.10.2007, 11:59 |
| Job.ru, параметры: поиск за 10 дней, з.п. от 1500, возраст 22, Москва кличевое слово, количество вакансий С++ 133 вакансии C# 101 вакансия Java - 259 вакансий Java (исключаем из поиска JavaScript) - 132 ...делаем выводы... |
| Автор: esperant0 19.10.2007, 12:09 | ||
НЕТ |
| Автор: Daevaorn 19.10.2007, 16:05 |
а что же? |
| Автор: MAKCim 19.10.2007, 17:03 |
ты хочешь сказать, что эти вещи в основном пишутся на С++? не согласен могу привести кучу примеров и логическое обоснование отсутствия необходимости использовать С++ |
| Автор: esperant0 19.10.2007, 17:11 | ||
Я хочу сказать, что я работаю в Майкрософт (это фраза очерчивает мой круг занятий в поле информатики и контекста темы)и я с вами не согласен обосновать не могу, дабы ничего не разглашать. А термин в основном не определен. А ваш личный опыт всего лишь ваш личный опыт. Так же как и мой личный опыт работе в университете на факультете информатики и в Майкрософте это мой личный опыт. |
| Автор: Alexeis 19.10.2007, 17:13 |
| ИМХО для нормальной реализации ООП нужно много всяких дополнительных средств. Те же операторы new/delete весьма непростая штука, ведь драйверы часто работают нулевом кольце, где используется прямой вывод в память. |
| Автор: Daevaorn 19.10.2007, 17:16 | ||
Тогда о чем речь вообще, если опыт одного не имеет значения для другого? И как-то не очень понятен довод: "я работаю в Майкрософт" - и что? ОС/Драйвера и Майкрософт пересекаются всего в одной точке, которая может нас и не интересует |
| Автор: AntonSaburov 19.10.2007, 17:19 |
| С и С++ занимают немного разные ниши по видам проектов. С используется на Юникс-системах. Причем за счет того, что ОГРОМНОЕ количество софта написано на С, то часто и получаем тоже С-программы. На С++ пишется тоже немало. Причем именно под Винды. А если по существу вопроса - на С будут писать еще много лет. И много чего писать. Все мобильные устройства, контроллеры, системы сетевых взаимодействий - немеряно всего. |
| Автор: S.A.G. 19.10.2007, 18:28 |
| Попробую переформулировать вопрос. Когда предпочтение отдается не C++, а другим языкам? Почему Java, а не C++, почему C#? |
| Автор: MAKCim 19.10.2007, 19:27 | ||
определен, притом очень четко в основном = по большей части = в большинстве случаев = ...
тогда добавляйте имхо к своим словам, чтобы не было непоняток либо аргументируйте свою позицию |
| Автор: esperant0 19.10.2007, 19:57 | ||
Четко? ЭТо вы математику говорите? Большинство бывает относительное и абсолютное. Продолжить? |
| Автор: MAKCim 19.10.2007, 20:02 |
| esperant0, продолжайте по поводу большинства... имеется в виду абсолютное Добавлено через 3 минуты и 30 секунд esperant0, вы бы вместо того, чтобы разводить демогогию, ответили бы по существу и по теме |
| Автор: MAKCim 19.10.2007, 20:17 |
| я не вижу никаких причин использовать С++ в низкоуровневом программировании в первую очередь потому, что С++ слишком тяжеловесен для написания приложений системного характера (а если все тяжеловесные фичи убрать, по сути как раз и останется С) к тяжеловесным моментам я отношу: 1. исключения 2. полиморфизм 3. шаблоны структуры С вполне заменяют классы С++, агрегирование реализуется легко и непринужденно на этих же структурах примеров применения наследования в драйверах и прочих низкоуровневых приложениях не встречал (если вы встречали, поделитесь) как вариант, использование С++ как типобезопастного С возможно, но зачастую в низкоуровневых программах типобезопастность только мешает |
| Автор: WERITAS 22.10.2007, 20:30 | ||
А кто-то другой наоборот видит эти причины. Мне кажется, это дело разработчика - использовать в низкоуровневом программировании С или С++. К несчатью (или к счатью) Я не владею техникой процедурного программирования, поэтому никогда и низачто не буду писать на чистом С. Если бы Я драйвер писал, Я бы на С++ его делал (Хотя не исключенно, что в этом случае размер будет побольше, а скорость поменьше, но это опять-таки смотря как написать). Те же исключения в драйверах - очень полезная вещь, там как раз больше всего исключений приходится обрабатывать. |
| Автор: MAKCim 22.10.2007, 21:17 | ||
| WERITAS, назовите хоть одну действительно объективную причину использования С++ в низкоуровневом программировании
1. ООП - это по сути синтаксический сахар, синтаксическая надстройка над функциями (=методы) и структурами (=классы) непонятно, как можно использовать ООП и не владеть "техникой процедурного программирования" 2. Вы когда-нибудь занимались разработкой драйверов и прочих схожих вещей? |
| Автор: Daevaorn 22.10.2007, 22:15 | ||
как мне кажется не очень правильный вопрос. причиной может быть всё то, что ты отнес к "тежеловесным моментом". это дело вкуса и доступных инструментов. |
| Автор: esperant0 22.10.2007, 22:28 | ||
Тут есть совокупность множества причин - проссумировав которые скажу, мне УДОБНО. |
| Автор: MAKCim 22.10.2007, 23:34 | ||
| вот еще, по поводу исключений не знаю как в VC++ и прочих виндовых компиляторах, но в GCC для реализации исключений используются функции из libstdc++ (которая, кстати, весит довольно прилично) если учесть, что драйвера в принципе не могут использовать подгружаемые библиотеки, то единственным вариантом использования исключений остается статическая компоновка libstdc++ вместе с драйвером а это очень нехило увеличивает его размер esperant0, "мне удобно" - это не объективная причина объективные причины не использовать мною были названы
инструменты...может быть, но мне лично трудно себе представить, что С++ компиялтор есть, а С - нет вкусы... усложнение кода и снижение производительности в таких вещах ради вкусов? я могу понять выбор между Java, C#, С++ (или еще чем либо) в плане предпочтения по принципу нравится/не нравится в прикладном программировании, но в системном... |
| Автор: Daevaorn 22.10.2007, 23:44 | ||||
есть и тот и другой на выбор
для кого-то pattern based development гораздо проще чем процедурщина. хотя конечно гики и там смогут наворотить. да и потом, кто сказал, что в низкоуровневом-системном программировании нужна максимальная производительно? это лишь одно из многих возможных качеств продукта. |
| Автор: S.A.G. 23.10.2007, 00:04 |
| Предлагаю разделить тему на то, что я предложил к обсуждению и "C vs C++ в низкоуровневом программировании". Первое меня интересует, второе - нет. |
| Автор: MAKCim 23.10.2007, 09:42 | ||||
тогда к чему было сказано о доступности инструментов? я так понял, что С-компилятора может не быть, поэтому придется писать на С++ или я не так понял?
это по определению системное ПО предоставляет сервисы для работы прикладного ПО или само является сервисом (виндовые сервисы я не имею в виду исключением является, пожалуй, сетевое программирование (не имеется в виду создание стека протоколов), где потери производительности можно отчасти нивелировать пропускной способностью канала Добавлено через 50 секунд
|
| Автор: LSD 23.10.2007, 17:27 | ||
Я что то не увидел ни одной объективной причины, для использования Си. Ассемблер в данной ситуации намного лучше, а на трудоемкость мы положим болт |
| Автор: S.A.G. 23.10.2007, 17:29 |
Забрел на один сайтик (спасибо Vingrad-у). В одном из разделов там предлагаются к ознакомлению рейтинги зарплат по различным критериям. Вот на какие направления там разделяют индустрию разработки программного обеспечения (данные по зарплатам брались за 2007 год):
Жду ваших мыслей по теме. LSD, я просил.. |
| Автор: MAKCim 23.10.2007, 21:14 | ||
нет, не лучше 1. Ассемблер не переносим 2. Ассемблер себя не оправдывает в большом проекте: трудность отладки, повышенная вероятность наличия скрытых ошибок, трудоемкость процесса разработки ассемблер используется там, где напрямую на С написать не получится либо нужна очень сильная оптимизация но таких участков кода обычно мало (либо нет совсем) по поводу объективности использование преимуществ С++ ведет к раздутости кода и снижениюю производительности, что для приложений системного характера недопустимо (в большинстве случаев) это не объективные причины? если преимущества С++ не использовать, чем он в итоге будет отличаться от С? |
| Автор: LSD 24.10.2007, 14:20 | ||
Для истинной кросплатформености надо писать драйвера на Java Мне вот интерестно какой процент общего кода у драйверов видеокарт для маков (те которые на базе PowerPC) и для Windows (я про сам драйвер, а не всякие там утилиты настройки)? А в пределах одной процессорной архитектуры, асм вполне переносим.
А про то, что людям может быть удобней писать на С++ и использовать ООП, чтобы как разу уменьшить трудоемкость и количество ошибок, ты как-то сразу забыл Добавлено через 29 секунд Модератор придет и разделит тему |
| Автор: MAKCim 24.10.2007, 15:08 | ||||
| LSD, я скажу так: из двух крайностей выбираем середину, а это как раз С он более легковесный, чем С++, но в то же время максимально приближен (если можно так выразиться) к ассемблеру
и я про это же берем С и в разы облегчаем себе жизнь зачем С++? ООП? ООП обычно применяется там, где: 1. требуется быстрота разработки 2. расширяемость системы 3. возможность использования готовых компонентов теперь смотрим на разработку драйверов к чему быстрота? драйвер - это не тот продукт, где скорость разработки - главный фактор к чему расширяемость? драйвер выполняет строго определенные действия, которые определяются спецификацией конкретного устройства что тут расширять? насчет готовых компонентов...по поводу библиотек и прочих подгружаемых вещей я уже говорил выше
гы про проценты не знаю, но вот наглядный пример берем любой драйвер (модуль ядра) Linux он будут работать везде, где есть Linux и соответствующее устройство причем код вообще изменять не придется если писать на ассемблере, в итоге придется писать N модулей для N архитектур |
| Автор: S.A.G. 24.10.2007, 15:28 | ||
Среди собравшихся тут профессионалов низкоуровневого программирования кто-то может дать толковый ответ по теме?
|
| Автор: MAKCim 24.10.2007, 15:31 | ||
С++ востребован в некоторых областях ему замены пока нет (и, думаю, в ближайшем будущем не будет), в некоторых, возможно, его в скором времени потеснят те же Java, C# |
| Автор: archimed7592 24.10.2007, 15:35 |
| MAKCim, С++ в отличии от С тоже ограждает от кучи ошибок(как и С в отличии от асма). S.A.G., обсуждение действий администрации тоже нарушение(не хотят разделять - значит так нужно) |
| Автор: S.A.G. 24.10.2007, 15:36 |
| В каких? Я привел перечень несколькими постами ранее. |
| Автор: archimed7592 24.10.2007, 15:37 |
| По теме: есть смысл изучать С++, но не на уровне "а мы в универе лабораторки делали". Такие "спецы" никому не нужны. Обучить искусству программирования на С++ до нужного уровня - это очень трудоёмко. Соответственно работодателю проще найти готового спеца. Их мало. Получают они много. Вывод: развиваться в сторону С++ нужно в случае, если есть намерения стать очень хорошим спецом в этой области. Если не уверен, что тебе это нужно, то, скорее всего, если и найдёшь работу, не будешь получать от неё удовольствия. Добавлено через 6 минут и 9 секунд Надёжные, производительные, легко расширяемые системы с минимальными требованиями к ресурсам. |
| Автор: MAKCim 24.10.2007, 15:49 | ||||
я уже писал по этому поводу зачатую в этом деле типобезопастность только вредит С позволяет очень много и в этом его неоспоримое преимущество в умелых руках (руки у разработчиков драйверов в подавляющем большинстве умелые
ППКС |
| Автор: archimed7592 24.10.2007, 15:54 | ||
Драйвер можно разделить на непосредственный доступ к железу и логику. Так вот, в логике типобезопасность вредить не может, а мизерный кусочек доступа к железу можно и на Си написать(либо на С++ - что лучше подходит). |
| Автор: S.A.G. 24.10.2007, 15:56 | ||||
Это был ответ по теме?)) Итак, помоему, понятно, что знание любого инструмента, для зарабатывания им денег, должно быть на соответствующем уровне.
Так можно сказать про любой язык. Хотелось бы увидеть ответ, основанный на списке, который я привел. Список можно дополнять, изменять. Мне интересно услышать мнения разработчиков на C++ - какие проекты им приходиться писать, от ПМ-ов - какие проекты чаще всего пишутся на плюсах. И вообще от опытных людей - анализ рынка ИТ, прогнозирование тенденций и т.д. |
| Автор: dumb 24.10.2007, 16:00 | ||
|
| Автор: S.A.G. 24.10.2007, 16:02 |
| Ненужны мне опусы с цифрами, графиками, статистикой. Хотелось бы просто услышать мнения. |
| Автор: LSD 24.10.2007, 16:02 | ||
Ради того же самого - трудоемкость и количество ошибок. В данном случае можно будет и библиотеки для С++ использовать. Тот же драйвер для СУБД явно проще будет написать С++, чем на Си.
1. На радикально различных системах устройства как правило тоже не идентичны. Так что тут можно скорей говорить о переносимости в рамках одной архитектуры. 2. Вот я тебе почему-то ни разу не верю, что ты сможешь взять драйвер видеокарты для PC и просто скомпилить его под Mac |
| Автор: MAKCim 24.10.2007, 16:07 | ||
| archimed7592, ты участвовал в разработке каких-либо низкоуровневых вещей (в т. ч драйверов)?
эээ не у нас вот например в универе студентов с руками и ногами забирают на ASP.NET без опыта и без знаний как таковых с С++ ситуация координально противоположная: хрен куда возьмут без опыта работы а опыт есть показатель профессионализма |
| Автор: dumb 24.10.2007, 16:10 |
| ну так а именно это ты и наблюдаешь - сколько людей, столько и мнений. а ты все "оффтопик, оффтопик..." |
| Автор: S.A.G. 24.10.2007, 16:11 | ||||
Чтобы им мало платить. Добавлено через 1 минуту и 41 секунду
Я покачто наблюдаю, что никто не владеет нужной мне информацией. |
| Автор: Alexeis 24.10.2007, 16:14 | ||
Для железки пишу под WinCE. Тоже близко к низкому уровню. Практически для любых железок (процессоров, контроллеров) и там где идет ОС и где нет, почти везде существует компилятор С++/С. Это своего рода стандарт разработки. Потому там просто ниче другое и не встретишь, своеобразная монополия. Промышленные системы и т.д. В области графического интерфейса, БД, интернет разработок, что сейчас занимает большУю часть рынка, С++ не рулит, там его вытесняют и скорее всего выпрут. И конечно под никсы, тож востребован, он там родной. Так что востребован и скорее всего будет востребован. |
| Автор: MAKCim 24.10.2007, 16:16 | ||||
да возьмем хотя бы x86 и x86-64 и какой-нибудь драйвер чипсета, например Intel G965 на этом чипсете в принципе могут и PIV работать (x86) и какие-нибудь C2D (x86-64) а в итоге придется вместо одного драйвера на С писать два драйвера на ассемблере
есть некоторый API системы, который так или иначе использует драйвер все, что мне будет нужно - это заменить API PC-совместимой ОСи на API Mac-а это, поверь, гораздо проще, чем его с нуля писать (тем более на ассемблере под Power PC) Добавлено через 1 минуту и 2 секунды платят хорошо (реально хорошо) |
| Автор: S.A.G. 24.10.2007, 16:19 |
Почему? |
| Автор: MAKCim 24.10.2007, 16:21 |
там родной С |
| Автор: S.A.G. 24.10.2007, 16:31 |
Без знаний и опыта студенту хорошо платят? Сказку говоришь. |
| Автор: MAKCim 24.10.2007, 16:35 |
тебе нужно было реальное подтверждение слов archimed7592 я тебе его привел не хочешь, не верь, дело твое |
| Автор: S.A.G. 24.10.2007, 16:39 |
| Значит их (студентов) немного и они очень умные, либо берут много, обучаться такому быстро, а работа рутинная и неинтересная и т.д. Вообщем какие-то специфические условия. Никому не интересно просто так денег давать. |
| Автор: archimed7592 24.10.2007, 16:40 | ||||
Я бы наверное так не утверждал бы, если бы не знал туеву хучу "спецов", которые нормально себе работают, им вполне нормально платят и они совсем не собираются повешать уровень своего "профессионализма". К примеру?
Да. ОС. Добавлено через 4 минуты и 17 секунд Добавлено через 5 минут и 47 секунд Нормальная работа. Интересная. Будет что показать потом другому работодателю(портфолио так сказать). |
| Автор: MAKCim 24.10.2007, 16:49 |
серьезно? что за ОС? на каком языке велась разработка? |
| Автор: LSD 24.10.2007, 16:52 | ||||||
Не вижу никакой связи с профессионализмом, только с востребованностью. Где народа нехватает, туда и берут охотней. А там где есть из кого выбрать, там и "повыбирать" можно.
Ты хочешь сказать, что драйвера чипсета в 32=х разрядных ОС, и 64-х разрядных одинаковые (на урове исходников)?
При чем тут API? |
| Автор: S.A.G. 24.10.2007, 16:54 | ||
Тебе просто повезло. Хотя, может быть ты теорию знал идеально, тогда.. может быть. |
| Автор: Alexeis 24.10.2007, 17:02 |
Что и чисто прикладное высокоуровневое по тоже пишут на С? В данном случае я имею ввиду, то что стандартные библиотеки не представляют достаточного удобства в разработке. Билдер не в счет, так как это не чистый С++, гибрид. Короче вообще отдельная тема. |
| Автор: MAKCim 24.10.2007, 17:07 | ||
профессионализм на пустом месте не появляется мало наизусть знать Страуструпа
именно объясню из исходников на ЯВУ (С к примеру) компилятор генерирует код для целевой платформы (в нашем случае либо x86, либо x86-64) далее что нужно из платформо-зависимых вещей для реализации драйвера чипсета? доступ к адресному пространству I/O и API для работы с периферийной шиной (PCI, PCIe, ...) любая уважающая себя ОС предоставляет соответствующий API (одинаковый интерфейс, но с разной реализацией для конкретной платформы) (в случае с Linux, например, это функции inb(), outb(), inw(), outw(), ..., pci_*()) теперь все, что нам нужно - это использовать соответствующий API а всю "черную" работу по генерации кода для x86 или x86-64 сделает за нас компилятор выше Добавлено через 45 секунд как пример, Gnome написан на С |
| Автор: archimed7592 24.10.2007, 17:10 | ||||
С++. К сожалению так и не довёл её до ума - вступительные, универ, потом не до ОСи было(ОС - хобби и соответственно деньги за это никто мне не платил
Меня вообще не тестировали... Просто у них заказ, а я из предентов предложил самое красивое решение(считай выйграл "тендер"). Суть не в этом. Суть в том, что твой вопрос подразумевает, что ты не готов сейчас работать с С++ по полной, а промежуточные "спецы" мало кому нужны и мало кто возьмётся обучать тебя, когда есть уже готовенькие спецы(это возвращаясь к моей первоначальной мысли "по теме", которую ты осмеял). Добавлено через 2 минуты и 9 секунд
Гхм... Я не испытываю ни малейшей трудности, делаю ГУЮ(я так понял о ней речь) на Qt. Я даже дизайнером не пользуюсь. |
| Автор: MAKCim 24.10.2007, 17:13 | ||
а она хоть что-нибудь могла делать? |
| Автор: archimed7592 24.10.2007, 17:13 |
Вот и сравни гномика на Сях с кде на плюсах Добавлено через 1 минуту и 7 секунд Доступ к ФС. Примитивный шелл, позволяющий запускать другие процессы. |
| Автор: S.A.G. 24.10.2007, 17:17 |
Только ненадо ничего придумывать. |
| Автор: Alexeis 24.10.2007, 17:19 |
Графическую оболочку трудно назвать чисто прикладной программой. Тянет скорее на системную надстройку. В конце концов не имеет смысла их разделять. Одно порождение другого. С++ включает С и является более общим. Кроме того компилятор С++ сейчас также включают в дистрибутив. Просто юникс же появился тогда когда С++ еще не было. С++ не же не отменяет С, а лишь продолжает его. |
| Автор: archimed7592 24.10.2007, 17:23 |
Ну а к чему вопрос о востребованности тогда? Если ты уже работаешь с С++, то вопросов быть не должно, если не собираешься, то не понятно к чему вопрос, а, если собираешься, то читай мой пост "по теме". Хорошие специалисты, как ты успел заметить, нужны по любому профилю(даже COBOL |
| Автор: MAKCim 24.10.2007, 17:31 |
это еще почему? ну и Gnome быстрее работает (имхо) |
| Автор: archimed7592 24.10.2007, 17:35 |
На асме ещё быстрее получится А удобство создания приложения под gnome vs kde ? Тут гномик сольёт(пытался я как-то что-то сделать с GTK+ - бэээ. Даже gtkmm не смог меня убедить, что gtk - это удобно). |
| Автор: Alexeis 24.10.2007, 17:35 |
| Если вернуться к востребованности, то специалистов знающих С++, довольно много. На своих местах оно сильно нужны и незаменимы, но спрос на них меньше, просто потому они есть и будут. Язык старый медленно меняющийся, изученный. Другое дело, что другие языки сейчас более востребованы. Следует говорить не в абсолютной, а в относительной форме. Да он сейчас менее востребован, чем во времена когда не было современных языков. Добавлено через 4 минуты и 50 секунд Потому что он почти полностью совместим с ним. Фрагменты кода на С, без существенных изменений вставляются в код на С++. |
| Автор: archimed7592 24.10.2007, 17:41 |
Правда что ль? И где ж ты их многа видел то? Все уже давно в силиконовой долине с нехилыми зарплатами на пляже загорают... |
| Автор: S.A.G. 24.10.2007, 17:44 |
| archimed7592, вопрос был задан, скорее, о перспективности. |
| Автор: MAKCim 24.10.2007, 18:03 | ||
честно говоря я уже забыл о чем мы спорим с этим я согласен, GUI и ООП (читай С++) идеально подходят друг другу но изначально то вопрос был не в разработке GUI |
| Автор: archimed7592 24.10.2007, 18:15 |
Перспективность подразумевает этап "промежуточных" навыков, вот я и сказал тебе, что надеятся на то, что прокатит как прокатывает с Java/C# не стоит. Аналогично |
| Автор: Alexeis 24.10.2007, 19:07 |
Мне достаточно того что я их просто вижу и часто общаюсь, что считать что их довольно много. Не пойму к чему эта ирония... |
| Автор: archimed7592 24.10.2007, 19:10 |
Сколько в штуках? К тому, что, если бы их было много, то платили бы им также как джавистам(вот их много - это факт). Добавлено через 59 секунд (рыночный закон - не больше). |
| Автор: esperant0 24.10.2007, 21:15 | ||
Какая связь? |
| Автор: Alexeis 24.10.2007, 21:46 | ||
| Я друзей штуками не измеряю. Достаточно много. Это же выборка. А выборка в определенной мере характеризует распределение.
Обычно наоборот, чем больше, тем меньше платят. Когда много программистов, то всегда можно заменить слишком требовательного программиста, на менее привередливого и платить ему меньше. |
| Автор: archimed7592 24.10.2007, 22:58 | ||
Дано. N вакансий. M соискателей. N < M. Аксиома 1. Соискатели "тыкаются" к работадателям с равновероятным распределением. Аксиома 2. Цель любого юридического лица - прибыль. Следствие 1(из аксиомы 2). Чем меньше будет платить работодатель сотруднику, тем ближе он к своей цели. Аксиома 3. Цель любого соискателя - найти работу(какую бы то ни было). Лемма 1. Чем больше на рынке труда спецов тем меньше им в среднем платят (чем больше предложение, тем меньше средняя рыночная цена). Доказательство леммы 1. Из аксиомы 2 и следствия 1 делаем вывод, что работодатель выберет из пришедших к нему соискателей того, кто согласится работать за минимальную цену. Из аксиомы 3 следует, что отвергнутые соискатели на следующем собеседовании снизят свои запросы чтобы уменьшить вероятность отвергания из-за своих непомерных аппетитов. Из аксиомы 1 и двух предыдущих утверждений делаем вывод, что цена в среднем будет регулироваться отношением количества соискателей к количеству вакансий. Лемма доказана.
О чём я и говорю - джавистов много и их оклад(даже если они делают не менее сложную работу) меньше, чем плюсистов. |
| Автор: Alexeis 24.10.2007, 23:55 | ||
Тут возможны колебания. У нас их еще мало, а сишников много... |
| Автор: archimed7592 24.10.2007, 23:58 |
| Ммм... Понятненько. Интересно, много таких регионов, где следуют старым и верным технологиям, а не гонятся за модными шарпами-дотнетами? |
| Автор: Daevaorn 25.10.2007, 00:03 | ||
гонятся не за технологиями, а за деньгами... |
| Автор: archimed7592 25.10.2007, 00:06 |
| Тоже верно. Хотя я сомневаюсь, что джава/дотнет-наречия потенциально могут приносить больше денег, чем С++(не программистам, а конторам). |
| Автор: S.A.G. 25.10.2007, 00:12 |
| Ну вы маньяки. |
| Автор: Daevaorn 25.10.2007, 00:20 | ||
Скорость разработки выше, квалификация персонала ниже - существенно сокращаются издержки на разработку, а заказчику по сути всё равно(за исключением специальных случаев) на чем написано приложение. вот тут прибыль и растет. |
| Автор: Vasay 25.10.2007, 00:28 | ||
Могут и приносят. На данный момент, больше приносят массовые проекты, а не узкоспециализированные. А в массовых проектах рулят JAVA (Web программирование) .NET (программирование прикладного ПО). Так же платят за бизнес приложения (не знаю как у .NET но c JAVA разработка бизнес приложений - просто сборка из уже готовых компонентов) С/С++ сейчас больше используется при разработке узкоспециализированного софта (хотя и тут вытесняется .NET), работа с железом (С еще долго будет жить). А это восновном разовые сделки (хотя начальство тут получает нехило - но это уже особенность тендорово-откатинговой экономики). Вышеописанное говорю на основе своего опыта и опыта моих друзей. |
| Автор: S.A.G. 25.10.2007, 00:40 |
| Так где всетаки не вытесняется C++? |
| Автор: Vasay 25.10.2007, 00:47 | ||
В программирование приложений для *NIX. Но там с деньгами туго, почти все OpenSource Программирование сигнальных процессоров ( 4-5 годов назад, когда я этим занимался TI выпустила кодекомпозер с поддержкой С++) во мой шеф ругался, говорил, что нормальной поддержки ООП так и не сделали. Там правда важнее спец асму знать, чем С. Основное время на ней писать придется. |
| Автор: MAKCim 25.10.2007, 08:59 |
что-то я особо не замечал прикладного ПО, написанного на .NET-языках сплошь и рядом Web + ASP.NET и я плохо смотрел? ну-ка навскидку приведи пяток прикладных (не Web) программ на том же С# (или VB) Добавлено через 44 секунды кто вам сказал, что OpenSource и деньги - понятия ортогональные? |
| Автор: Hidrag 25.10.2007, 12:27 |
| archimed7592, сибирский регион |
| Автор: esperant0 25.10.2007, 16:42 | ||
В массовых проектах с которыми я сталкивался рулит С++ |
| Автор: Hidrag 25.10.2007, 18:59 |
| esperant0, это если проект не веб |
| Автор: coder85 8.1.2008, 18:36 | ||
Помойму очень хорошо сказал archimed7592,
Пользуясь случаем хочеться спросить: Можно ли счас программировать на С/С++ и использованием средств WinAPI, или без MFC сейчас некуда?? Просто я MFC недолюбливаю, пишу чисто на API и дальше хочу продвигаться в этом направлении, поэтому такой и вопрос..рельно ли найти работу используя токо апишку?? p/s может я не совсем понимаю..но под Windows преложения создавать можно токо или WinAPI или MFC, ну или дотнетовские технологие использовать(WinForms) Читсый С++ некаму ж ненужен я так понимаю? Или я неправ? Просвятите пожалуйста. |
| Автор: Alexeis 8.1.2008, 18:42 | ||
MFC фтопку, это отсталая технология. |
| Автор: Daevaorn 8.1.2008, 18:45 | ||||
А кто мешает? Пиши с использованием чего хочешь. Реально. Но трудно. Не очень много задачь, которые нужно решать на WinAPI. Тем более связанных с интерфейсом пользователя.
WinAPI, MFC - это библиотеки. Под MFC всё тот же WinAPI. Чистый С++ это язык, поэтому он нужен и для WinAPI, MFC и для любой другой библиотеки. |
| Автор: Lazin 8.1.2008, 18:45 | ||||
только экстремальный server-side)) Добавлено через 2 минуты и 52 секунды
Для интерфейса пользователя такие вещи по моему уже мало кто использует И вообще главное не на чем пишешь, а насколько интересен проект над которым ты работаешь. Когда работаешь над сложными - нетривиальными задачами, развиваешься как специалист, соответственно развивается и зарплата))) |
| Автор: coder85 8.1.2008, 19:01 |
| спасибо большое за ответы! Вот еще может чуть-чуть не в тему: - написал для себя принцип изучения языка, прошу оценить, может где ошибся/неправ ///////////////////////////////////////////////////////////// ИЗУЧЕНИЯ ЯЗЫКА ПРОГРАММИРОВАНИЯ C/C++ И ПРОГРАММИРОВАНИЯ ПОД WINDOWS //////////////////////////////////////////////////////////// 1.Выучить основы программирования на С++ 2.Перейти на профессиональное объектно-ориентированное программирование на С++ Скота Мейерса (3 небольшие книги, как минимум первую с 55 советами) ДАЛЕЕ: ---------- Шаблоны и STL ---------- Как минимум третью часть справочника Мэтью Г. Остерн по STL (хорош тем что на каждый алгоритм есть пример и другими особенностями) ---------- Патерны проектирования ---------- авторы Гамма, Хелм, Джонсон, Влиссидес - это даст базу для понимания других книг, упоминающих паттерны. "Современное проектирование на C++" от А. Александреску. ---------- Изучить библиотеки ---------- BOOST в том числе алгоритмы обработки графов (по графам есть книга на русском), ACE для сетей и многопоточности (есть две книги на русском), что-нибудь для создания графического интерфейса, например: WTL, Win32 API, MFC, QT, WxWidgets, CLX и VCL. ---------- Алгоритмы и Технологии программирования ---------- -Кнут!!! -Вирт -Йодан + Генри Уорен – «Алгоритмические трюки для программистов»!!! Стива Макконнелла - «Совершенный код»!!! P/S +Выработать стиль оформления своего кода. Надеюсь все это будет кому-то полезно(я про начинающих программистах) |
| Автор: JackYF 8.1.2008, 20:39 | ||||
да, но нелегко
а почему qt забыли? чистые плюсы, под винды очень даже идут, и под линух тоже |
| Автор: archimed7592 8.1.2008, 23:06 | ||||
Пусть MFC и не самая лучшая дрель, но писать на низком уровне только лишь потому что тебе так нравится - это глупо. Точнее говоря, дело твоё, но какому работодателю нужен специалист, выполняющий свою работу на WinAPI, но делающий её раз в 10 дольше, чем плохой специалист применяющий MFC? Такие работодатели найдутся, но их очень мало. |
| Автор: Lazin 8.1.2008, 23:16 | ||||||||
это все нужно не изучать, а использовать, а изучать надо бызовые вещи, не привязываясь к конкретным библиотекам, например стоит почитать Дж. Рихтера - если писать собираешься под винду, а библиотеки изучать не надо, тот-же буст, нужно тебе скажем сделать сериализацию, покурил мануал по boost::serialization и вперед)) если работаешь в команде, то нужно придерживаться общепринятого стиля
одну только книгу по stl прочитал - С. Мэйерс - Эффективное использование stl довольно бесполезное чтение Добавлено через 2 минуты
точнее не отверткой а лбом))) |
| Автор: coder85 8.1.2008, 23:29 |
| Всем спаcибо большое! Ребят нарыл статью: http://steps3d.narod.ru/tutorials/c-minus-minus.html как раз по теме, человек вроде неплохо аргументирует свои доводы, почетайте, у вас опыта побольше моего будет...мот это и бред... но все ж я за cpp |
| Автор: Daevaorn 8.1.2008, 23:39 | ||
Известный бред. Не обращай внимания. |
| Автор: coder85 9.1.2008, 01:01 |
| понятненько |
| Автор: dual 25.1.2008, 18:56 | ||
В таких случаях пишут на Си или на Ассемблере, никак не на С++. |
| Автор: JackYF 25.1.2008, 19:12 |
обоснуй. Добавлено через 30 секунд Ассемблер вообще непортабельный, а чем в плане скорости отличаются С и С++? |
| Автор: MAKCim 25.1.2008, 19:22 | ||
для достижения максимальной производительности поможет только ассемблер в плане отличий С от С++ если не использовать "фичи" С++, разница небольшая а вообще тут все зависит от того, какого рода приложение в целом |
| Автор: archimed7592 25.1.2008, 19:23 | ||
Много на ассемблере написали? Скажем так, сколько времени займёт реализация браузера уровня FF-2? А сколько будет стоить это несметное количество человеко-месяцев? А что если сравнить эту цену с более мощным железом? Я молчу про невозможность дальнейшего развития такого браузера. Добавлено через 3 минуты и 14 секунд В какую сторону разница? Вообще говоря, С++ переодически показывает лучшие результаты(если отключить исключения, то вообще летает). Добавлено через 4 минуты и 5 секунд
К тебе тот же вопрос - соотношение стоимости реализации к стоимости железа осознаёшь? |
| Автор: MAKCim 25.1.2008, 19:29 |
С <= C++ по скорости (в смысле С-программы более быстры) это мое имхо тестов не видел |
| Автор: Амортизатор2 19.3.2008, 19:00 | ||
Почему? C++ обратно совместим с С => на С++ можно написать так, что разница в скорости с аналогом на С нивелируется до разницы между компиляторами. Если юзать фичи С++, то в общем случае да, это справедливо. Но все равно С++ предоставляет возможности для оптмизации. Например, в С++ виртуальные вызовы дорогие, поэтому для полиморфизма используются обобщенное программирование. Чтобы удешевить выделение памяти по new делают свои аллокаторы, благо перегрузка этого оператора разрешена. Опять таки, в C++ у нас есть STL, это уже огромное преимущество. Там можно использовать custom allocators. Так что использовать в системном программировании вопрос спорный. S.A.G: Тебе вначале чертовски верно посоветовали: если готов серьезно учить язык (лет 5 как минимум), то тогда имеет смысл выбирать С++. Другое дело - почему тебе нужен именно С++? Т. е. он тебе нравится и ты решил сделаться проф. С++-програмистом? Тогда ты залез на Луну и пытаешься прииянуть к себе Землю, а следовало бы наоборот. Почему С++ все меньше используется в enterprise - причина очевидна. В свое время, данный язык стал чрезвычайно популярен из-за проблем с производительностью машин. Поэтому он пролез всюду, где мог, в том числе и туда, где ему, по совести говоря, совсем не место. Теперь его плавно выпирают на его вотчину - системное программирование, редкое железо, а также задачи, в которых производительность и спустя сотни лет будет узким местом. Это - его лоно и там он должен использоваться. |
| Автор: diver85 9.4.2008, 14:35 |
| Выскажу свое мнение (где то возможно будут упоминатся мысли других ребят, главное смысл сказанного, а не то как показать себя крутым тут на форуме) Мнение такое. Главное технология, язык это токо средство/молоток. Какой молоток выберешь, с таким и будешь работать. Теперь поговорим о молотках. Первое конечно, выбор идет в зависимости от поставленной задачи (выбирать нужно то, что больше для этого подходит). Если трезво/объективно выбирать, то нужно выбирать оптимально простое решение. Т.е нет никакой радости писать сложный код. Сложный код это не показатель умы/крутизны и тп., важно чтобы было понятно через месяц/год что было написано. Плюс к тому возможно после тебя проект будет сопровождать другой человек, как ему будет легко разобраться в твоем коде, если даже ты еле понимаешь как это все еще работает(да были у меня такие случаи, человек еле сам понимал что у него написано, а мне еще нужно было как то это поддерживать). Вывод прост - выбираем тот молоток(язык), который максимально эффективен для данной задачи. (Думаю это и так все должно быть понятно, можно было не расписывать даже) Так вот, на данный момент выбора особого нету, так сказать есть 3 кита - С++/java/C# (можно еще добавить еще что то наверное, но мне интересты имеенно эти языки) Пожалуй начну с java. (что она нам дает?) Велеколепный язык. Прекрастное удобство письма, читабельность синтаксиса, поддержка. SDK {чистый ООП, кросплатформенность, мощные и обильные библиотеки(несравнимо с STL), пакеты, аплеты, безопасность, нет множ наследования} J2EE {сервлеты, тэг библиотеки, EJB - рев технология, J2EE как платформа} Плюс как говорят, java общество очень отзывчивое и очень умное (наверное язык нетерпит быдлокодерства Кстати говорят еще, что большинство людей, много програмировавших и на Java и на C++ всё же выбирают Java. Непросто так наверное ж. Про С# писать нехочу, тк считаю его слизанным с java(да есть свои разработки, напр в java код интерпретируется, а в С# коипилируется в промежуточный MSIL код). Просто Microsoft Больше пользы принесла бы сотрудничая с Sun и развивая java. Теперь о С++. Язык монстр, за что его уважаю. Зачем скажите С++, если есть java? Неправда ваша. В некоторых направлениях может java и прижимает С++, но многие направления все же упорно держит С++. Например, обычно пишут на с++ надо надёжные, производительные, легко расширяемые системы с минимальными требованиями к ресурсам. Т.е руткиты/драйвера/логику и тп Кстати на счет драйверов долго думал что писать можно(вернее нужно) на чистом Си. Оказалось что драйвер это 2 сост части - логика и доступ к железу, так вот логику удобно писать на с++ Вот такие вот дела ребята |
| Автор: S.A.G. 25.2.2009, 19:05 |
| http://www.developers.org.ua/archives/kasimezh/2009/01/26/cpp-and-embedded/ |
| Автор: serger 26.2.2009, 20:49 | ||
diver85, поправка:
Java компилируется в байт-код, который при выполнении уже интерпретируется. В общем случае. Это позволяет создавать ещё языки на платформе (javaFX, ну и в какой-то степени, groovy и тп...). |
| Автор: nickless 27.2.2009, 02:00 |
http://en.wikipedia.org/wiki/Just-in-time_compilation компиляция |
| Автор: serger 27.2.2009, 20:05 |
| nickless, это уже следующий этап. Добавлено через 36 секунд Те оптимизация процесса выполнения. |