LINUX.ORG.RU

[C++?] Серьезный вопрос.


3

2

Просьба ответит серьезно, желательно с аргументами за или против.

Предистория:
Когда то давным давно (я тогда еще только закончил 9-ый класс) я увидел в газете объявление о наборе в летнюю группу по изучению классического программирования. В тот момент я был с компьютером на ты и "очень" хорошо в них разбирался (переустанавливал Windows каждый месяц, хаял Microsoft просто потому, что после моих настроек W приходилось постоянно переустанавливать). Группа по классическому программированию так и не набралась, но набралось 1 человек на Visual Basik for Applications. Я соглсился быть вторым и начались занятия.
Все, что мне там объясняли я схватывал быстро. Меня пригласили продолжить обучение в сентябре на курсе "моделирование".
Там уже был Pascal, который я тогда совсем не знал. Сам курс был очень разношорстный: мы изучали и использование мыши через прерывание, готовились к различным олимпиадам. Параллельно я изучил Pascal.
Потом был Delphi. К концу 10-го класса я уже неплохо владел приемами программирования и вовсю клепал бесполезные программулины. Потом поступил в универ на программиста. Там тоже был Delphi, и я особо не напрягаясь писал все лабы (к моменту поступления я уже был знаком с логикой указателей, самописные стеки и графы, etc).
На 2-ом курсе в гостях у знакомого я разобщался с человеком, который уже насколько лет работал в нерезиновой программистом. Он мне и открыл глаза на мир: "Delphi здох. Его уже похоронили и забыли. Сейчас необходимо знание C++, C#. Необходимо занание паттернов проектирование". Вобщем много чего он мне наговорил. Книжек умных насоветовал, подкинул MSVS 2008, кучу электронных книжек. Я изучил C# по книжке Шилдта. Читал "Идеальный кол" (автора уже не помню). Потом купил(!) себе книжку Шилдта про С++. Мне понравился язык. Тем более что мне казалось, что именно он и есть общепринятый стандарт. Наиболее удобный язык для программиста.

А недавно в соседней теме за упоминание это С++ меня чуть было не съели со всем чем можно. Так-то.

Собственно вопрос: Так стоит ли изучать дальше С++ (а я уже достаточно углубился в книжку Страуструпа, подробно изучая все подводные течения)? Какой язык стоит изучать? Какие из них более востребованны?

Спасибо всем, кто осилил это многобукаф.

★★★★★

> Так стоит ли изучать дальше С++

если только для легаси, а так нет

> Какой язык стоит изучать?


пистон, лисп, Ц

> какие из них более востребованны?


все перечисленные

CL-USER
()

Если ты живёшь или можешь переехать в нерезиновск, то учи плюсы, они по прежнему нужны. Во всей остальной стране только 1С.

legolegs ★★★★★
()
Ответ на: комментарий от legolegs

/me всегда сокрушался по поводу стабильно высокого спроса на 1С. программисты на С++ знают больше, а получают меньше.

melkor217 ★★★★★
()

> Собственно вопрос: Так стоит ли изучать дальше С++ (а я уже достаточно углубился в книжку Страуструпа, подробно изучая все подводные течения)? Какой язык стоит изучать? Какие из них более востребованны?

«более востребован» не значит «более прибыльный» или «более интересный». и вообще, всё зависит от области применения: учите аду и уезжайте в штаты (и не только) писать код для сверхнадёжных приборов военного (и не только) применения; учите С и идите работать системным программистом; учите до-мажор или жабку и вперёд к «быдлокодингу»; учите пхп и жабаскрипт и в вебдевелоперы; баш, перл — в сисадмины… и этот список можно продолжать до утра %)

arsi ★★★★★
()
Ответ на: комментарий от melkor217

>программисты на С++ знают больше, а получают меньше.

Каждый из них получает больше. Суммарно наверное да, меньше.

legolegs ★★★★★
()
Ответ на: комментарий от Deleted

>Прикрути к C++ Qt и вперёд.
Собственно уже.

trex6 ★★★★★
() автор топика

Изучать однозначно стоит, но не надо на нём останавливаться. У каждого (ну или почти у каждого) языка есть своя ниша --- та, где его применение позволит добиться цели с наименьшими усилиями. У C++ это приложения, в которых важна скорость работы, объём потребляемой памяти и используется непростая логика, то есть находится применение для шаблонов и классов (в противном случае лучше использовать C). Но надо знать много языков, чтобы правильно подобрать наиболее подходящий для задачи. А ещё можно комбинировать языки, используя разные в разных частях проекта.

anonymous
()
Ответ на: комментарий от lester

>учи Java

Ты еще си-диез предложи. Или паскакаль.

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

anonymous
()

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

ps как тут подметили - русский тоже не мешало бы подтянуть, а то после парочки первых предложений так и просится "простите за неровный почерк"

thevery ★★★★
()

ТС движется в правильном направлении. Basic -> Pascal -> Delphi -> С# -> C++ - это годная эволюция. Заняться на этом этапе жабой все равно, что в питекантропа выродиться. Хождение по граблям плюсов - необходимый опыт. Следующая остановка - OCaml.

anonymous
()
Ответ на: комментарий от anonymous

> ТС движется в правильном направлении. Basic -> Pascal -> Delphi -> С# -> C++ - это годная эволюция.

без asm и C?

П.С. человеку, который прошел курс по "Visual Basik" и не запомнил название языка, таки лучше учить Java чем OCaml, да и работу он себе быстрее найдет

lester ★★★★
()
Ответ на: комментарий от anonymous

>Хождение по граблям плюсов - необходимый опыт.

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

legolegs ★★★★★
()

> "Идеальный кол"
Это чтоб вбивать в могилу императивному программированию?

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

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

svu ★★★★★
()
Ответ на: комментарий от svu

> По теме - не языки надо учить. И не технологии.

Дык, работу то он как найдёт без знания технологий? Спец в конкретной предметной области и программист широкого профиля в одном флаконе - это конечно здорово, но редкость великая на наших просторах. Обычный путь студиоза - зубрёжка какой либо технологии и быстрый старт в быдлокодерской конторе. А дальше уже как пойдёт. Лучше всего конечно вообще с программизмом не связываться - дело то неблагодарное и малодоходное. Но тут уж охота пуще неволи.

anonymous
()

C++ это такой язык... что на нём пишут и гении, и идиоты.

>в соседней теме за упоминание это С++ меня чуть было не съели со всем чем можно

Можно ссылку?

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

yoghurt ★★★★★
()
Ответ на: комментарий от anonymous

> У C++ это приложения, в которых важна скорость работы, объём потребляемой памяти и используется непростая логика, то есть находится применение для шаблонов и классов (в противном случае лучше использовать C).

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

kemm
()
Ответ на: комментарий от yoghurt

> у С++ довольно узкая ниша применения, где использование крестов действительно разумно и целесообразно

Пример?

kemm
()
Ответ на: комментарий от kemm

>Пример?

Поддержка существующего кода бугага^W^W^W^W

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

yoghurt ★★★★★
()
Ответ на: комментарий от yoghurt

> Поддержка существующего кода бугага^W^W^W^W

^W -- это прально... А то какой-то уж больно грустный бугага получается. 8))

kemm
()

Стоит, несмотря на множество недостатков альтернатив C++ пока нет. Точнее есть и называется 'D', но его пока не допилили.

Reset ★★★★★
()
Ответ на: комментарий от Reset

И что из этого является нишей C++ не потому, что кроме C++, C# или жабы основная масса ничего не знает?

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

Веб-сервисы на плюсах? Аднака...

Кодирование видео на плюсах? Аднака... transcode, ffmpeg и mplayer/mencoder все из себя такие плюсовые, с ума сойти...

Игры? Там от плюсов, насколько я знаю, такой огрызок остаётся под названием "С с классами", что от написания критичной по скорости части на чистом С практически ничего не изменится.

kemm
()
Ответ на: комментарий от lester

> без asm и C?

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

mv ★★★★★
()
Ответ на: комментарий от anonymous

> Хождение по граблям плюсов - необходимый опыт. Следующая остановка - OCaml.

У меня при прочтении референса на окамл сложилось противоположное мнение: лучше бы его выучил, а не кресты.

mv ★★★★★
()
Ответ на: комментарий от yoghurt

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

У меня есть знакомый -владелец игрушкописательной конторы. По молодости был ярым крестовиком, всё на крестах ваяли. Но потом сдался, перешли на сишарп, и радуется: скорость разработки увеличилась, дятлов^Wсотрудников проще находить, профита больше. Суровая правда жизни.

mv ★★★★★
()
Ответ на: комментарий от kemm

> Числодробилки прекрасно пишутся на любом языке, частенько уделывая плюсы по скорости.

на любом это каком? фортране чтоль?

> Веб-сервисы на плюсах? Аднака...

ну расскажи это гуглу, яндексу и прочим

> Кодирование видео на плюсах? Аднака... transcode, ffmpeg и mplayer/mencoder все из себя такие плюсовые, с ума сойти...

Кроме них есть еще масса других библиотек в том числе и плюсовых.

> что от написания критичной по скорости части на чистом С практически ничего не изменится.

Добавится гемморой в виде написания ОО на чистом Си и контейнеров на шаблонах. Такой код сложно пишется и плохо поддерживается, а выйгрыша в скорости по сравнению с С++ нет.

Reset ★★★★★
()

>Ветряки, солнечные батареи, прилив-отлив, etc.

Маккнолен вроде. Хорошая книга.

>Так стоит ли изучать дальше С++

стоит.

golodranez ★★★★
()
Ответ на: комментарий от kemm

от написания критичной по скорости части на чистом С практически ничего не изменится.

Абсолютно согласен. Я вот, почитав недавно в очередной раз книжку по С++ подумал: а не перевести ли мне мои самоделки с С на С++ - может, кода поменьше будет.. Начал с одной небольшой программки и понял, что на С++ окажется значительно больше кода.

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

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Reset

>гемморой в виде написания ОО на чистом Си

А это достаточно приятный геморрой :) К слову, одна простенькая реализация ОО на С мне нравится больше, чем дефолтное плюсавое "ОО"

yoghurt ★★★★★
()
Ответ на: комментарий от Reset

> числодробильная,

Ботаники обосновано матлаб, R и математику любят.

> высоконагруженные веб-сервисы,


Высоконагруженные веб-сервисы при появлении бабла неизбежно расползаются на кластер. Если в начале проекта закладываться на успех (иначе зачем вообще начинать?), то нужно предусмотреть масштабируемость архитектуры. Т.е. писать на Эрланге :)

> кодирование видео,


ffmpeg написан на чистом С плюс много ассемблера, гоняющего векторные расширения.

> игры ...


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

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

mv ★★★★★
()
Ответ на: комментарий от mv

> Ботаники обосновано матлаб, R и математику любят.

Это всё годится только для прототипирования. На кластер матлаб не поставишь.

> Высоконагруженные веб-сервисы при появлении бабла неизбежно расползаются на кластер.

Да, а на кластере работает С++. С успешными проектами, реализованными на ерланге я не знаком.

Reset ★★★★★
()
Ответ на: комментарий от Reset

> Это всё годится только для прототипирования. На кластер матлаб не поставишь.

Дооооо.... Пока на своих крестах опишете модель и с болью в заднице растащите вычисление на кластер, ботаник, специально не обучавшийся программированию, за два часа наваяет модель в Симулинке и запустит считаться на Матлаб DCS. В итоге, вы ещё не доделаете свою софтину, а он уже будет знать, что расчётная модель плохая, негодная...

> Да, а на кластере работает С++. С успешными проектами, реализованными на ерланге я не знаком.


Печально. Чтобы понять, почему надо распределённые проекты писать на Эрланге, а не крестах, нужно глянуть на корбу, zero ic, jmi, и т.п., а потом на, собственно, Эрланг.

mv ★★★★★
()
Ответ на: комментарий от Reset

Это всё годится только для прототипирования. На кластер матлаб не поставишь.

Матлабовский прототип далеко не обязательно реализовывать на плюсах.

С успешными проектами, реализованными на ерланге я не знаком.

А как же канонический j.r?

Ximen ★★★★
()
Ответ на: комментарий от mv

> Пока на своих крестах опишете модель и с болью в заднице растащите вычисление на кластер

man mpi

> корбу, zero ic, jmi, и т.п., а потом на, собственно, Эрланг.

бредятина особенно про корбу.

Reset ★★★★★
()
Ответ на: комментарий от Reset

> на любом это каком? фортране чтоль?

На любом -- это на любом. Числодробилки вообще пофиг на чём писать.

> ну расскажи это гуглу, яндексу и прочим

И много там веб-сервисов на C++? Вот чисто на C++?

> Кроме них есть еще масса других библиотек в том числе и плюсовых.

Не-не-не, если это -- ниша C++, то библиотек чисто плюсовых должно быть большинство. Реквестирую список.

> Добавится гемморой в виде написания ОО на чистом Си и контейнеров на шаблонах. Такой код сложно пишется и плохо поддерживается, а выйгрыша в скорости по сравнению с С++ нет.

Такой быстрый код уже много лет написан, поддерживается не сложнее самопальных контейнеров, как минимум не медленнее их и значительно быстрее stl. А ОО -- это вообще такой buzz-word.

kemm
()
Ответ на: комментарий от Reset

> man mpi

Я и говорю: с болью в заднице. Ещё boost::mpi вспомните для типизированных вычислений (чтобы, типа, коров на атмосферы поделить нельзя было). Для физиков и инженеров есть более подходящие решения, чем кресты.

> бредятина особенно про корбу.


Если бредятина, то почему зеровский айс не бредятина? ;) И вообще, расшифровка ORB и прочтение документации как бе намекает, откуда уши растут. ORB-like фреймворки для распределённых систем - это ещё одна большая боль в заднице,

mv ★★★★★
()
Ответ на: комментарий от mv

ботаник, специально не обучавшийся программированию, за два часа наваяет модель в Симулинке и запустит считаться на Матлаб DCS

Если ему кто-нибудь этот матлаб купит :)

А пиратский матлаб, знаете-ли, по стоимости >50000р., т.е. на уголовщину тянет.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Это что-то странное, кстати... На C++ получается несколько меньше кода за счёт большей тормознутости и неуправляемости.

kemm
()
Ответ на: комментарий от kemm

> На любом -- это на любом. Числодробилки вообще пофиг на чём писать.

4.2

> И много там веб-сервисов на C++? Вот чисто на C++?

При чем тут "чисто на С++" ? универсального языка не существует.

> как минимум не медленнее их и значительно быстрее stl.

Только после написания своих аллокаторов, что добавляет геммороя. Еще stl это не только контейнеры.

Reset ★★★★★
()
Ответ на: комментарий от Eddy_Em

> Если ему кто-нибудь этот матлаб купит :) А пиратский матлаб, знаете-ли, по стоимости >50000р., т.е. на уголовщину тянет.

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

mv ★★★★★
()
Ответ на: комментарий от Reset

> С болью в заднице это водружать матлаб на кластер.

Есть негативный опыт?

mv ★★★★★
()
Ответ на: комментарий от Reset

> 4.2

4.2

> При чем тут "чисто на С++" ? универсального языка не существует.

Хорошо, продолжим. Что именно там написано на C++?

> Только после написания своих аллокаторов, что добавляет геммороя. Еще stl это не только контейнеры.

Ну надо же. Кто в геймдеве пользуется stl? Потому что тормоз, потому что с большим ассортиментом детских (детских -- не потому, что простых, а потому, что по яйцам бьют) подводных граблей.

kemm
()

>Собственно вопрос: Так стоит ли изучать дальше С++ ...

Определись в целях изучения:

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

2.Для решения определенных задач. Выбирай инструменты под задачу, их и изучай.

3. Для общего развития, "for fun". C++ не стоит изучать ОДНОЗНАЧНО.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.