2009-02-11 4 views
10

Как и большинство людей, я изучил C++ после C. Я изучил C++, потому что это был один из тех языков, на которых были заданы задания. Тем не менее, я все еще изучаю (делая мастеров). Один из моих двоюродных братьев работает разработчиком около 12 лет.В каком секторе программного обеспечения используется C++?

Он советует мне изучать Java, чтобы я мог приземлиться в хорошей работе. Он говорит, что только несколько секторов, таких как телесвязь, используют C++, и почти все корпоративное программное обеспечение разработано на Java. Я работаю студентом в университете. Работа связана с программированием на Windows на C++. Я изучил основную Java. Я не знаю никого из этих Struts, Hibernate или что там там.

Чтобы быть на более безопасной стороне, я планирую освоить оба. Но я думаю, что Java - это океан, хотя проще программировать на Java, чем на C++ (это мое мнение. Любители C++ меня не убивают).

Что вы, выродки и профессионалы, посоветуете мне. Как вы думаете, я должен изучить их обоих. В каких секторах программного обеспечения используется C++?

ответ

55

Лучший совет, который я получил в качестве бакалавра, был на моем языке профессором, который сказал мне (перефразируя здесь): «Не запоминайте языки, не выходите замуж за язык, они просто инструменты. делать одни и те же основные вещи. Вместо того, чтобы изучать определенный язык, изучите основы хорошей разработки программного обеспечения. Тогда вы сможете взять любой язык и добиться успеха с ним ».

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

+1

Уверены, что это инструменты, но они приходят вместе с инструментами (стандартными библиотеками), и для решения этой проблемы требуется некоторое время, чтобы найти лучший молот. – Anonymous

+2

В смысле пуризма, я согласен. Тем не менее, когда истекает крайний срок, и вы не знаете куриковую странность данной среды (библиотеки, ОС, драйверы, провайдеры и т. Д.), Тогда теория выходит из окна, и вы должны знать подробности реализации. –

+0

Являются ли программисты вообще не умными людьми? Мы склонны оценивать это. И да, я должен был сделать это в сжатые сроки на языке, который я никогда не касался раньше. Я уверен, что в этом проекте есть строки кода, которые я бы написал по-другому, но это было успешным, и это важно. –

9

Видеоигры по-прежнему используют C++. Одним из примеров, который приходит на ум, является двигатель Torque, который можно использовать для разработки игр для iphone и xbox.

3

Ключевые слова: Банки (финансовые учреждения), игры

О, а также физики частиц и другие ученые, использующие (в) знаменитый ROOT рамки.

И выпишите this list приложений на C++.

+1

По моему опыту, банковские и финансовые материалы почти никогда не являются C++. Если это последнее, это Java; если нет, COBOL. –

+0

Jobsearch с использованием ключевых слов C++ и банковское дело/финансы, похоже, говорят что-то другое. – Anonymous

16

C++ даже близко не мертв.

Мой опыт:

Bloomberg, Reuters, и все их банк/торговые клиенты, которые хотят низкой латентностью данных рынка кормов использование C++. (Fidelity, JPMorgan, BNP, Citibank и т. Д.)

Оборонная промышленность использует C++. (среди других языков - Java также популярен)

Эти отрасли также используют Java и другие языки, но C++ трудно превзойти. Обратите также внимание на то, что существует ОГРОМНАЯ существующая база кода на C++, которая может занять много времени (если она когда-либо)

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

+0

Множество встроенных элементов управления/систем и ПЛК также используют C++. – Syntax

+0

Во многих отраслях обороны используется Ada и C++ – paxos1977

19

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

5

Многих подрядчики обороны, особенно при работе с оборудованием, с помощью C++

Многих производители современного медицинского оборудования (например, магнитно-резонансная томография) используют C++.

Я говорю, узнаю, как можно. Хорошо иметь основу C++, даже если вы закончите на песочнице, например C++/C#. Слишком много людей не понимают основ.

Обратите внимание, что в разных городах большинство рабочих мест указано на определенном языке. Идите к доскам объявлений craigslist для города, в котором, по вашему мнению, вы попадете и посмотрите, что они ищут. Например, Питтсбург - город C#, тогда как Нью-Йорк более сбалансирован.

19

Краткий вне-топ-моей головки список проектов, использующих C++:

  • Разработка драйверов устройств
  • Игры
  • Дополнительные двигатели (аудио, обработка изображений и т.д.)
  • Телеком
  • встроенного программного обеспечения (устройства и такие)
+2

Встраиваемые менее распространены с течением времени? Не совсем: количество встроенных устройств только увеличится. –

+0

Не количество встроенных устройств, использование C++ на них. Мне кажется, что языки более высокого уровня становятся все более распространенными во встроенных системах. –

+3

Во многих встроенных системах C++ будет считаться вполне «языком высокого уровня» (обычная прогрессия - сборка C-C++). Не знаете, как общие языки «выше», чем C++, во встроенных системах. Я вижу и работаю с десятками каждый год, C/C++ все еще доминирует (возможно, такая сборка, как C++, BTW) – Dan

2

В вашем университете не было курсов на базе Java? Странно!!

Вы должны научиться не только C++ и Java, но должен подвергаться воздействию нескольких языков и парадигмы

11

Некоторого сайт, называющего себя Google считает, что это использует C++ широко. Слава богу, им не нужна производительность, чтобы индексировать несколько сайтов.

Если эта вещь Interweb взлетает, они будут в реальной беде. (-:

серьезно, помимо изменения тока канала (реверсии) в C и Perl, предыдущие четыре проекта были C++

  1. крупномасштабная система управления отправками для нескольких. крупнейшие авиакомпании мира (30 000 10 МБ журнальных файлов в день)
  2. учебный симулятор летной подготовки и наземная платформа для тестирования нового военного самолета
  3. масштабная структура для существующего симулятора управления воздушным движением, который использовался для включения новая сеть аэронавигационной электросвязи (ATN)
  4. продвинутая обработка радиолокационной и системы отображения для на маршруте воздушного движения центра управления

Все действительно interesing.

+0

Интересно, каким был бы Интернет без Google! – hasen

+0

Если бы не Google, кто-то другой был бы их каким-то другим причудливым именем! (jibjaw, jiggle, nibble ... ничего сумасшедшего) – AKN

1

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

0

C++ широко используется во встроенных системах. Он используется в разработке пользовательского интерфейса. Напр. известная структура QT написана на C++.

В конечном счете это зависит от того, что вы хотите сделать. Если вы хотите работать во встроенных системах, лучше изучите C/C++.

5

C++ по-прежнему широко используется в инженерных приложениях, таких как высокопроизводительные CAD/CAM-системы.

Я думаю, что смерть родной код сильно преувеличена. Даже Microsoft отказалась от того, чтобы сделать C++ все о .NET в Visual Studio 2008. Кажется, что он снова активно улучшает свои собственные средства разработки на C++, а также упрощает взаимодействие с управляемым миром.

+0

Честно говоря, я думаю, что Microsoft просто хотела конкурента Java. :) –

1

Мой совет заключается в том, чтобы овладеть тем, что вам больше нравится. Я хорошо знаю C++ и Java, и использовал их как профессионально. Тем не менее, я бы никогда не согласился с другой работой на C++, потому что нахожу C++ утомительным и ошеломляющим. Я скорее инвестирую свое время на освоение более интересных языков.

2

Я склонен согласиться с вашим кузеном. Java определенно используется в более корпоративных приложениях (подумайте о вещах, которые нужны банку или страховой компании), а C++ используется на более «нишевых» рынках. Я также согласен с вами в том, что Java легче освоить и освоить, чем C++. Никакого стыда или обиды, признавая это.

Мы используем оба приложения, где я работаю, записывая встроенное программное обеспечение на C++, но обмениваясь им с графическими приложениями, написанными на Java. В индустрии программного обеспечения определенно много места для языков (и многих других).

+0

+1 за «Нет стыда или обиды, признавая это». – AKN

0

Я регулярно использую C и C++ в своей работе, где я работаю над встроенными устройствами. Мы тоже не говорим о сверхнизком уровне. Я работаю на среднем уровне и в пользовательском интерфейсе. Think Qt, Gtk +, Windows Mobile SDK и т. Д.

1

Я писал на C++ в основном для внутренних и внешних настольных приложений в производственных и телекоммуникационных компаниях в течение длительного времени и работал только с Java в течение 1 года из 16.

Java никогда, казалось, не перешел на рабочий стол, как они предсказывали еще в середине 90-х годов, когда он впервые появился, и теперь у C++, похоже, больше конкуренция с .net и AJAX/веб-приложениями.

Я не могу говорить, что он используется в системах заднего конца, но я видел его там больше, чем я видел C++, так что это зависит от того, о каком программировании вы говорите (например, внутренние системы).

0

C++ широко используется ISV. Подумайте, Microsoft, Adobe, Oracle, Sun, Symantec ...

6

C++ не где-то близко к мертвому, и, как предлагают другие, не женитесь на себе. Если вы изучаете C++ с точки зрения перспектив работы, я предпочел бы вам предложить представителя парадигмы программирования.

  • C - императивное программирование
  • C++/Java/Obj-C - OOP
  • Лиспа/Haskell/Схема - Функциональное программирование

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

5

Мой совет, изучите C#. В наши дни почти 50% списков вакансий были Java, и почти остальные 50% были C#, было всего несколько листинг C++.

Это говорит о том, что люди, использующие C++, знают, почему они используют его и, вероятно, имеют хорошие варианты использования ...что означает, что вы действительно научитесь использовать язык на самых высоких уровнях ... Между тем компании, которые отказываются от приложений бизнес-логики в Java/C#, вероятно, не научат вас столько же программированию, сколько быстро.

Если вы решили принять задание на C++, убедитесь, что магазин использует STL эффективно и что они используют Boost. Не смотря на использование Boost/STL, но на самом деле использую его.

+1

... или Qt. Только C++, даже с STL, только для программиста-мазохиста Boost или qt может повысить производительность на C++ многократно, чем голый STL. – mhd

2

Большинство упакованных программ все еще написано на C++. Это означает игры, офисные приложения, графические и видеоредакторы и операционные системы. На самом деле, если вы думаете о программном обеспечении, которое вы используете каждый день, который не находится в сети, есть вероятность, что он написан на C++ (или C или Object-C). Он не написан на Java, Python, Ruby, Perl и т. Д. В то время как упакованное программное обеспечение становится все менее распространенным, оно все еще используется много и в ближайшее время не уходит.

Операционные системы, как встроенные, так и настольные, почти исключительно написаны на каком-либо языке C. Были предприняты попытки записать их на Java или C#, но ни один из них не сработал. Все ваши драйверы написаны также в варианте C. Я не вижу, чтобы это менялось в ближайшее время.

0

Мне пришлось прокрутить весь путь до основания, чтобы наконец увидеть сообщение с упоминанием видеоигр. C и C++ огромны в этой отрасли.

Что касается вопроса «Что мне узнать?». Это довольно открыто, вы хотите учиться как можно больше. Так что да, вы должны изучить их обоих. Как сказал несколько человек, C# тоже хорош. Вы также должны изучить Python, Ruby или PHP и некоторые веб-фреймворки (Rails, Symfony, Django, ASP.Net). В настоящее время веб-приложения довольно большие.

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

EDIT: Упс, я думаю, игры были упомянуты намного больше, чем я изначально видел здесь. Виноват.

0

Игровая индустрия выглядит как go C++ навсегда.

1

Ну, я предлагаю изучать более двух языков. Я работаю в отрасли связи и да, мы используем C++, однако многие проекты, над которыми мы работаем, также находятся на Java.

Я предлагаю вам узнать:

1) C++/C 2) Java 3) Erlang или Хаскель 4) Рубин

Это поможет вам понять концепции, которые существуют на одном языке, но не в другой. Также помогает с товарностью.

Взгляните на tiobe programming index, и вы почувствуете, что языки на подъеме.

0

В моей карьере я разработал C++ для:

  • приложений Server (ценные бумаги промышленности)
  • Встроенного программного обеспечения (Wireless телекоммуникационного)
  • приложений для настольных ПК (Wireless телекомов)

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

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

Смежные вопросы