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# по книжке Шилдта. Читал "Идеальный кол" (автора уже не помню). Потом купил(!) себе книжку Шилдта про С++. Мне понравился язык. Тем более что мне казалось, что именно он и есть общепринятый стандарт. Наиболее удобный язык для программиста.

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

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

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

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

Ну не макросы же? Если сможешь сделать generic функции без темплейтов, то пожалуйста. Ах да, еще безгемморойная линковка с фортрановскими либами обязательна.

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

> Вот, как и предыдущие твои посты в треде, аргументация свелась к стилю "сам дурак".

Отмотка по треду, специально для тебя со скидкой, 5 у.е./сообщение. Там будет видно, кто тут так любит аргументировать. Я начниаю верить во вред глянцевых экранов...

> Ага. А это что?

Это -- празное любопытство, я это уже писал. У меня есть, скажем, примеры веб-сервисов на чистом православном С -- я ж не говорю, что это ниша чистого С?

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

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

> Алсо критерий нишы языка тоже в студию

Язык наилучшим образом среди всех других (и их сочетаний) подходит для решения некоторого ряда задач.

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

и идеальных языков на все случае жизни нет

Зато есть языки негодные ни на что. В том смысле, что всегда есть лучшая альтернатива.

аналоги Qt и wxWidgets

В смысле, почему они на плюсах, а не на, скажем, питоне?

И да. Qt и wxWidgets даже друг другу не аналоги...

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

>Не специалист я в этом, но верится с трудом...
К сожаленияю это так.
>А сегфолт простят ?
Это не того уровня софт и стоимости чтобы там были сегфолты :)
(Заранее исключаем поделки за 2-3штуки зелени...)
Просто не забывайте что это именно программно - аппаратный комплекс.
И без знания с/с++ не канает :)

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

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

Отлично, пусть такое эффективное перемножение делают разработчики инструментов. Зачем пользователю инструмента этим заморачиваться? Матлаб, вроде, на яве написан, но людей этот факт не волнует - они на матлабовском языке считают, а не на яве.

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

> В смысле, почему они на плюсах, а не на, скажем, питоне?

да

> И да. Qt и wxWidgets даже друг другу не аналоги...


не шути так

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

Это не того уровня софт и стоимости чтобы там были сегфолты :)

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

И без знания с/с++ не канает :)

Ну так и почему же там С++-то, а не С, скажем? Я вот чего в толк никак не возьму...

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

Ну тогда навскидку предложу Haskell, вроде бы там всё вышеперечисленное имеется в ассортименте (кроме костылей^Wтемплейтов в С++-стиле). Хотя стиль мышления, угаданный выше, доставляет, да. 8))

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

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

clr + wpf? jvm + чтотамуних? Я вот лично в clojure (лиспоподобное для жвм) окошко в линуксе выводил. По-моему, просто отлично, что левый язык может спокойно пользовать инфраструктуру.

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

да

Хм... Интересный вопрос. А какой-нибудь Gtk за аналог не катит, не?

не шути так

Надеюсь, я правильно это понял)

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

Вычислительную линейную алгебру на хаскеле писать это всё равно что дрочить вприсядку. Ну и простая линковка со сторонними либами опять же сомнительна. Биндинги к mpi, openmp ?

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

> Это не того уровня софт и стоимости чтобы там были сегфолты :)

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

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

> clr + wpf? jvm + чтотамуних? Я вот лично в clojure (лиспоподобное для жвм) окошко в линуксе выводил.

еще один шутник

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

> еще один шутник

Контраргументация будет, почему сишарп с впф не годится для написания формочек?

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

> А какой-нибудь Gtk за аналог не катит, не?

доо - gtk в Mac OS X ну просто идеально интегрирован

> Надеюсь, я правильно это понял)


сомневаюсь

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

доо - gtk в Mac OS X ну просто идеально интегрирован

И, наверное, из-за того, что он не на плюсах. Ведь так? Только тулкиты на плюсах интегрируются нормально, видимо... М-да..

сомневаюсь

Перефразирую. Нельзя ставить в один ряд Qt и Wx.

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

> И, наверное, из-за того, что он не на плюсах. Ведь так?

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

> Перефразирую. Нельзя ставить в один ряд Qt и Wx.


это еще почему? если я захочу наделать "формочек" (с) - то почему Qt и Wx вдруг нельзя ставить в один ряд?

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

>Ну тогда стоило бы подумать об изначально более надежных языках...
Вперед с шашками наголо :) У вас есть шанс исправить ситуацию.
Я серьезно.

>Ну так и почему же там С++-то, а не С, скажем?
В равной степени и то и то есть. Я не фанатик. Но исторически сложилось что на С++ все таки уровень абстракции лучше и поддержка кода проще.

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

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

Так и я о чем. Плюсы же! Они - залог нормальной интеграции! Не смеши, я ж на работе...

это еще почему? если я захочу наделать «формочек» (с) - то почему Qt и Wx вдруг нельзя ставить в один ряд?

Потому что, если я захочу сваять, к примеру, HTTP-сервер, то Wx мне не поможет. Ну никак. В отличие от. Qt уже очень давно не просто GUI-тулкит. Ну это я так. Вдруг ты не в курсе...

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

> Вычислительную линейную алгебру на хаскеле писать это всё равно что дрочить вприсядку.

Что именно мешает?

> Ну и простая линковка со сторонними либами опять же сомнительна.

С чего бы?

> Биндинги к mpi, openmp ?

http://www.haskell.org/haskellwiki/Applications_and_libraries/Concurrency_and...

Вообще, разговор чем-то напоминает "где в мопеде педаи, которые можно крутить?"

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

Вперед с шашками наголо :) У вас есть шанс исправить ситуацию.

Это вряд ли. :( Я уже говорил, что не спец в этой области - раз. И занят уже исправлением другой ситуации - два.

В равной степени и то и то есть.

Ну вот. Можно и на С. А с сишными либами можно что угодно пользовать. Для улучшения абстракций. Есть же более высокоуровневые языки, чем С++, значит поддерживать будет ещё проще.

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

> Так и я о чем. Плюсы же! Они - залог нормальной интеграции! Не смеши, я ж на работе...

давай список аналогов или перестань писать глупости

> Потому что, если я захочу сваять, к примеру, HTTP-сервер, то Wx мне не поможет. Ну никак.


"если я захочу наделать "формочек" (с) - то почему Qt и Wx вдруг нельзя ставить в один ряд?" - вдумчиво читай и попробуй найти слова про HTTP-сервер

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

> это вот нормальная интеграция?

Что я там должен был увидеть?

Дотнет - это платформа для вендов. Благосклонность руководства мс к педерасту Мигелю ещё не значит, что дотнет существует везде, где можно собрать моно.

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

давай список аналогов или перестань писать глупости

Не дам. Ибо работал всего с 3-4 тулкитами и за остальные мало что знаю. Я просто пытаюсь найти логику между С++ и интеграцией.

вдумчиво читай и попробуй найти слова про HTTP-сервер

Конечно его там не было, не тупи. Но то, что Wx умеет 0.2 от Qt не делает их аналогами. Или, скажем, Nero аналог cdrecord?

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

> Дотнет - это платформа для вендов

здорово конечно, а не напомнишь мне, что я спрашивал в первом посте в этой теме?

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

> здорово конечно, а не напомнишь мне, что я спрашивал в первом посте в этой теме?

Спрашивал, на чём можно нарисовать формочку, чтобы она везде одинаково выглядела. Очевидно, qt тут тебе не поможет, ибо поддерживает всего 3.5 самых попсовых платформы, да и на них неодинаково отображается.

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

> Не дам.

отожбо

> Я просто пытаюсь найти логику между С++ и интеграцией.


вот и мне интересно - почему на других таких классных языках таковой не имеется

> Конечно его там не было, не тупи. Но то, что Wx умеет 0.2 от Qt не делает их аналогами.


мог бы написать 0.01 - выглядело бы еще внушительнее

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

> Очевидно, qt тут тебе не поможет, ибо поддерживает всего 3.5 самых попсовых платформы, да и на них неодинаково отображается.

на данные момент такая ситуация, что 3.5 - уже хорошо, насчет "неодинаково отображается" - дык и не должно, в винде должно быть "вендово", в мак ос - "макосно" и т.д.

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

> Что именно мешает?

не ложатся эти алгоритмы на функциональную парадигму

> С чего бы?

Откуда я знаю, я на нем не писал. Но как показывает практика если язык не Си не Си++ и не Ди, то с сишными и фортрановскими либами там задница.

> http://www.haskell.org/haskellwiki/Applications_and_libraries/Concurrency_and.. .

вместо этой портянки с непонятным списком либ лучше бы конкретный пример дал - как умножить матрицу на вектор на 4х ядернике.

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

вот и мне интересно - почему на других таких классных языках таковой не имеется

То есть из того, что тот же Gtk где-то не такой, как должен, ты делаешь вывод, что плюсы незаменимы для кроссплатформенных виджетотулкитов? Удивил.

мог бы написать 0.01 - выглядело бы еще внушительнее

Это меньше похоже на правду. GUI в Qt всё-таки значительную часть занимает. Может, даже 0.3-0.4 больше похоже на правду... Сути дела это не меняет.

Ximen ★★★★
()

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

И ты видимо создал эту тему только для того, чтобы тут тебя сожрали наверняка?

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

> То есть из того, что тот же Gtk где-то не такой, как должен

ты сам ответил на свой вопрос

> Это меньше похоже на правду. GUI в Qt всё-таки значительную часть занимает. Может, даже 0.3-0.4 больше похоже на правду...


а может даже 1.0 больше похоже на правду ;) - в wx тоже есть фишки, которых нет в Qt

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

ты сам ответил на свой вопрос

То есть из недоработки конкретной либы ты делаешь вывод, что проблемы в языке? Ууу... Пардон, ошибся, думал адекват...

а может даже 1.0 больше похоже на правду ;) - в wx тоже есть фишки, которых нет в Qt

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

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

> То есть из недоработки конкретной либы ты делаешь вывод, что проблемы в языке? Ууу... Пардон, ошибся, думал адекват...

это п%здец... где я писал про проблемы в языке?! еще раз, я спрашивал - есть ли аналоги и если нет то почему, то что ты решил, что проблемы в языке, раз нет аналогов, - это твой вывод, а не мой

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


ну, например, PropertyGrid - есть ли аналог в Qt?

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

>Естесственно, что на плюсах критические части.

наводящий вопрос: какие именно критические части и почему они написаны на плюсах? В том же линкедыне на крестах только кэш, вернее его часть.

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

>1. Отсутствие инструментов для работы с видео/аудио к другим языкам.

хм, что-то мне подсказывает, что всякие маковские файналкаты с лоджиками не на крестах, а на Obj-C написаны...

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

>аналоги Qt и wxWidgets с такой же интеграцией в целевых ОС, если вы скажете - что это всего-лишь библиотеки, подскажите аналоги на других языках или обоснуйте почему таковых нет

Java+SWT, не?
Ну, или если уж так хочется кутей, то Qt Jambi никто не отменял.

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

это п%здец... где я писал про проблемы в языке?!

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

PropertyGrid

На сколько я понял - это один из гуёвых классов. Если так, то мимо кассы. Qt же кроме гуя дофига умеет. Говорю ж - GUI это меньше половины Qt.

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

> Ну как сказать... Есть такое поняите, как контекст беседы.

мне казалось, что я четко задал вопрос

> Если так, то мимо кассы. Qt же кроме гуя дофига умеет


для тебя будет сюрпризом - но wx тоже

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

> Java+SWT, не?

спасибо, проблевался

> Ну, или если уж так хочется кутей, то Qt Jambi никто не отменял.


это не аналог Qt на другом языке

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

мне казалось, что я четко задал вопрос

Да, вполне. Просто я себе позволил вольность интерпретировать его исходя из контекста.

для тебя будет сюрпризом - но wx тоже

Сказал бы ты это вторым постом... Был не прав, вопрос закрыт.

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

> вы просили аналог - вы его получили, в чём проблема-то?

в том, что этот аналог ну очень тормозной и даже на 0.2 от возможностей того же Qt не тянет (с)

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

>в том, что этот аналог ну очень тормозной

бенчмарки в студию

>и даже на 0.2 от возможностей того же Qt не тянет (с)


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

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

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


дотнет не ?
Я думаю Qt - заслуга разработчиков а не языка(c++), пришлось изобретать вещи которые в других языках из коробки(moc)

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

> бенчмарки в студию

пример сложного GUI c SWT, который не тормозит - в студию, а то мне такой не попадался

> конкретнее, пожалуйста, а мы уж постараемся предложить вам либу


ну вот недавно была задача сделать предпросмотр HTML( с css и т.д. ) + экспортировать результат в картинку, PDF, svg etc.

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

>хм, что-то мне подсказывает, что всякие маковские файналкаты с лоджиками не на крестах, а на Obj-C написаны...

Ну и почему не на С ??? :)
Obj-C это наш ответ Чемберлену :)
Есть свои плюсы и минусы, но он так же далек от обычного С(хотя и полностью совместим с ним) как и C++.

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

> ну вот недавно была задача сделать предпросмотр HTML( с css и т.д. )

xul

> + экспортировать результат в картинку,


lib<форматкартинки>

> PDF,


poppler

> svg etc.


librsvg

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

ну то что на С куча библиотек - все знают, а как же, например, lisp( не привязки, а полноценная реализация ) ;)

П.С. и насчет удобства - на С++ с помощью Qt такая задача решается парой десятков строчек, то что вы предложили - потребует кучу времени, чтоб скормить результат от XUL тем же poppler, librsvg и т.д., где же то самое удобство про которое кричат противники С++?

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