Я должен отклонить C++, потому что это становится безжалостной силой? [закрытый]

Этот пример кода может быть вашим решением, которое вы можете найти здесь https://github.com/SwiftGuides/Google_Place_Picker

Это пример кода, который я написал для Google Place Picker, чтобы точно выбрать Укажите точное местоположение (не рядом)

В вашем случае вы также можете применить это. Просто проверьте пример кода, вы получите решение

17
задан jalf 5 January 2010 в 20:24
поделиться

11 ответов

Hear what Bruce Eckel { author of the two of the so-called best C++ books } commented on C++ a few weeks ago:

That said, I hardly ever use C++ anymore. When I do, it's either examining legacy code, or to write performance-critical sections, typically as small as possible to be called from other code (my preferred approach is to quickly write an app in Python, then profile it and if necessary improve performance by calling small portions of C++ using Python's ctypes library).

Because I was on the C++ Standards Committee, I saw these decisions being made. They were all extremely carefully considered, far more so than many of the decisions made in Java.

However, as people have rightly pointed out, the resulting language was complicated and painful to use and full of weird rules that I forget as soon as I'm away from it for a little while -- and I figured out those rules from first principles while I wrote books, not just by memorizing them.

Additionally, you should read this thread and Danny Kalev's predictions on C++.

However, the growing complexity of C++ will create pressure towards splitting the language into quasi-official dialects. We can already see this trend today; it will probably intensify in the future.

EDIT:

You should take a look at this discussion, too:

C++ - Anyone else feel like C++ is getting too complicated?

20
ответ дан 30 November 2019 в 10:04
поделиться

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

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

21
ответ дан 30 November 2019 в 10:04
поделиться

Вы не обязаны использовать каждую функцию, предоставляемую языком. Я не использую setjmp / longjmp в C, несмотря на то, что он там есть. Я также не использую каждый аспект коллекций Java.

Если вы думаете, что новые функции сделают вашу доставку кода лучше (быстрее или качественнее, или и то и другое), используйте их. В противном случае игнорируйте их.

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

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

Речь идет не всегда об изучении последних и лучших. Программное обеспечение (по крайней мере, на вашей работе) о доставке продукта. Это можно сделать в COBOL или FORTRAN, если вы

8
ответ дан 30 November 2019 в 10:04
поделиться

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

Поэтому, если вы используете C ++, я чувствую, что изучаю важные части C ++ 0x должно быть управляемой задачей. Помните, что вам не нужно изучать все новые функции, чтобы использовать язык. Некоторые функции в первую очередь добавляются в качестве вспомогательного средства для разработчиков библиотек, например, позволяя реализовать STL более эффективно, но это не должно реально влиять на использование языка конечными пользователями. А некоторые действительно необходимы только в очень редких случаях. Игнорировать эти части языка.

Одна из их заявленных целей с C ++ 0x состоит в том, чтобы избегать его усложнения.

Но кроме этого, нужен ли C ++? Если вы пишете код на других языках, зачем беспокоиться о C ++?

10
ответ дан 30 November 2019 в 10:04
поделиться

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

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

5
ответ дан 30 November 2019 в 10:04
поделиться

Так почему я должен потрудиться узнать это сложный, но исключительно мощный, язык? Я могу сделать 95% моего бизнеса с питоном и соавт. С остальными 5%, я могу иметь дело с простым старым C ++ или C без хлопот.

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

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

Это будет проблемой? Конечно, нет. Вы программист. Вы идете в ногу с последними концепциями программирования в контексте вашего 95% языка, который также со временем меняется. Скорее всего, вы уже хорошо знакомы с концепциями, и вам нужно будет только ознакомиться с его синтаксисом C ++, когда придет время, когда вы должны их использовать.

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

Если вас это не интересует и не касается вашей работы или будущей работы, не беспокойтесь. Что в этом плохого? Ничего.

даже если моя карьера движется в сторону Java или другого языка следующего поколения. Почему? Я хотел бы сказать, потому что это интересует меня больше всего, и потому что я люблю сложность и выразительность всего этого. Скорее всего, потому, что это был мой первый профессиональный язык; Я считаю это своим "родным языком".

Если вас это не интересует и не касается вашей работы или будущей работы, не беспокойтесь. Что в этом плохого? Ничего.

даже если моя карьера движется в сторону Java или другого языка следующего поколения. Почему? Я хотел бы сказать, потому что это интересует меня больше всего, и потому что я люблю сложность и выразительность всего этого. Скорее всего, потому, что это был мой первый профессиональный язык; Я считаю это своим "родным языком".

Если вас это не интересует и не касается вашей работы или будущей работы, не беспокойтесь. Что в этом плохого? Ничего.

5
ответ дан 30 November 2019 в 10:04
поделиться

Хорошие ответы.

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

Мне интересно, как долго мы увидим, как Фортран выпустил лямбда-выражения: -)

2
ответ дан 30 November 2019 в 10:04
поделиться

Сначала попробуйте пройти курс по c ++ 0x и заставить свою фирму заплатить за это :) Наш мозг может вместить удивительное количество ненужных знаний. Вместо того чтобы ругаться и иметь моменты программиста, мы должны сначала учиться у пользователей программы и слушать мнения / ноу-хау других людей. Таким образом, знания передаются намного быстрее.

1
ответ дан 30 November 2019 в 10:04
поделиться

Вам не нужно знать каждый стандарт, который выходит наизусть. Это действительно помогает знать о большой картине все же. 5%, которые вы кодируете, могут заставить вас заново изобретать колесо. В зависимости от того, сколько времени, 5% имеет значение (подумайте Парето), вам нужно принять вызов.

Кроме того, есть какая-то конкретная причина (например, зависимость от устаревшего кода), почему вы не можете переместить эти 5% в python?

1
ответ дан 30 November 2019 в 10:04
поделиться

Мое предложение было бы изучить новые ключевые слова c ++ 0x (&& FTW), но не пытаться учиться вся библиотека Используйте python для нужной вам, возможно C # для приложений, затем используйте C ++ (0x), когда вам нужно что-то мощное. и спросите stackoverflow & google о новом контейнере при создании прототипа.

Вам не нужно использовать несколько выбранных языков,

0
ответ дан 30 November 2019 в 10:04
поделиться

Мне трудно найти хоть один случай, когда C ++ 0x стал более сложным, чем C ++ 98. Есть две вещи, которые на самом деле являются сложными:

  1. Концепции.
  2. Модель памяти

, но первая была снова удалена (к счастью; стандартизация нереализованных функций никогда не работала в C ++, спецификации бросания свидетелей, шаблоны extern, auto_ptr, ...), а второе - не то, от чего современный язык программирования может ускользнуть. Это было вызвано извне Intel & Co, которая услужливо взламывала ваши программы, чтобы они работали быстрее.

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

В качестве примечания: я нахожу это ... забавно ...

3
ответ дан 30 November 2019 в 10:04
поделиться
Другие вопросы по тегам:

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