Что нужно людям, чтобы отойти от C ++? [закрыто]

При использовании @Rule набор исключений применяется ко всем методам тестирования в классе Test.

20
задан 3 revs, 3 users 100% 1 May 2012 в 13:10
поделиться

23 ответа

Дайте мне язык программирования что:

  1. стандартизируется и не управляется единственной компанией
  2. , не связывается с одной платформой (не только в теории)
  3. , компиляции к собственному коду
  4. дают мне ту же эффективность, как C++ делает
  5. , обеспечивает, очень хорошо продуманная стандартная библиотека
  6. имеет по крайней мере одну зрелую реализацию для различных важных платформ

..., и я мог бы рассмотреть переключение;-)

27
ответ дан 2 revs 1 May 2012 в 13:10
поделиться

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

0
ответ дан Greg M 1 May 2012 в 13:10
поделиться

Неудачно, что Вы не обнаружили фундаментальную элегантность и концептуальную целостность языка. Это открывает столько же удобный и последовательный вид мира сколько любой другой язык, как отражено его использованием продолжения за эти годы. YMMV, но позволяют нам все равно соображение.

1
ответ дан dkretz 1 May 2012 в 13:10
поделиться
  • 1
    @Kishor Subedi, Проверка мое редактирование, btw находятся под контролем Вас окна или Linux? – Imane Fateh 25 April 2013 в 20:59

Почему? Вы выдерживаете получить прибыль, если я начинаю писать код на другом языке?:-P

Все ребячество в стороне, я пишу код C++, потому что вот почему мой работодатель платит мне. Это действительно настолько просто. Если бы они решили использовать другой язык, то я начал бы использовать его. Теперь, относительно того, почему они приняли решение использовать его, я могу только размышлять. Мое предположение - то, что у них есть две основных причины:

  1. существует вполне достаточное предоставление выпускников колледжа, которые являются достаточно хороши в C++, что они могут выполнить свои бизнес-цели.
  2. предложения C++ достаточно хороший производительность в режиме реального времени распределенные системы.
1
ответ дан Michael Kristofik 1 May 2012 в 13:10
поделиться

Рассматривая Ваш список "проблем" с C++, единственный, я мог бы близко подойти к принятию, является проблемой, преобразования STL/струны до.

я мог бы спросить, почему Вы желаете, чтобы C++ был C#?

0
ответ дан Paul Nathan 1 May 2012 в 13:10
поделиться

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

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

Короче говоря Вы будете все еще видеть C и C++ в течение долгого времени.

2
ответ дан Jeremy Edwards 1 May 2012 в 13:10
поделиться
5
ответ дан mannicken 1 May 2012 в 13:10
поделиться
  • 1
    +1 для этой строки " В jQuery Вы обращаетесь к идентификатору элемента с # перед ним; – Mohammad Adil 26 March 2013 в 08:04

Я делаю научные расчеты, где мой GUI находится в C#, и мой бэкенд является C++. Не из области возможности, что C# мог, по крайней мере, равняться C++ с точки зрения производительности, но это не то, где фокус C#/insert управлял языком здесь группы. Это было бы трудно, но хорошо в пределах возможного иметь C# работают, а также C++ (или очень близко к нему) для числового вычисления, поскольку IL компилируется вниз в машинный код. Если/Когда это произойдет, то я с удовольствием переключусь.

3
ответ дан Steve 1 May 2012 в 13:10
поделиться

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

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

Лично, я хотел работать в машинном обучении. Как выпускник. студент я работал над анализом представлений графика огромных наборов данных (IMDb, Netflix). Я использовал C++ для большей части своей работы. Я любил бы работать в C# или Java или еще лучше Python, но природа проблемы потребовала, чтобы я использовал C++. В течение 5 лет я влюбился в C++ для золотого баланса, которого он достигает между эффективностью и абстракцией. Я буду использовать C++ каждый раз, когда я вижу потребность в нем. Программисты на C++ являются прагматичными прагматистами, которые не позволят ничему стоять на пути добивания цели. Они не будут цепляться за C++ только для heck его.

1
ответ дан Nikhil 1 May 2012 в 13:10
поделиться

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

3
ответ дан Amardeep Chana 1 May 2012 в 13:10
поделиться

Для меня я предпочитаю C++ потому что:

  • Это - все еще довольно простое представление того, что аппаратные средства собираются сделать или закрыться достаточно, что можно сделать образованные выводы о фактическом поведении программы и производительность
  • , Это достаточно гибко, чтобы позволить мне использовать, или реализовать большинство парадигм программирования
  • Это имеет высокую совместимость с другими библиотеками и модулями и самой большой существующей базой поддержки ссылочного и непосредственно применимого кода
  • , большинство "бородавок" легко уничтожить с хорошими практиками программирования и/или служебными библиотеками, в противоположность другим языкам, где "бородавки" являются менее закрепляемыми (например: можно легко зафиксировать утечки памяти при помощи интеллектуальных указателей и легко диагностировать повреждение памяти с анализом непосредственной памяти, Вы не можете легко отладить проблемы повреждения памяти на высокоуровневом языке как C#, и да у меня были они)
  • , приложения C++ могут обычно делаться работать на любых версиях ОС с единственным ограничением, являющимся усилием; высокоуровневые языки обычно требуют времени выполнения, которое может или не может быть существующее

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

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

6
ответ дан Nick 1 May 2012 в 13:10
поделиться
  • 1
    Я полагаю, что это корректный ответ, но я просто хочу позволить всем знать, что моя проблема состояла в том, что мой идентификатор имел период в нем, который я не упоминал в вопросе. Этого нужно оставить с " \\". например $('#ulid #li\\.toRemove'); – Pittfall 26 March 2013 в 08:14

Лучший способ понять, почему C++ является способом, которым это, и ценить, это - достижения, должен считать "Дизайн и Эволюцию C++".

Для всех его бородавок, C++ является довольно блин хорошим языком.

3
ответ дан Arafangion 1 May 2012 в 13:10
поделиться

его ниша как язык программирования систем/производительности

Это - довольно большая ниша! Возможности состоят в том, что, если часть программного обеспечения имеет более чем 10 миллионов пользователей, это записано в C++:

  • Windows
  • IE
  • SQL Server PhotoShop
  • Firefox
  • Office
  • источник AutoDesk

Google Search Engine

  • MySQL : http://www.research.att.com/~bs/applications.html

    10
    ответ дан drainpipe 1 May 2012 в 13:10
    поделиться
    • 1
      @Pittfall, которые я рекомендовал бы, избегают использования . в идентификаторе. В то время как это , разрешил и в HTML4/5, это несколько сбивает с толку и может привести к странному поведению в инструментах, которые иначе не составляют его. Рассмотрите использование или _ или - как " больше conventional" разделитель слов. –  26 March 2013 в 08:24

    Часть Вашего вопроса имеет дефектное предположение. Вы предполагаете, что у нас есть выбор языка. В весь из проектов я работаю над который C++ использования, нет никакого реального выбора. Это - проекты, которые существовали, так как значительно прежде я присоединился к компании и был записан в C++. У них есть много лет истории позади них и соответствующего объема кода.

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

    , Что люди часто забывают рассматривать, миллионы (миллиарды?) строк C++, которые выполняют наш мир сегодня. Переключение на другой язык чрезвычайно дорогостоящее и не может быть сделано на прихоти. Это берет огромное выравнивание для помещения времени и усилия в перезапись приложений того размера. Поэтому C++ не умрет. По крайней мере в ближайшее время.

    30
    ответ дан JaredPar 1 May 2012 в 13:10
    поделиться
    • 1
      @AbdelouahabPp я лично думаю Ваш метод, сверхусложняет проблему - и there' s никакая причина использовать любую информацию о пользователе для генерации маркера... – Jon Clements♦ 6 February 2013 в 07:54

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

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

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

    В Java/C# все многословие несут вниз к коду использования - попытка/выгода/наконец... все эти вещи должны быть введены много раз и снова. Ick...!

    я упоминал стековые объекты? Как люди живут без них...??

    единственный C++ места действительно падает, находится в отражении (хотя даже, который может быть видом - сделанных, например, COM).

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

    13
    ответ дан 2 revs 1 May 2012 в 13:10
    поделиться

    Они включают его устаревшую систему управления модуля (заголовочные файлы)

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

    причуды синтаксиса, которые делают его грамматику неразрешимой (такую как <> угловые скобки для объявления шаблона), фактически никакой синтаксический сахар,

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

    включение макросов, которые работают на текстовом уровне вместо реальных функций языка для обращения к вещам, для которых используются макросы,

    существует много для не симпатии приблизительно препроцессора, но может быть очень полезно воздействовать на маркеры с точки зрения генерации кода. Предоставленный, вещи как макросы M4 обеспечивают намного более мощный способ сделать это, но оборотная сторона - то, что это не стандартный компонент языка. Стандарт c/c ++ препроцессор доступен ВЕЗДЕ, компилятор.

    дублирование функциональности как массивы и строки (STL и версии C этих типов)

    Эта функциональность не является дублированием. Низкий уровень, байт примитивами байта (uncluding арифметика указателя) необходим для реализации понятий высшего порядка как универсальные контейнеры. Помните, что C++ для программирования систем, это реализовано на, но также и для обеспечения выразительного питания сделать реальную работу.

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

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

    14
    ответ дан SingleNegationElimination 1 May 2012 в 13:10
    поделиться
    • 1
      +1 Это достаточно хорошо. Маркерная потребность не быть уникальным! – slezica 6 February 2013 в 05:08

    C++ является инструментом на моей панели инструментов. Так Java и Python и несколько других вещей.

    Ловко среда моей компании позволяет мне использовать то независимо от того, что является соответствующим.

    • C++ == перфект при необходимости.
    • Java ==, когда перфект не так необходим (вследствие того, что сетевой/внешний IO значительно перевешивает циклы ЦП), и скорость разработки необходим.

    Инструменты на Вашей панели инструментов. Используйте то, что является соответствующим.

    2
    ответ дан Steve Lacey 1 May 2012 в 13:10
    поделиться

    Мой личный выбор использовать C++ (когда у меня даже есть выбор) состоит в том, потому что это - один из единственных многоцелевых языков программирования, который не интерпретируется и имеет достаточно "дополнительных свойств", чтобы позволить мне добиться цели относительно быстро. Теперь существует набор причин, что я выбираю другие языки (например, Python, Java, Perl, ksh, и т.д.), когда возможность представляет себя. Я использую другие языки для "одноразовых" приложений и сценариев, где производительность не является проблемой, и ни один не "поле deployability". Поддержка развертывания многих языков сценариев является очень веб-ориентированной, и я работаю в большем количестве инфраструктуры и "невидимого связующего звена" промышленность прямо сейчас. Мы смотрим серверы приложений J2EE для выручения с развертыванием и проблемами поддержки, но у нас уже есть некоторые хорошие методы для исполняемых сервисов.

    самая большая причина, что я продолжу использовать C++ по выбору во многих случаях, состоит в том, что он имеет поддержку почти всего, в чем я нуждаюсь после того, как Вы включаете выбор немного библиотек для обработки не материала платформы языка программирования (потоки, сокеты, и т.д.). И... Да ... Я действительно считаю потоки чем-то, что должно быть представлено за пределами языка программирования. Это - главная причина, что я склоняюсь далеко от других языков - мне на самом деле нравятся языки с ядром скелета, где функциональность обеспечивается через дополнительные библиотеки.

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

    последняя причина состоит в том, что я предпочитаю C ++ другим языкам, то, что я на самом деле думаю, что это более детерминировано, чем другие языки. Я знаю, что Java независим от платформы предпочтительное решение и Ruby & Python быстрая разработка альтернативы du'jour. Проблема состоит в том, что приложения, которые интерпретируются всегда, работают в прихоти их интерпретатора. Это - не всегда Плохая Вещь, и это несомненно - не всегда Хорошая Вещь также.

    Возможности состоят в том, что C++ будет здесь на некоторое время длиннее. Мое предположение - то, что большое количество более чистых языков ООП начнет освобождать долю рынка на динамические языки более общего назначения (вероятно, Ruby и Python) и что те языки возьмут некоторые более серьезные прерывания OO также. Я переключусь на другой язык, когда солнце начнет действительно устанавливать на C++ и существует другой язык, который хорошо принят "промышленностью". Я уверен, что это произойдет однажды... после того, как весь C++ на самом деле заменил C в качестве моего языка предпочтительные много лет назад.

    2
    ответ дан D.Shawley 1 May 2012 в 13:10
    поделиться

    Мое мнение - то, что людям нужны высокоуровневые языки, которые так или иначе предложили бы те же предложения C++ питания. Делая что-то на высокоуровневом языке (скажем, Java) при выполнении с лучшей скоростью, собственная двоичная компиляция и другие функции, не обращаясь к чему-то как JNI, были бы, "что я должен отодвинуть от C++".

    4
    ответ дан Geo 1 May 2012 в 13:10
    поделиться
    • 1
      Да, можно определить UL' s идентификатор перед ним, однако так как идентификаторы на всех элементах должны быть уникальными, там shouldn' t быть любой потребностью быть более конкретным. – j08691 26 March 2013 в 08:04

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

    4
    ответ дан Crashworks 1 May 2012 в 13:10
    поделиться
    • 1
      Есть ли способ определить который Ul it' s прибывающий из? – Pittfall 26 March 2013 в 08:03

    Я главным образом использую C++ для встроенных платформ, который обычно требует большого тесного взаимодействия с аппаратными средствами. Я действительно не вижу замены OO здесь. Если бы я должен был заменить C++ что-нибудь здесь, то это было бы что-то, что могло бы разрешить все включать-льготы во время компиляции, таким образом, я не должен был волноваться о тех.. В основном, что-то, что могло ослабеть моя разработка, но не обеспечило времени выполнения наверху (отражение, сборка "мусора" и подобные).

    Для меня C++ - все о производительности во время выполнения и неограниченном контроле. Никакой необычный-pancy материал во время выполнения, который работает "закулисный".

    3
    ответ дан cwap 1 May 2012 в 13:10
    поделиться

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

    Для программирования бессистемностей, я использую другие языки, такие как PHP, Delphi, колочу сценарии, awk, жемчуг и Smalltalk. Один размер не соответствует всем, если Вы не некоторый фанатик языка, конечно.

    18
    ответ дан anon 1 May 2012 в 13:10
    поделиться
    • 1
      спасибо за эту подсказку, и это - безопасный URL, но, что относительно метода i' используемый ve, обновил вопрос – Abdelouahab Pp 6 February 2013 в 07:27

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

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

    3
    ответ дан javashlook 1 May 2012 в 13:10
    поделиться
    • 1
      @AbdelouahabPp допускают ошибку, почему необходимо ввести код? – Jon Clements♦ 6 February 2013 в 08:34
    Другие вопросы по тегам:

    Похожие вопросы: