Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Перспективы С++


Автор: Modest 17.3.2007, 15:38
                                                                             Здравствуйте!

Хотел бы вынести на обсуждение такой вопрос:
Сейчас только и слышно со всех сторон, нужно побыстрее переходить на C#,
новый перспективный язык,в дальнейшем легче будет найти работу и тд.

Что вы об этом думаете?  





Автор: vinter 17.3.2007, 15:49
я думаю стоит воспользоваться поиском, т.к эта темы поднималась уже не раз

Автор: ama_kid 18.3.2007, 09:38
С# - мутный язык какой-то... Чо-та я не видел серьезных системных приложений, написанных на нем... Все качественное пишется на сях... Просто из-за того, что щас идет бум интернет-технологий, программеры для таких платформ востребованы, С# позволяет быстро и с минимальными затратами создать приличное по качеству интернет-приложение - но [сказанное далее - глубочайшее имхо] когда-нибудь рынок насытится и эти программеры будут не слишком нужны ибо их станет слишком много и они будут узкоспециализированными... А вот с++ - это надолго, ибо спектр этого языка фактически безграничен. И, кроме того, человек, знающий С++, сможет работать практически с любым другим операторным языком...

Автор: nerezus 18.3.2007, 10:45
Цитата

С# - мутный язык какой-то
 да нормальный язык, ибо клон джавы =)
(Да, я историю возникновения читал, что они по C++ делали, как и джава, но получился то в итоге клон джавы).

Мне не нравится в нем, то, что он некроссплатформенный, т.е. возникает зависимость от M$ и Windows®.

Автор: W4FhLF 18.3.2007, 10:54
Началось...

Автор: MAKCim 18.3.2007, 10:58
Цитата(nerezus @  18.3.2007,  10:45 Найти цитируемый пост)
Мне не нравится в нем, то, что он некроссплатформенный, т.е. возникает зависимость от M$ и Windows®. 

Любой язык по определению кроссплатформенный, другое дело, есть ли трансляторы/компиляторы для него
CLR .NET теоретически кроссплатформенная штука... вот только на практике этого как то особо не заметно в отличие от той же JVM

Автор: anabiosys 18.3.2007, 11:23
Уже давно существует практически полноценный заменитель .NET Framework для *nix, MONO называется. Причём с .NET Framework они полностью совместимы.

Автор: insidex 18.3.2007, 11:44
Цитата(ama_kid @ 18.3.2007,  09:38)
 но [сказанное далее - глубочайшее имхо] когда-нибудь рынок насытится и эти программеры будут не слишком нужны ибо их станет слишком много и они будут узкоспециализированными... 

Абсолютно в корень...Посмотрите сейчас на тех же ПХП кодеров - на одного клиента сотню другую можно найти php'ников.   smile 

Автор: MAKCim 18.3.2007, 12:35
Цитата(anabiosys @  18.3.2007,  11:23 Найти цитируемый пост)
Уже давно существует практически полноценный заменитель .NET Framework для *nix, MONO называется. Причём с .NET Framework они полностью совместимы. 

ну-ну  smile 

Автор: nerezus 18.3.2007, 14:15
Цитата
Уже давно существует практически полноценный заменитель .NET Framework для *nix, MONO называется. Причём с .NET Framework они полностью совместимы.
  Прежде чем говорить глупости, ты бы сам проверил.
mono не способен запустить даже простенький гуевый хеллоуорлд.

Автор: anabiosys 18.3.2007, 21:25
Цитата

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

Автор: Vyacheslav 19.3.2007, 11:21
Совет из жизни. Я программирую на С++ уже лет этак 12.  Сейчас работаю в солидной фирме в области офшорного программирования. Так мои коллеги на Java и С#( особенно ASP) не продыхают от проектов.  Я  же с трудом  набираю норму. Причем эта тенденция похоже по нарастающей.    

Автор: JackYF 19.3.2007, 18:41
Цитата(Vyacheslav @  19.3.2007,  11:21 Найти цитируемый пост)
Java и С#( особенно ASP) не продыхают от проектов. 

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

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

Кроме того, пришлось попрограммить на Java чуть-чуть. Не знаю. Впечатления не очень. Особенно от компилятора и его информативности и полноты информации об ошибках.

Да и, как уже говорили, если программить под Линуха на Java можно и без особых проблем, то вот C# в этом деле, похоже, вообще глух. Объявила MS его кроссплатформенным... и все. Под винду реализовывает шустро-быстро, а на остальные ОС забила. Альтернативные проекты вряд ли когда-либо обеспечат серьезную поддержку ==> вряд ли кто-нибудь будет программить под Линуха или кроссплатформенно на C#. Сейчас в этом плане как раз рулят С++ и Java.

Ну а я, ессно, за С++ smile Ибо скорость, скорость и еще скорость smile. А также широта мысли.

Автор: SaDFromSpb 20.3.2007, 04:10
Цитата(JackYF @  19.3.2007,  18:41 Найти цитируемый пост)
Кроме того, пришлось попрограммить на Java чуть-чуть. Не знаю. Впечатления не очень. Особенно от компилятора и его информативности и полноты информации об ошибках.

Ну это ты зря. Intellij IDEA - это, по моему опыту, абсолютно лучшая IDE. (Буду очень признателен, если меня в этом разубедят, то есть покажут аналогичную для С++. Кстати, мне нужна среда под Линух, так что кроме всяких вижуалов.   smile  )

Проблема С++ на мой взгляд в том, что в нем огромное количество нюансов и тонкостей. Скоро будет два года, как  я на нем работаю, а все равно не перестаю узнавать новые хитрые "фишечки" (Взять например выравнивание в структурах, когда при разных порядках описания полей структура занимает разное количество байт). Все время приходится думать, написать ли для класса конструктор копирования (и/или оператор присваивания), или передать на него указатель, который потом не забыть delete. Нужно помнить, что нельзя выкидывать во вне ссылки на автоматические переменные. И т.д. И т.п.

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

Вот и появляется уже много лет куча языков - убийц С++  smile 
Почитайте, к примеру про язык D от Digital Mars, который типа, взял все (точнее - оба  smile ) плюсы из C++ и Джавы, и еще вобрал несколько фишечек...

По поводу всего этого хочу процетировать подпись Любителя, которая мне очень понравилась: "Я люблю С++. Вы спросите, за что? А разве можно любить за что-то? Любить можно только просто-так. ".  Или вроде того.....   smile 

Автор: nerezus 20.3.2007, 07:48
Цитата

Ну это ты зря. Intellij IDEA - это, по моему опыту, абсолютно лучшая IDE. 
 +1, я даже не мог представить, что какая-то IDE может превосходить VisualStudio ;)

Цитата

Особенно от компилятора и его информативности и полноты информации об ошибках.
 В правильных IDE(IDEA, eclipse) на момент компиляции ошибок не будет.

P.S. Кстати, большинство книг по теории программирования идут с примерами на джаве.

Автор: codelord 20.3.2007, 10:27
тут вроде видно что C# быстрее здает позиции чем С++
http://www.freelancer.com.ua/programming-languages/2006/08/04/

Автор: seacat79 20.3.2007, 15:41
Цитата(codelord @  20.3.2007,  10:27 Найти цитируемый пост)
тут вроде видно что C# быстрее здает позиции чем С++


Ага, особенно для встроенных систем  smile 

Автор: nerezus 20.3.2007, 18:03
http://www.tiobe.com/tpci.htm
джава первая, что неудивительно.
Интересно, когда питон станет занимать 4-5 места в рейтинге? Наверное еще года полтора ждать...

Автор: Любитель 21.3.2007, 15:45
Цитата(SaDFromSpb @  20.3.2007,  04:10 Найти цитируемый пост)
Вот и появляется уже много лет куча языков - убийц С++ 

Бьют-бьют, никак не забьют. Ибо бессмертен!!!  smile 

Насчёт рейтингов - странные они какие-то у вас. Получается (почти), что бэйсик рулит. Причём даже приставка visual в скобочках. Приписки .NET - вообще не вижу. А шарп - он вообще оказывается непопулярен. Чтой-то не то...

Цитата(Vyacheslav @  19.3.2007,  11:21 Найти цитируемый пост)
 Я программирую на С++ уже лет этак 12.  Сейчас работаю в солидной фирме в области офшорного программирования. Так мои коллеги на Java и С#( особенно ASP) не продыхают от проектов.  Я  же с трудом  набираю норму. Причем эта тенденция похоже по нарастающей.

Мне работа пока не грозит (второй курс...), но по тому, что я знаю, соглашусь с этим. \в коммерческом плане ява с шарпом сейчас всё более популярны. Где ява, где шарп - абсолютно другой вопрос, зависит от места даже, наверно. Я подчёркиваю - в комерческом плане.

А для души... Каждый выбирает по себе. Никто не скажет объективно.  smile 

Цитата(nerezus @  18.3.2007,  14:15 Найти цитируемый пост)
mono не способен запустить даже простенький гуевый хеллоуорлд

Уже говорили. Способен. smile Я не говорю, что моно аналогичен мс-шному фреймворку, ибо сие абсолютно не так. Более того сие так никогда не будет (как мне кажется), ибо у мс во многом идеология (в том числе в dotnetfx) основывается на винду. Но это отдельный вопрос. Я всё собираюсь более основательно покопать Моно - если руки дойдут (искренне надеюсь), покопаю. smile Эх, время, время...


Цитата(SaDFromSpb @  20.3.2007,  04:10 Найти цитируемый пост)
По поводу всего этого хочу процетировать подпись Любителя, которая мне очень понравилась: "Я люблю С++. Вы спросите, за что? А разве можно любить за что-то? Любить можно только просто-так. ".

Спасибо. Приятно, блин. smile

Автор: Daevaorn 21.3.2007, 16:02
Цитата(SaDFromSpb @  20.3.2007,  05:10 Найти цитируемый пост)
По поводу всего этого хочу процетировать подпись Любителя, которая мне очень понравилась: "Я люблю С++. Вы спросите, за что? А разве можно любить за что-то? Любить можно только просто-так. ".  Или вроде того.....    

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

Автор: Любитель 21.3.2007, 16:13
Цитата(Daevaorn @  21.3.2007,  16:02 Найти цитируемый пост)
Не знаю как кто, а я девушек люблю

[offtop]
Признаюсь - я тоже (правда в единственном числе). Но это несколько иной вопрос smile

Есть разные понятие ентого слова просто. Ну, скажем, есть "любовь к Родине". Тоже любовь. Совершенно другого уровня, типа и пр. Так, что не придираться к формулировке!!!
[/offtop]

Цитата(Daevaorn @  21.3.2007,  16:02 Найти цитируемый пост)
А по канонической формулеровке "любят вопреки". И этих "вопреки" у С++ достаточно наверно и для любви.
И скоро( я надеюсь при нашей жизни ) этих "вопреки" станет меньше. Взять хотябы модульность, которую уже обсуждают в комитете, и переменное число шаблонных аргументов.

Не-э-э. Енто причинам ("вопреки" - уже попытка причинного объяснения) не поддаётся.

А вот насчёт развития плюсов. Обсуждают всё обалденно сколько, но делается (по сравнению с скоростью развития тех же шарпа и явы) всё ужасно медленно. К сожаленью... А может не к сожаленью, а к счастью?..

Добавлено @ 16:14 
Кстати, если на то пошло - первая строчка подписи была процитирована не точно. Если уж придираться к форумулировке - то есть ращница. smile

Автор: SAnty 21.3.2007, 18:33
Об перспективе можна было говорить тогда когда его создавали и об этом и говорили.
А сейчас язык используеться по полной.

А то что проектов меньше на С++ чем например на Джаве или .Нет, то это дань моде. Всё бежит, всё меняеться.


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


А вообще перспектива зависит от количества специалистов, от сектора(в) где используеться язык и др..

Если проанализировать, то можна сказать что это на долго.


Автор: nerezus 21.3.2007, 18:46
Цитата

Бьют-бьют, никак не забьют. Ибо бессмертен!!!
 Забили. См. рейтинг языков.

Цитата

Уже говорили. Способен
 Нет, я САМ пробовал. Ругается на отсутствие СТАНДАРТНЫХ методов в стандартных классах.

Автор: JackYF 21.3.2007, 19:42
Цитата(nerezus @  21.3.2007,  18:46 Найти цитируемый пост)
Забили. См. рейтинг языков.


Не забьют. И не забили. Что рейтинг языков? Что, первый рейтинг такой, что ли...


P.S. Особенно порадовала фраза в статье - цитата:
Код

Pascal и Ada уверенно держатся на своих местах

В рейтинг Pascal и Ada имеют по 0,5%. На 18-м и 19-м месте. Как говорят у нас в Украине после кампании Януковича, такая стабильность только в одном месте... smile

Автор: MAKCim 21.3.2007, 20:57
По крайней мере, пока жив(а) *N?X, C/C++ будет востребован

Автор: JackYF 23.3.2007, 00:57
MAKCim, +1.

Автор: Любитель 23.3.2007, 23:54
Цитата(nerezus @  21.3.2007,  18:46 Найти цитируемый пост)
Забили. См. рейтинг языков.

Приведённые выше рейтинги - полная ерунда. Я уже это говорил. Объективно - не забъют. smile Даже в коммерческом ПО.

Цитата(nerezus @  21.3.2007,  18:46 Найти цитируемый пост)
Нет, я САМ пробовал. Ругается на отсутствие СТАНДАРТНЫХ методов в стандартных классах.

1. Здесь сие оффтоп.
2. Я тоже пробовал smile
3. А что понимается под СТАНДАРТНЫМИ? Дата-провайдер для MS SQL Server - это стандартно?

Автор: nerezus 24.3.2007, 09:27
Любитель, есть стандарты де юре и де факто.
В данном случае это стандарт де факто. Если уж заявили о поддержки .NET, но у классов не поддерживают методы нужные — значит полной поддержки нет!

Автор: Любитель 24.3.2007, 23:27
1. Хорош оффтопить!
2. Что понимать под "поддержкой .NET"?
3. Дай мне твой код. Постараюсь заставить его работать на моно. Хотя, конечно, не обещаю. Просто не хочется говорить на пустом месте (где бы только время найти...).

Автор: aikidzin 27.3.2007, 16:28
Нет, Си не помрёт, ибо бессмертен он.
А попробуйте скомпилить ядро СУБД на Яве. Си, Си, только Си. Даже ядро Виндоус писалось на Си. Любые серьёзные приложения, требующие оптимальности и прозрачности кода пишутся на Си. А все фантики - потом пишутся на чём угодно.

Пробовал я VS2005. долго плевался и потратил уйму рабочего времени. Всё равно пришлось перейти на VS6.

Автор: Earnest 27.3.2007, 17:19
Цитата(aikidzin @  27.3.2007,  17:28 Найти цитируемый пост)
Пробовал я VS2005. долго плевался и потратил уйму рабочего времени. Всё равно пришлось перейти на VS6. 

Интересно, чем тебе С++ в VS2005 не угодил? И почему вернулся к VS6, а не к VS2003? В VS6 С++ очень кривой по сравнению с VS2003 (с точки зрения стандарта).

Автор: aikidzin 27.3.2007, 17:54
VS6 быстрее всего работает. VS2005:  Мне не нужны эти визуальные навороты. Проект большой. Updating Intellisense длится минут по 5-7, я уже не говорю о полной сборке проекта.  очень долго открывается и закрывается. проблема с *.pdb файлами - сама среда говорила что их не может открыть. После удаления всех дебаговских файлов всё восстанавливалось, но не на долго. 
VS6, как говорится, дёшево и сердито.  Оптимизация кода, конечно не на самом высоком уровне, но конечная цель проекта - не Windows, а RTOS32. так что VS6 меня полностью устраивает.

Автор: Sartorius 27.3.2007, 18:12
aikidzin, а что за машина у тебя? У меня восьмая студия замечательно работает на 1.6 ГГц атлоне с 500 Мб памяти. В проектах сотни тысяч строк.

Автор: aikidzin 27.3.2007, 18:36
Celeron 2.4GHz, 500Mb of RAM. Солько строк - не знаю. Посчитать невозможно

Автор: Earnest 28.3.2007, 07:41
Updating Intellisense можно и отключить. Я так и делаю, т.к. в 6 оно глючило и часто выпадало... Пользуюсь Visual Assist.
А что касается компиляции, так VS2003 заметно быстрее это делает чем VS6 (VS2005 пока не пробовала).
Главное, что компиляция нормально реализована в потоке - во время компиляции вполне можно дальше работать (писать код). В 6-ке это было проблематично. И дело не в оптимизации, а в поддержке стандарта. Во время переноса приложения с 6 на 2003 выловилась куча мелких ошибок, которые раньше компилятор прощал... Кроме того, старый компилятор плохо поддерживает шаблоны...
Железо у тебя, конечно, не очень...

Автор: Любитель 28.3.2007, 16:34
В 2005 появилась ещё многопоточная компиляция - очень удобно, если солюшен разбит на несколько проектов.

Автор: JackYF 28.3.2007, 18:01
Цитата(JackYF @  19.3.2007,  18:41 Найти цитируемый пост)
собенно от компилятора и его информативности и полноты информации об ошибках.


Цитата(SaDFromSpb @  20.3.2007,  04:10 Найти цитируемый пост)
Intellij IDEA - это, по моему опыту, абсолютно лучшая IDE. 


А причем IDE к компилятору?

Цитата(nerezus @  20.3.2007,  07:48 Найти цитируемый пост)
В правильных IDE(IDEA, eclipse) на момент компиляции ошибок не будет.

Что? Даже когда я вызываю метод, которого нету в классе?



Автор: Любитель 28.3.2007, 18:21
Цитата(JackYF @  28.3.2007,  18:01 Найти цитируемый пост)
А причем IDE к компилятору?

Если не ошибаюсь там ответ шёл на
Цитата(JackYF @  19.3.2007,  18:41 Найти цитируемый пост)
Кроме того, пришлось попрограммить на Java чуть-чуть. Не знаю. Впечатления не очень.


Насчёт информативности - не знаю, по моему сполна. Можешь конкретный пример?

Насчёт ошибок в момент компиляции - не понял, что nerezus хотел сказать. smile Есть кстати у явовских ИДЕ ещё одна приятная вещь - компиляция на лету. Сохранились - уже можно запускать. Причём никаких притормаживаний незамечено. Не знаю, либо инкремент-компайл очень развит или что - фиг его. Плюс даже так (енто и в VS для .NET есть) - написали строку, допустиили ошибку, видим уже, что здесь ошибка. Не дёргаясь, тут же её исправляем. Удобно.

Автор: nerezus 29.3.2007, 05:47
Цитата

Насчёт ошибок в момент компиляции - не понял, что nerezus хотел сказать

Цитата

Что? Даже когда я вызываю метод, которого нету в классе?

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


Цитата

Плюс даже так (енто и в VS для .NET есть) - написали строку, допустиили ошибку, видим уже, что здесь ошибка. Не дёргаясь, тут же её исправляем. Удобно.
 Кстати VisualStudio можно тоже к человеческому виду настроить, плагин ReSharper.

Автор: Partizan 29.3.2007, 11:17
ммм...из перспектив С++ тема плавно перешла в обсуждение достоинств и недостатков компилеров и IDE...

Автор: JackYF 29.3.2007, 14:55
Цитата(Любитель @  28.3.2007,  18:21 Найти цитируемый пост)
Насчёт информативности - не знаю, по моему сполна. Можешь конкретный пример?


Дословно не приведу, но javaс (сборка 1.5.ххх - не помню точно), когда я написал в методе большее количество параметров, чем можно было (6 место 4-х, если не ошибаюсь), так он мне выдал, что данного метода не сущесвует.

А потом было еще место, когда

function_name( short day, ... );

не заработала с вызовом function_name( 1, ... ),
но! заработала с вызовом fucntion_name( short(1), ... );

Меня это тогда жутко раздражало... До сих пор не могу понять, почему так происходит.

А программировал я тогда на консоли и под консоль.

Ну и ИМХО в похожих ситуациях тот же GNU G++ намного более ясно говорит, какая ошибка.
У javac большинство ошибок было вида: символ такой-то не найден. точка. А почему, да отчего - молчал.


Цитата(nerezus @  29.3.2007,  05:47 Найти цитируемый пост)
Тебе его сразу подчеркнет красным, каак только ты его напишешь, еще до компиляции. Да еще и на полях и в браузере файлов наоставляет красных пометок. Поэтому ты это увидишь и исправишь до компиляции.


О таком не слышал, но принимаю к сведению.

Автор: Любитель 29.3.2007, 14:56
Цитата(nerezus @  29.3.2007,  05:47 Найти цитируемый пост)
Кстати VisualStudio можно тоже к человеческому виду настроить, плагин ReSharper. 

Всмысле? Обнаружение ошибок налету для дотнет-кода работает без плагинов. Для плюсов - сомневаюсь, что вообще существует. Или тормзоа жуткие. Решарпер не ставил. Что он конкретно даёт?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)