Языки программированияЕсть ли будущее у C++ ?

Проголосовало: 45 | Воздержалось: 6

Совсем недавно был принят стандарт C++11. Многие я думаю слышали эту новость В комментариях хотелось бы услышать (желательно по крайней мере) грамотные мысли, без холивара. Я сейчас в плане, так сказать "скиллов по плюсам", нахожусь на уровне выше начального уровня. Мне, и надеюсь многим читателям, интересно: что вообще дальше будет с этим великим, не побоюсь таких фраз, языком. Стоит ли дальше, углубляться, прокачивать себя.
  • +1
  • Goran
  • 31 августа 2011, 12:31

Комментарии (38)

  • avatar
  • LRN
  • 31 августа 2011, 12:44
  • #
  • 0
От последнего варианта ответа меня удержала только фраза «Будущее точно не за нативным программированием». С чего бы это?
это не моё утверждение, а просто как один из вариантов ответа. Напишите Ваше мнение — мне оно интересно!
Наше мнение — C++ слишком сложен. С другой стороны, Мы не являемся многоопытным программистом на C++. Однако то, что Мы видим, глядя на написанные на C++ проекты, Нам не нравится.
Также Мы считаем, что нативная компиляция жила, жива, и будет жить. Ибо Джава не тормозит.
  • avatar
  • Vass
  • 31 августа 2011, 13:08
  • #
  • 1
Почему то, люди которые говорят про то, что С++ мертв или подыхает, не видят дальше своего носа,
да для сегмента быдлосайтиков и говноокошечек С++ вероятно не будет актуальным языком, но на чем вы собираетесь продолжать разрабатывать
высокопроизводительные системы, компиляторы и ваши любимые побрякушки, не уж то на Java? а может на .NET, ой точно на Ruby — три раза Ха!
Т.е. получается Java and .NET сегмент — это корпоративные приложения с кучей окошечек + веб-приложения.
C++ — GameDev, Компиляторы…
Именно, для веба еще припомним прочие Ruby и Python.
ну а для Java припомним Android, хотя это будет не честно, ибо native для Android сейчас получает развитие, а это как раз C++.

Кстати пока есть Qt и GTK, С++ и С не уйдут и с прикладушного рынка.
с Qt очень многое непонятно. Здесь писали уже про это.
На GTK+ я писал… ну в принципе нормально, но он уступает и WPF и Swing я думаю.
Да счас ни с чем ничего не понятно, вон оракл отозвал лицензию и баста. Можно теперь гадать что будет с Java
Так он отозвал лицензию на распространение своей проприетарной версии. OpenJDK под GPL и никуда не денется. А отсутствие доступности оракловой Java только подтолкнёт развитие свободной реализации.
«на чем вы собираетесь продолжать разрабатывать высокопроизводительные системы, компиляторы и ваши любимые побрякушки»
Все это продукт прямых рук, что не имеет никакого отношения к поросшему мхом и лишайником C++. Компилируемые языки одним C++ не ограничиваются. А то, что в итоге приложение на C++ может получиться немного более производительным, чем на каком-то другом языке, обычно связано с недостаточной оптимизацией в компиляторах этих языков (из-за их «молодости» или лени компаний разработчиков).
Хотелось бы видеть нативный кроссплатформенный C#/Java, а новый стандарт как раз C++ к этому и приближает.
  • avatar
  • fog
  • 31 августа 2011, 14:08
  • #
  • 2
У C++ безусловно есть будущее, но оно в системном ПО и различных сложных приложениях. Эта ниша никуда не денется и программисты будут зарабатывать в ней очень хорошо. Хотя на фоне «попсы», типа web, мобильных приложений и заказной разработки, где нужно писать быстро, много и чтобы был результат красивый (окошечки, кнопочки и т.п.) количество срок кода, написанного на c/c++ будет снижаться. (Кстати, я где-то слышал, что сегодня наиболее высокооплачиваемые программисты это те, кто знает «мертвые» языки.)
например Cobol :)
например Cobol :) на хабре писали про это
а какие например сложные приложения?
Инженерное ПО (где нужна прозрачность алгоритмов), системы управления (где нужна надёжность), встраиваемое ПО (где важен размер) и т.п. системы, на написании которых лучше не экономить. :-)
Инженерное ПО (где нужна прозрачность алгоритмов)

Haskell (если речь идёт о вычислительных алгоритмах)
системы управления (где нужна надёжность)

Erlang
встраиваемое ПО (где важен размер)

Любой нативно-компилируемый язык, для которого есть gcc фронтэнд (и таким образом можно выполнить оптимизацию по размеру) — C/ObjC/ObjC++/Go/Fortran, не считая C++
Если речь идёт о размере рантайма, то это уже другой вопрос, на который я в данный момент затрудняюсь ответить точно (нет данных по размеру рантайм-либ для разных языков).
я вообще заметил, что многие начали изучать Haskell. Реально ли это стоит того? Я не специалист в этой области, но мне почему-то кажется, что то, кто будет знать Haskell лет года через 2-3 будут в топе и в цене. Просто что-то внутри подсказывает. Я прав? :)
Просто вернулась мода на функциональные языки. Об их преимуществах и недостатках, читай в Вики-педии и на Лурке
ну это слишком так сказать официальные источники, а Лурка — это сами знаете что. Меня больше всё-таки интересуют тенденции рынки, мнения гуру… Людей, которые понимают и видят что реально будет в ближайшем хотя бы будущем.
При чём тут гуру? К тебе, как к специалисту, приходит клиент/начальник и говорит: «Хочу X, чтобы был Y и Z». Ты смотришь, какие инструменты в твоём распоряжении наилучшим образом подходят для X, при этом подходя под условия Y и Z — и используешь их.
При чём тут прогнозы будущего и гуру?

Вообще, могу сказать одну вещь: в будущем будут более (не исключительно; просто более, чем сейчас) востребованы средства разработки хорошо параллелящихся программ, ибо кол-во вычислительных ядер у процессоров растёт (а ещё есть потоковые графические процессоры, которые заточены под параллелизм).
Согласен. Многопоточность и проблема распараллеливания — очень непростые темы в программировании, вот хочу в ближайшее время их хорошенько рассмотреть. Например thread в boost и многопоточность в Java
Неправильный ответ.
Правильных ответов два:
1) Хочу в ближайшее время рассмотреть хорошо параллелящиеся алгоритмы.
Это тебе к математикам и информатикам надо обращаться. Ещё нейронные сети в этом плане хороши.
2) Хочу в ближайшее время рассмотреть язык, созданный для лёгкого написания императивно-объектных программ с параллельными вычислениями, а также функциональные языки, которые все как один хорошо параллелятся.

Рассмотрение всех остальных методов многопоточности сводится к познанию мьютэксов и семафоров (этим можно было ещё на C заниматься), а также queue'ов (во всех остальных языках, а также в надстройках над C). Ну, ещё coroutines, но они по-моему сейчас редко встречаются.
пусть будет так :) вы всё верно в прицнипе разложили по полочкам
Признаться, для меня быстрее и проще написать что-то на C++, чем на одном из этих громоздких интерпретируемых языков :)
Смотря что писать. Некоторые вещи на том же python (интерпретируемый язык) пишутся ой как быстро и безопаснее получается.
С semiletov'ым нет смысла обсуждать такие вещи, поверь.
В далёком (а может быть и не очень) будущем будут только блоки и схемы :) тут потянул, там соединил, тут задал параметр и всё заработало. Всем будет всё равно какой язык в основе (но сдаётся мне, что там будет С (именно С, а не ++)).
ну до этого еще долго имхо :) пока рано об этом думать. Хотя в промышенности например есть очень высокоуровневые языки которые как позволяют то, что вы описали и есть средства разработки для них. Например вот.
Ну почему далеко? ДРАКОН ru.wikipedia.org/wiki/ДРАКОН_(язык_программирования) ещё в 80-х годах сделали…
Сделали, да. И где он теперь?
В языках web можно схему интерпретировать в код и сделать классы. Да и сам C++ кнопко-ориентирован. Тут, наверно, стоит говорить не о том есть ли будущее у С++, а о том, какой язык быстрее станет полноценно объектно-ориентированным. Потому что у всех языков есть свои последователи и все эти языки по-своему хороши. Всё зависит от того, с чем работает специалист :)
Да и сам C++ кнопко-ориентирован

это как? поясните пожалуйста…

C# и Java — вполне ОО-языки. Разве не так?
это как? поясните пожалуйста…

В визуальной студии можно делать ОО-формы. Перетащил один элемент, второй, дописал код и форма готова. Поэтому и сказала «кнопко-ориентированный». Это ведь и есть попытка сделать элементы более доступными для понимания и визуализации.
Не путайте, пожалуйста, язык и среду программирования. В самом C++ нет абсолютно никаких средств для построения графических интерфейсов. Такую же графическую среду, как студия, можно сделать практически для любого ОО-языка.
Извини, не подумала об этом когда писала :)… Я сама на php программирую, а С++ именно в визуальной студии смотрела и, честно говоря, не впечатлилась на глубокое изучение :)
Нет «полноценной объектной ориентации», есть разные стили её реализации, с разными фичами и с разной расстановкой акцентов.

C++ не кнопко-ориентирован. Просто разработка GUI — это одна из областей (помимо моделирования, других областей я сходу не назову) где применение ООП оправдано на 100%, поэтому примеры из этой области так и напрашиваются.
Не думаю, что графические схемы когда-нибудь замянят традиционные ЯП. Где вы сегодня такой подход видели? При лепке GUI, в моделировании электронных схем, а где ещё?

Скажем, UML и ему подобные — это не замена языкам программирования, а лишь дополнение. Да и то, подавляющее большинство программистов считает (и не безосновательно), что дополнение это бесполезно.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.