Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.83
PlutDem
2 / 2 / 0
Регистрация: 23.02.2012
Сообщений: 186
#1

Пересесть с языков высокого уровня на С++ - C++

20.03.2014, 03:07. Просмотров 2225. Ответов 41
Метки нет (Все метки)

Здравствуйте, я ActionScript3 разработчик и в данный момент рассматриваю возможность пересесть на с++ для возможности вести разработку под платформы написанные на этом языке. Я слышал, что с++ неимоверно сложный язык и его нормально не освоить даже за 10 лет. А если планируется использовать его для прикладного программирования несложной бизнес логики? Может и не так страшен черт как его малюют?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2014, 03:07     Пересесть с языков высокого уровня на С++
Посмотрите здесь:
Написание пакетной утилиты ДОС средствами языка высокого уровня C++
Определить самого высокого человека в группе C++
C++ Найти рост самого высокого участника гоночной команды
C++ С++ Программа на Одномерный массив (определить самого высокого мужчину и женщину)
Функции над полями структуры - Поиск самого высокого студента C++
C++ Опишите функцию Lower(G), определяющую фамилию и имя самого высокого мужчины из списка
C++ О целях c++ и других языков
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Fene4ka_
89 / 89 / 16
Регистрация: 24.01.2014
Сообщений: 1,215
20.03.2014, 03:35     Пересесть с языков высокого уровня на С++ #2
PlutDem, чтобы не говорили, плюсы не очень сложны в освоении, просто там много всего есть
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,537
21.03.2014, 19:32     Пересесть с языков высокого уровня на С++ #3
PlutDem, странно разсуждаете =)
Цитата Сообщение от PlutDem Посмотреть сообщение
с языков высокого уровня на С++
А С++ не язык высокого уровня? =)

Сам по себе С++ - он как бэйсик или паскаль, да и вообще у всех языков принцип один. Другое дело вы говорите что:
Цитата Сообщение от PlutDem Посмотреть сообщение
для прикладного программирования
Тут наверно нужны обширные знания, хотя я не очень понимаю что значит вообще "прикладное" =)

Чтоб освоить Си, достаточно купить пару книжек, например одну начального уровня типа "С/С++ в задачах и примерах" так сказать для наглядности реализации, и вторую по сложнее типа "Программирование на языке высокого уровня С/С++"(а вообще список литературы есть в шапке раздела С++).. А дальше уже по задачам гуглить, тут уж зависит от того какие библиотеки нужны, под какие платформы и задачи. И почему actionscript не подходит?(не знаком с ним, не знаю вообще зачем нужны другие языки кроме Си, по мне так Си - это идеал, как жена или машина^^)
Сами основы Си - просты, тем более что ты уже знаеш что такое программирование, а дальше уже синтаксис библиотек и других причендалов нужны будут - ну тут уж "дорогу осилит идущий" =)
just_freelance
61 / 37 / 9
Регистрация: 15.03.2014
Сообщений: 315
21.03.2014, 19:36     Пересесть с языков высокого уровня на С++ #4
Я знал людей, которые утверждали, что выучили С++ за 2 дня. А если серьёзно, при наличии и работе математического апарата и логического мышления, на базовом уровне ("с интернетом могу всё") осваивается максимум за месяц, тем более, если был уже опыт программирования.
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,537
21.03.2014, 19:59     Пересесть с языков высокого уровня на С++ #5
just_freelance, основы языка - да. Классы и векторы - нет. Специфичные библиотеки типа WinAPi и DirectX - тоже нет, придётся пол года как минимум потратить чтоб научиться.(хотя думаю что мало)
А по поводу:
Цитата Сообщение от just_freelance Посмотреть сообщение
при наличии и работе математического апарата и логического мышления, на базовом уровне ("с интернетом могу всё")
Абсолютно согласен, мозг - основа)
just_freelance
61 / 37 / 9
Регистрация: 15.03.2014
Сообщений: 315
21.03.2014, 20:04     Пересесть с языков высокого уровня на С++ #6
Цитата Сообщение от Izual Посмотреть сообщение
Классы и векторы - нет
С++ без ООП совершенно немыслим, чего нельзя сказать об STL (который, вообще говоря, всё же является крайне важной составляющей). Но я уверен, основательно понять концепцию и того, и другого за месяц — полностью реально.
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,537
21.03.2014, 20:16     Пересесть с языков высокого уровня на С++ #7
just_freelance, просто понять может да.. А вот из за проблематично сложного синтаксиса - не реально использовать так же быстро. А вообще лично я вот думаю что нафиг эти шаблоны. Уже раз 10 слышал что векторы - опасно(к чему бы люди такое пишут, возможно стоит задуматься, тем более что ежели проэкты бывают очень серьёзными, то не стоит полагаться на шаблон, который может давать сбой, проще самому написать на основе структур собственный, но он уже будет куда надёжнее и понятнее прям изнутри)
DrOffset
6909 / 4102 / 933
Регистрация: 30.01.2014
Сообщений: 6,893
21.03.2014, 23:18     Пересесть с языков высокого уровня на С++ #8
Цитата Сообщение от Izual Посмотреть сообщение
Уже раз 10 слышал что векторы - опасно
Опасно ножом хлеб резать, можно пальцы отхватить.
Инструмент рабочий надо знать. Про ограничения надо знать. И все будет нормально.

Цитата Сообщение от Izual Посмотреть сообщение
проще самому написать на основе структур собственный, но он уже будет куда надёжнее и понятнее прям изнутри
Только для написавшего. Самописные вещи всегда страдают из-за отсутствия полноценного тестирования, полноценной спецификации, описаний, примеров, а также, зачастую, отсутствием единой архитектурной идеи. Такие решения подвержены "деградации" в случае, если написавший это человек уходит из компании. Все это крайне затрудняет сопровождение такого кода. Я миллион раз наблюдал такое.

И я не говорю, что нельзя писать свое - можно! Но только после тщательного анализа существующих решений, оценки рисков и вменяемого проектирования. Очень многие внутрипроектные решения, при применении этого подхода, выросли в полноценные инструменты и были выложены в открытый доступ. Взять хотя бы вот это (к слову, там используются векторы из STD, и ничего, живут как-то).

Добавлено через 11 минут
Цитата Сообщение от just_freelance Посмотреть сообщение
Я знал людей, которые утверждали, что выучили С++ за 2 дня.
Ну ведь это смотря что понимать под словом "выучил"
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,537
22.03.2014, 00:32     Пересесть с языков высокого уровня на С++ #9
Цитата Сообщение от DrOffset Посмотреть сообщение
Инструмент рабочий надо знать. Про ограничения надо знать.
Ну это как сравнивать калаш и мп. Один в воде не горит и в море не тонет, а второй - вот следи за ним, береги как зеницу ока и не дай бог на него пылинка упадёт)

Цитата Сообщение от DrOffset Посмотреть сообщение
архитектурной идеи
Именно это ключ!

Не по теме:

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


Цитата Сообщение от DrOffset Посмотреть сообщение
страдают из-за отсутствия ...
Подход значит в корне не правильный, т.к. ежели уж проэкт такого масштаба создаётся - то он должен быть полность отлаживаемый - с проверкой на ошибки(в каждой процедуре!), с полным логированием и бэкапом и другими полезностями в плоть до авто определения ошибки по номеру(через GetLastError)...
Цитата Сообщение от DrOffset Посмотреть сообщение
человек уходит
Сразу вспомнилась фраза из фильма Generation П: "Да потому, что ниточки исчезают, но шарик-то остаётся!" Смысл в том что, идея то остаётся и открытый код. Вот с правильно написанным кодом - сел увидил - починил. А с классами и векторами - ага, щяс "догонят и ещё дадут"))) Сиди года два разбирайся как там кто что намалевал..

В общем тут упирается всё опять же в "Мозг - инструкция для чайников") Блин это сравнение конешно на столько эпично, что странно как же бог не сделал такой книжки)))
DrOffset
6909 / 4102 / 933
Регистрация: 30.01.2014
Сообщений: 6,893
22.03.2014, 01:07     Пересесть с языков высокого уровня на С++ #10
Цитата Сообщение от Izual Посмотреть сообщение
ежели уж проэкт такого масштаба создаётся - то он должен быть полность отлаживаемый - с проверкой на ошибки(в каждой процедуре!)
В теории. И даже на первых парах возможно так и будет. Чем дольше проект живет, тем больше в нем накапливается изъянов. В конце концов наступает такая ситуация, что проще написать новую реализацию, чем отрефакторить старую и все через какое-то время повторяется снова. Взгляни подробнее на развитие крупных проектов и убедишься (хотя бы на примере os windows).
В конце концов, как бы идеально не был написан код, с определенной долей вероятности он будет содержать ошибки. Мы понижаем цену ошибки, если используем уже отлаженный инструмент. И повышаем, если пишем свой. Это происходит в любом случае, в силу особенностей человеческой природы, где а) мышление человека несовершенно и б) в команде не может быть абсолютно идентично мыслящих людей. Стандарты создаются в том числе и для того, чтобы минимизировать эти проблемы. Мы имеем стандартный инструмент, понижаем общую сложность проекта, т.к. документация, примеры и подходы общеизвестны.

Цитата Сообщение от Izual Посмотреть сообщение
А с классами и векторами - ага, щяс "догонят и ещё дадут"
Это заблуждение, причем лично твое. И важно тут не наличие вектора или другого инструмента, а умения с ним работать. Любой С++ программист должен уметь работать со стандартной библиотекой. Даже если он сам по объективным (твоя причина к сожалению к ним не относится) причинам ее не использует, то хотя бы для того, чтобы понимать других разработчиков.
Примером объективной причины может являться, например, ограничение аппаратной платформы. Или политика компании в отношении какого-либо инструмента. Например в Google их code guideline запрещает использовать исключения (exceptions).
Понимая работу стандартной библиотеки и других общепринятых инструментов, уже можно будет делать вывод о применимости их в конкретной ситуации. Применимость определяется задачей.

Добавлено через 13 минут
Цитата Сообщение от Izual Посмотреть сообщение
Вот с правильно написанным кодом
Добавлю конкретно к этому: к сожалению, общем случае, нет никаких гарантий, что это будет так. Даже в большом проекте. На самом деле это даже более вероятно именно в большом проекте. Т.к. такие проекты гораздо сложнее контролировать в отношении качества. Поэтому задача разработчиков минимизировать сложность, а не создавать ее дополнительно. Минимизировать можно двумя путями, повышая время на проектирование, разработку и тестирование, стремясь к озвученному тобой идеалу. Второй путь заключается в использовании уже отлаженных и стандартизированных инструментов (возможно это будут внутрикорпоративные инструменты). В условиях рынка, из-за временных рамок, первый подход в полной мере не всегда может быть применен. Если у компании большая история, то она может обладать собственной качественной отлаженной кодовой базой и применять ее. Примеры я уже приводил выше. Однако, новый человек в команде, который не возжелает разбираться в том, что уже написано и отлажено, и начнет повторять уже пройденный за годы путь, скорее всего не найдет понимания как со стороны менеджмента, так и со стороны остальных разработчиков.
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,537
22.03.2014, 01:23     Пересесть с языков высокого уровня на С++ #11
Цитата Сообщение от DrOffset Посмотреть сообщение
мышление человека несовершенно
Что мешает использовать мышление бога? Совесть - голос бога. Поставь цель - вечность, и желание сделать вечное, и он поможет.
Цитата Сообщение от DrOffset Посмотреть сообщение
идентично мыслящих людей
Они не нужны, должен быть один - тот кто составляет проэкцию и вектор движения. Остальные реализовывают - т.е. там уже не нужны "творческие качества", а унылая копипаста, на которую творческий человек не подпишется ибо это убьёт стержень в креэйторе.
Цитата Сообщение от DrOffset Посмотреть сообщение
уметь работать со стандартной библиотекой
Ок, для меня стандартная библиотека это if then else, for, while, функции, структуры... Но не превышающее это, т.к. шаблоны не для креэйтеров.(а выше перечисленное не шаблон, а априори "безысходное" и вечное)
Цитата Сообщение от DrOffset Посмотреть сообщение
общепринятых инструментов
Вот тебе пример невежества. Есть DirectX и полигоны, каждому понятно что 3Д оно какое бы не было - всего лишь обман, т.к. как ни крути мы увидим 2д картинку на мониторе.(монитор же не 3д, а когда это будет - не известно, так что живём здесь и сейчас) Так вот, в directdraw7 был метод позволяющий в WM_PAINT (т.е. совместно с WinApi) рисовать без блокировок видеопамяти картинку. Когда я только встретился с этим примером в книге Фленова "C++ и DirectX", мне очень понравилось это, тем более что было ясное пояснение что при возникновении ошибки в момент блокировки - может сгореть сама видеокарта(ну как оказалось новые видюхи не горят, но синий экран обеспечен). Но сам факт того что напрямую можно без блокировки рисовать изображение через собственный массив(куда быстрее чем GDI средствами) - остался идеалом, в итоге я начал ещё 5 лет назад гуглить данный метод. И знаеш за 5 лет я так и не нашёл в инете ни одного примера!(даже больше, и описаний то не было о подобном методе оптимизации) О чём это говорит - о том что метод был ещё 7 лет назад(dd7 очень старый по факту), а реализовать - никто не удосужился(или если только крупные компании, но даже учитывая фактор времени по истечению юзабилити, никто так и не выложил пример и инструкцию, даже МСДН)... Методу 7 лет - а никто не реализовал, так куда же вы все рвётесь со своими векторами, покуда не освоили то что было изобретено так давно? Это как азбука, нельзя перепрыгивать через букву, ибо теряется последовательность, а в результате не понимание принципов(ну тут уже буквица, всё сложнее). Ну мораль думаю ясна.
DrOffset
6909 / 4102 / 933
Регистрация: 30.01.2014
Сообщений: 6,893
22.03.2014, 01:57     Пересесть с языков высокого уровня на С++ #12
Цитата Сообщение от Izual Посмотреть сообщение
так куда же вы все рвётесь со своими векторами, покуда не освоили то что было изобретено так давно?
Сильное утверждение, жаль, что ошибочное. Но никто никуда не рвется, я предлагаю здраво оценивать ситуацию, только и всего. Оставаясь вольным стрелком можно делать что хочешь, однако если ты являешься частью индустрии, то надо играть по ее правилам. В любом случае разговоры про сложность вектора выглядят наивно, т.к. в нем вообще нет ничего сложного, совсем. Динамический массив с минимально необходимой обвязкой.
Цитата Сообщение от Izual Посмотреть сообщение
Методу 7 лет - а никто не реализовал
Уже очень давно существует SDL, в котором есть все необходимое для быстрой работы с графикой.
Прямой ручной доступ к видеопамяти чреват не только ошибками, но и весьма вероятной аппаратной несовместимостью с разными устройствами. Не говоря уже о том, что все современные ОС всячески сопротивляются прямой работе с аппаратурой из user mode. В конце концов, если так хочется быстро рендерить форму, почему не использовать API DirectX или OpenGL для этого? Примеры реализации есть, например в Qt.

Цитата Сообщение от Izual Посмотреть сообщение
Ок, для меня стандартная библиотека это if then else, for, while, функции, структуры
У стандартной библиотеки есть стандартное определение. И оно твоему не соответствует.

Цитата Сообщение от Izual Посмотреть сообщение
Они не нужны, должен быть один - тот кто составляет проэкцию и вектор движения.
Такой человек есть. Но не все от него зависит, к сожалению.
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,537
22.03.2014, 02:30     Пересесть с языков высокого уровня на С++ #13
Цитата Сообщение от DrOffset Посмотреть сообщение
жаль, что ошибочное
Ну вот вам тема, полноценного решения так и нет, оно всё равно криво. Может как гуру ты нагуглиш или доделаеш сам?.. Раз уж я ошибаюсь, то пруф твоих слов, иначе - словоблудие.
DirectDraw - DDSURFACEDESC2 | DDSD_LPSURFACE. Рисуются только оттенки белого-чёрного

Цитата Сообщение от DrOffset Посмотреть сообщение
надо играть по ее правилам
Я и смотрю, понаделали игр типа WoW, Diablo3. Только продвинутые до сих пор сидят в старых играх предпочитая динамику(скорость и творчество в играх, хотя нет, ещё есть эта кубическая игра, где можно строить и капать - не помню как называется, но почему то она кубическая, а в неё играют миллионы).
Цитата Сообщение от DrOffset Посмотреть сообщение
необходимой обвязкой
Петля вокруг шеи? Ах ну да, вы же не знаете что галстук был изобретён массонами для управления ихним персоналом, и означал галстук: "помни, что если ошибёшся, за него и повесим"...
Цитата Сообщение от DrOffset Посмотреть сообщение
существует SDL
Много чего существует, но речь о DirectX и оптимизированном методе работы на прямую с видеопамятью без блокировки. Не съезжайте с темы, а то уже не интересно получается: "извозчик в одну сторону направляет, а конь бежит в другую"...
Цитата Сообщение от DrOffset Посмотреть сообщение
твоему не соответствует
А может это твоё не соответствует? Ну у каждого свои ворота, которые надо пробить лбом(если конешно не иметь ключ или не позвать того кто имеет).
Цитата Сообщение от DrOffset Посмотреть сообщение
не все от него зависит
Правильно, всё зависит от бога. "По вере вашей и будет вам". Даже в компьютере есть частичка бога..
DrOffset
6909 / 4102 / 933
Регистрация: 30.01.2014
Сообщений: 6,893
22.03.2014, 16:10     Пересесть с языков высокого уровня на С++ #14
Цитата Сообщение от Izual Посмотреть сообщение
Ну вот вам тема, полноценного решения так и нет, оно всё равно криво. Может как гуру ты нагуглиш или доделаеш сам?.. Раз уж я ошибаюсь, то пруф твоих слов, иначе - словоблудие.
Ну вообще-то "ошибочное" относилось к словам,
Цитата Сообщение от DrOffset Посмотреть сообщение
так куда же вы все рвётесь со своими векторами, покуда не освоили то что было изобретено так давно
а не к твоей задаче. Ошибочные они в том, что ты априори считаешь всех остальных идиотами. От этой надменности нужно избавляться как-то, иначе сложно будет найти понимание среди остальных людей.
Темку твою посмотрю на досуге. А пока что скажу, что начиная с DirectX8, DirectDraw был объявлен deprecated, а в версии SDK начиная с 2010 он уже вообще не доступен, вместо него предлагается использовать Direct2D.
Цитата Сообщение от Izual Посмотреть сообщение
Я и смотрю, понаделали игр типа WoW, Diablo3. Только продвинутые до сих пор сидят в старых играх предпочитая динамику(скорость и творчество в играх, хотя нет, ещё есть эта кубическая игра, где можно строить и капать - не помню как называется, но почему то она кубическая, а в неё играют миллионы).
Насчет того, что многие современные игры потеряли душу, лично я полностью согласен. Но виноваты в этом не используемые технологии, а маркетинговая политика. Однако мнение можно иметь на эту ситуацию какое угодно, но факт остается фактом, если ты являешься частью индустрии, то придется играть по ее правилам. Майнкрафт, который ты привел в пример, не смотря на кажущуюся простоту графики тем не менее работает на Windows, Linux, OS X, Xbox 360, Android, iOS и PSP и использует OpenGL.
Цитата Сообщение от Izual Посмотреть сообщение
Петля вокруг шеи?
Ну вот это-то точно словоблудие. Ты так говоришь про вектор, как будто там какая-то неземная сложность, хотя сам даже ни разу не смотрел реализацию. Это просто динамический массив с возможностью изменения размера и задания собственных функций распределения памяти. И он гораздо менее опасен, чем обычный malloc.
Цитата Сообщение от Izual Посмотреть сообщение
Много чего существует, но речь о DirectX и оптимизированном методе работы на прямую с видеопамятью без блокировки. Не съезжайте с темы, а то уже не интересно получается: "извозчик в одну сторону направляет, а конь бежит в другую"...
А я и не съезжаю. Это прямо точно по теме. SDL использует DirectX под windows. SDL использует DirectDraw в случае, если мы работаем на системах <=win2000. Если посмотреть реализацию, там очень много информации о том как это правильно делать (см. файл SDL_dx5video.c в исходниках). Помимо всего прочего SDL, как библиотека, - это один из самых скоростных способов работать с 2D графикой кроссплатформенно. И да, там есть возможность прямого доступа в видеопамять.
Цитата Сообщение от Izual Посмотреть сообщение
А может это твоё не соответствует?
Просто посмотри здесь.
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,537
22.03.2014, 17:48     Пересесть с языков высокого уровня на С++ #15
Цитата Сообщение от DrOffset Посмотреть сообщение
априори считаешь всех остальных *censored*
Не всех, и не так, я бы выразился корректнее, по библейски "заблудшими овцами", почему - потому что следуют моде и догмам, а это путь деградации, т.к. становишся солдатом, а не творцом.(я считаю что истинные программисты - это те кто не пользуюся шаблонами, изобретают велосипеды и мыслят нестандартно)
Вы кстати аккуратнее выражайтесь, провокаций не люблю.
Цитата Сообщение от DrOffset Посмотреть сообщение
найти понимание среди остальных *censored*
Вот вам пример: если я в 10 классе, а кто то в 3, то что же я старшеклассник не понимаю чтоли что в третьем классе? - Абсурд, ибо не логично.
Цитата Сообщение от DrOffset Посмотреть сообщение
начиная с DirectX8, DirectDraw был объявлен deprecated
Угу, американцы тоже объявили о санкциях) Это вам пример аналогии.
Цитата Сообщение от DrOffset Посмотреть сообщение
маркетинговая политика
Она не виновата, виновато стадо, которое потеряло душу. Посмотрите на профи, которые когда то были лучшими в CS и других играх - так они до сих пор там сидят. А то что нынешние школьники не понимают что такое игра и её цель как развитие человека(а не только "убивание времени"), то тут уж что поделаеш - нубы всегда были.
Цитата Сообщение от DrOffset Посмотреть сообщение
являешься частью индустрии
Я являюсь частью системы, но я не следую за её ценностями. Именно это основополагающий фактор.
Цитата Сообщение от DrOffset Посмотреть сообщение
использует OpenGL.
Ну и что? Я использую DirectX(dd) ииииии?.. Не вижу логики в ваших словах.
Цитата Сообщение от DrOffset Посмотреть сообщение
даже ни разу не смотрел реализацию
Аккуратнее, провакация - уголовно наказуема, тем более не обоснованная. Если я сказал о том что мне не нравится вектор и классы - значит Я ВИДЕЛ ПРИМЕР РЕАЛИЗАЦИИ. (тут нужно вставить картинку *facepalm* ибо к месту, КЭП)
Цитата Сообщение от DrOffset Посмотреть сообщение
неземная сложность
Я уже тыщу раз писал что именно мне не нравится, или мозг так забит что не помните(хотя вы видели), не придумывайте на ходу.
Цитата Сообщение от DrOffset Посмотреть сообщение
работает на Windows
Ой, ржу нимагу, походу я программист, который пишет программы для деревьев?))) Так где там проц у дерева, пойду пилить))))

Так, по поводу клссов, векторов и SDL - вы не уловили суть: Я НЕ ЛЮБЛЮ ШАБЛОНЫ!
Кроссплатформенность - ну интересно и полезно, но вот исходя из того что я услышал про библиотеку Qt, и что она до сих пор содержит кучу ошибок в базовом API(самых базовых функциях) - желание с ней работать упало до стремящего к нулю.

Добавлено через 3 минуты
Цитата Сообщение от DrOffset Посмотреть сообщение
Просто посмотри здесь.
И что? Я говорю об общем среди всех языков - это логика основных операторов. Ну а так как я на Си, то тут ещё в плюс возьму общее между программированием на разных Осях - т.е. логика базовых функций.(утрирую: стандарты СИ, а не ++, а уж на ++ пойдут нововведения типа NEW, DELETE[] и т.п. просто улучшенных - но не шаблонных заметьте)
DrOffset
6909 / 4102 / 933
Регистрация: 30.01.2014
Сообщений: 6,893
22.03.2014, 21:22     Пересесть с языков высокого уровня на С++ #16
Цитата Сообщение от Izual Посмотреть сообщение
Не всех, и не так, я бы выразился корректнее, по библейски "заблудшими овцами"
Как это не называй, это создает некий барьер. Обрати внимание, что никто больше не вступает в дискуссию. Я думаю, что именно поэтому. И я думаю, что имел право указать тебе на ошибку в суждениях. И это не являлось провокацией. Лично же мне эта твоя особенность никак не мешает.

Цитата Сообщение от Izual Посмотреть сообщение
Я уже тыщу раз писал что именно мне не нравится,
Я не видел. И не мог видеть, т.к. не читаю тут абсолютно все темы. Собственно и не обязан. Поэтому исхожу из того, что видел. А видел только как раз таки догматичное отрицание, без обоснований.
Цитата Сообщение от Izual Посмотреть сообщение
Если я сказал о том что мне не нравится вектор и классы - значит Я ВИДЕЛ ПРИМЕР РЕАЛИЗАЦИИ.
Предлагаю взять какую-либо реализацию и разобрать. Расскажешь конкретно в чем там сложность, я готов тебя выслушать. А ты?

Цитата Сообщение от Izual Посмотреть сообщение
Ой, ржу нимагу, походу я программист, который пишет программы для деревьев?)))
Зачем этот фарс?
Цитата Сообщение от Izual Посмотреть сообщение
Ну и что? Я использую DirectX(dd) ииииии?.. Не вижу логики в ваших словах.
Это была одна фраза, зачем ты ее разделил при цитировании? Я говорил о том, что нельзя написать программу, которая будет работать на таком большим числе платформ и в такие сравнительно короткие сроки, не используя абстракций. То есть не смотря на простоту графики программа была написана по правилам IT индустрии, и с использованием ее наработок и методологий.

Цитата Сообщение от Izual Посмотреть сообщение
Так, по поводу клссов, векторов и SDL - вы не уловили суть: Я НЕ ЛЮБЛЮ
ШАБЛОНЫ!
SDL я привел как ответ на утверждение "никто за 7 лет не реализовал". Реализовали и гораздо раньше, сделали целый кроссплатформенный инструмент, в котором есть все требуемые возможности для 2D графики.
По поводу нелюбви "шаблонов": если очень этим увлечься, то можно придти к выводу, что и компьютер нужно паять самому, операционную систему писать самому. Нельзя пройти весь этот путь одному в разумный срок. Естественно чисто по человечески я могу это понять, если есть желание разобрать все с самых основ, то никто не сможет помешать. Но я говорил совсем про другую плоскость, я говорил про индустрию, которая не может себе это позволить, потому что зависит от рынка. И это не является глупостью, это ответ на требования современных реалий. Просто поэтому твое негодование по поводу того, что никто больше не хочет работать с DirectDraw здесь неуместно, инструмент не используется, потому что у индустрии появилась для него замена, которая лучше решает поставленные задачи.

Цитата Сообщение от Izual Посмотреть сообщение
И что? Я говорю об общем среди всех языков - это логика основных операторов.
Мы говорили про стандартную библиотеку, а не про сам язык. У С своя стандартная библиотека. Почему-то ты не ставишь под сомнение, что ее нужно знать, чтобы программировать на С. Или ты предлагаешь ее тоже самому написать? У С++ своя стандартная библиотека (тот самый вектор в нее входит), которая включает в том числе и библиотеку С. Почему здесь должна быть другая логика? Если мы пишем на С++, то знать ее нужно, хотя бы для того, чтобы понять в определенный момент, что в данной задаче она не потребуется.

Цитата Сообщение от Izual Посмотреть сообщение
исходя из того что я услышал про библиотеку Qt, и что она до сих пор содержит кучу ошибок в базовом API
Как я уже говорил, ошибки есть в любых программах. Посмотри хотя бы на список исправлений для windows, который загружает windows update.
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,537
22.03.2014, 22:23     Пересесть с языков высокого уровня на С++ #17
Цитата Сообщение от DrOffset Посмотреть сообщение
создает некий барьер
И правильно, "я лучше буду один чем с кем попало" (примерный смысл фразы Омара Хайяма)
Цитата Сообщение от DrOffset Посмотреть сообщение
И это не являлось провокацией
Я понимаю что конкретного умысла не было, мы ведь не звери, но контекст фразы прозвучал жестковато.(малоли кто что подумает)
Цитата Сообщение от DrOffset Посмотреть сообщение
Я не видел
Ну ты был в теме, где я про это говорил, может просто конкретную страницу и пост не читал (всё возможно, особенно то что я не всегда полностью описываю "чётко" мысль, ну потому что по 100 раз каждому повторять - надоедает, как будто со стенкой разговариваеш, а тем более что всем надо доказать, хотя не вижу смысла в этом)
Цитата Сообщение от DrOffset Посмотреть сообщение
взять какую-либо реализацию и разобрать
Не вижу смысла, у меня уже есть направление, которое я выбрал и иду.(в обход классам и векторам) Я же сказал что шаблоны не люблю, так что я своё мнение не изменю. Тем более меня больше волнует простота синтаксиса, а классы и векторы - на них смотриш и понимаеш что это не калаш, а МП.
Цитата Сообщение от DrOffset Посмотреть сообщение
Зачем этот фарс?
Потому что ты бред написал, ясен же пень что Майнкрафт написан так чтоб он запускался в юзебл ОС, ну а DirectX и OGL - я не против, я против полигонов и "запланированного устаревания", который проявляется в том что новые игры не идут на слабых компах просто из за того что нет поддержки шейдеров.(ну что за бред, шейдер - всего лишь освещение, зачем ставить полный крест только из за "не возможности воспроизвести свет")
Цитата Сообщение от DrOffset Посмотреть сообщение
нельзя написать программу, которая будет работать на таком большим числе платформ
Ну если не брать PSP и консоли, то разве стандартные методы Си и DirectDraw разве не всеми ОСями поддерживаются?
Цитата Сообщение от DrOffset Посмотреть сообщение
и компьютер нужно паять самому...
Ну не будем экстримистами, хотя если были бы знания, и был бы толк в этом - то почему бы и нет? (если оно конешно стоило свеч)
Цитата Сообщение от DrOffset Посмотреть сообщение
зависит от рынка
Рынок - это конечный потребитель, т.е. обычный юзер, а не какая то там выставка (аналогия: образованный - это тот у кого есть корочка)
Майнкрафт уже сам по себе доказал это. Тем более что его писал(и) обычные люди, просто идейники, а не какие то там EA, Blizz или подобные.
Цитата Сообщение от DrOffset Посмотреть сообщение
Мы говорили про стандартную библиотеку, а не про сам язык
Ну значит наши взгляды разошлись, я имел ввиду именно язык(библиотека например мной подразумевалась - как обработка стандартного функционала, например if и for - как ни крути всё равно функции по сути, и они описаны где то в библиотеке)
Цитата Сообщение от DrOffset Посмотреть сообщение
Почему-то ты не ставишь под сомнение, что ее нужно знать
Абсурдности типа "Купи слона"?..
Цитата Сообщение от DrOffset Посмотреть сообщение
вектор в нее входит
И что? Моя жизнь - мой выбор, даже если я в армии и мне прикажут убивать своих родителей - что я после смерти богу скажу? Что мне приказали?...
Цитата Сообщение от DrOffset Посмотреть сообщение
в данной задаче она не потребуется
Я не ищу лёгких путей, а ищу простых. (именно исходя из фразы~: "хороший программист может написать работающий код, но только лучший - написать его понятным даже для чайника")
Цитата Сообщение от DrOffset Посмотреть сообщение
список исправлений для windows
Для WinXP имхо их уже нет (а я именно пишу так, чтоб WinXP поддерживал, т.к. большинство компаний ещё на нём). Хотя может и есть, ведь там один фиг шаблоны. С другой стороны - я не утверждаю что Windows - идеал, просто я начал с WinApi и даже сейчас мне очень нравится он, я просто в восторге как он устроен.

Давайте вы будете в следующий раз помнить про сравнение простоты калаша с МП? А то практически все мои фразы склоняются к это сути - ПРОСТОТА.
DrOffset
6909 / 4102 / 933
Регистрация: 30.01.2014
Сообщений: 6,893
23.03.2014, 00:16     Пересесть с языков высокого уровня на С++ #18
Цитата Сообщение от Izual Посмотреть сообщение
Ну если не брать PSP и консоли, то разве стандартные методы Си и DirectDraw разве не всеми ОСями поддерживаются?
Си - да, DirectDraw - нет. В OS X и Linux используются другие граф. подсистемы (OpenGL, SDL и др.).

Цитата Сообщение от Izual Посмотреть сообщение
100 раз каждому повторять - надоедает
Можно просто дать ссылку на пост. я не обижусь

Цитата Сообщение от Izual Посмотреть сообщение
например if и for - как ни крути всё равно функции по сути, и они описаны где то в библиотеке
Нет, это часть языка. Библиотека - не часть языка, а реализуется на нем. if и for - это базовые конструкции языка. То есть являются его неотъемлемой частью. Библиотеку же можно выкинуть и взять другую. В этом разница.

Цитата Сообщение от Izual Посмотреть сообщение
Майнкрафт уже сам по себе доказал это. Тем более что его писал(и) обычные люди, просто идейники, а не какие то там EA, Blizz или подобные.
Маркус Перссон большой профессионал и владелец компании по разработке игр, а не простой идейник. То, что игра обрела столь большую популярность говорит о том, что как сама идея, так и реализация оказались именно в нужном русле. Характеризует его как человека, который знал что нужно потребителю. Но я говорил о другой стороне, о технической. Я говорил о том, что сроки, которые ставят перед разработчиками не позволят совсем обходиться без "шаблонов".
Вот ты пишешь, что я бред написал
Цитата Сообщение от Izual Посмотреть сообщение
Потому что ты бред написал, ясен же пень что Майнкрафт написан так чтоб он запускался в юзебл ОС
между тем, ты не понял к чему это. Давай еще раз. Майнкрафт написан быстро. Это значит, что разработчик не писал все с нуля. У него была мега-идея геймплея и концепция графики. Он ее реализовал в современных условиях. Да, там нет супер графики, но это не значит, что он обошел все современные технологии стороной. Как подтверждение этого я привел в пример серьезную многоплатформенность этой игры.

Цитата Сообщение от Izual Посмотреть сообщение
я против полигонов и "запланированного устаревания", который проявляется в том что новые игры не идут на слабых компах просто из за того что нет поддержки шейдеров.
"запланированное устаревание" - есть такое явление. Оно кстати гораздо более выражено на мобильных устройствах, чем на PC. Однако полигоны к нему не относятся. Полигоны - это очередной компромисс (вся инженерная деятельность строится на компромиссах между ценой, качеством и временем и их дробных составляющих). Плюс в том, что полигональная геометрия предоставляет очень сильный математический аппарат. Существует огромное количество эффективных алгоритмов построенных на нем. Расплачиваемся за это мы естественно определенными требованием к аппаратной части. В частности к памяти. К слову, почти весь математический аппарат, применяемый в современной комп. графике был разработан еще в 60-80 года прошлого столетия. О каком запланированном устаревании может идти речь в этом случае? Просто подошло время, мы получили аппаратуру, которая способна обеспечить требуемые для этих мат. методов характеристики и вся индустрия дружно перешла на более эффективную технологию. Появились игры с более реалистичной графикой. Здесь нет заговора против пиксельной графики. Это естественный ход вещей.
Однако все это не отменяет того, что многие конторы специально завышают аппаратные требования. В частности твой пример с шейдерами вполне правомерен.

Цитата Сообщение от Izual Посмотреть сообщение
Для WinXP имхо их уже нет
Это не потому что там ошибок нет, а потому что поддержка скоро завершается. Компания просто не тратит силы на ОС, которой уже 13 лет.

Цитата Сообщение от Izual Посмотреть сообщение
И что? Моя жизнь - мой выбор
О приказах речи и нет. Ты спросил "куда мы рвемся с векторами", я тебе ответил. А принимать это или нет - дело твое.

Цитата Сообщение от Izual Посмотреть сообщение
А то практически все мои фразы склоняются к это сути - ПРОСТОТА.
Я тебя понял. Но и ты пойми, что такая прямая аналогия не работает здесь. Простота может быть разной, если смотреть на нее под разными углами. В конце концов любые абстракции призваны решать задачу уменьшения сложности. Не помню, кидал я тебе ссылку или нет. Вот неплохая статья, которая раскрывает эту тему. Просто прочитай, я спорить с тобой больше не будут на эту тему. Дело в конце концов твое, принимать это или нет.

В общем, сворачивать давай это. Я обещал, что посмотрю твою тему и сделаю это завтра.
Если ты сам хочешь снова этим заняться все-таки посмотри на реализацию работы с DirectDraw внутри библиотеки SDL (я давал выше ссылку) может быть это натолкнет на правильную мысль. Библиотека написана на С, так что я думаю проблем с чтением кода не будет.
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,537
23.03.2014, 01:07     Пересесть с языков высокого уровня на С++ #19
Цитата Сообщение от DrOffset Посмотреть сообщение
DirectDraw - нет. В OS X и Linux
Так, mac я не беру вообще, считаю что это вредители, т.к. они не имеют аналога "WINE"(ну а WINE решает пробелему с DX под Linux). Да и целый язык Objective C для отдельной Оси - это вообще не этично, ни фига се, это мне чтоб что то под mac делать - надо отдельный синтаксис языка изучать... бред и не уважение к программистам(имхо).
Цитата Сообщение от DrOffset Посмотреть сообщение
Можно просто дать ссылку на пост
Уже не помню где более полное, так что Т_Т. Ну в общем суть всё равно ясна, тем более что я в принципе не доказываю (ну или стараюсь избегать) свою правоту(ну тут не совсем корректно, т.е. моё мнение строится на логике и ведах, а значит уже к категории истины относится) тем кто не просит (или не нуждается).
Цитата Сообщение от DrOffset Посмотреть сообщение
if и for - это базовые конструкции языка
Ну я могу сделать функцию, которая заменит if ( с for кстати именно сейчас проблема, интерпритатор пишу, но что то не очень доходит как "правильно" реализовать, а не "лишь бы как" )
Цитата Сообщение от DrOffset Посмотреть сообщение
реализация оказались именно в нужном русле
Ну я бы не сказал, я сам не играл, но видел - нет уж, лучше я в Diablo2 и War3 останусь, там таких "мегапикселей" нет, напрягают. А вообще Майнкрафт в принципе классная, только очень много времени на неё тратить не вижу смысла, а она это предполагает, по мне так хватает в ведах и программинге конструирования, ну или на даче и дома(как строительство). А по поводу реализации - думаю что именно из за сырого кода, коим я считаю эту игру - она и получилась квадратной. И думаю что именно OGL в этом виноват и стремление сделать кроссплатформенность и 3D из полигонов.(я лично придерживаюсь мнимого 3д основанного всё таки не на треугольниках, а на концепции что линия может быть и выпуклой, как в последних версиях фотошопа, где по трём точкам строится округлая линия)
Цитата Сообщение от DrOffset Посмотреть сообщение
совсем обходиться без "шаблонов".
Шаблон который не разбирается(просто) или имеет запутанный синтаксис - это хрень а не шаблон.(имею в виду много тупых символов при работе с std и классами, где куча всяких двоеточий, стрелок, которые прям друг за другом идут, и их больше чем самого фактического кода)
Шаблон правильный - это правильный интерпритатор, который строится на Си стандартах. Но он уже под нынешнее понятие обычного "шаблона" не подойдёт, потому что сейчас докатились - юзают шаблоны(как и в php), но не знают внутренностей, а чтобы узнать - это ёмаё, я как то столкнулся с кодом даже не вектора, а просто класса с окнами под WinApi, я афигел, называется - сиди пол дня понимай как что и куда, очень запутано - не удобно)
Цитата Сообщение от DrOffset Посмотреть сообщение
концепция графики
Нет, графика стала причиной того что не правильная реализация. Логично по моему, что такие квадраты(даже больше чем в war3 - отпугнут совсем).
Цитата Сообщение от DrOffset Посмотреть сообщение
с более реалистичной графикой
Мнимое 3Д - нет?.. Нет конешно, чтоб сделать правильное мнимое 3Д нужно так мозг напряч, что может и задымить. А так как идейникам типа меня - куй кто проплатит за риск воспламенения моСка, то вот и не берутся =)
Цитата Сообщение от DrOffset Посмотреть сообщение
мы получили аппаратуру
И тут как после наплыва товаров из европпы (ну после революции и т.п.) - у людей крышу снесло, начали покупать всё что было, что нужно и не нужно. Но ведь программинг тоньше, тут все ломанулись в полигоны, а не в реализацию мнимого 3Д.(я понимаю что и полигонную графику пожно назвать мнимым 3Д, но я говорю о ещё большей иллюзии, которая будет на столько сильной, что отразит реальность)
Цитата Сообщение от DrOffset Посмотреть сообщение
не потому что там ошибок нет
Серьёзных думаю уже нет, а редкие и отлаживаемые рестартом - да и фиг с ними.
Цитата Сообщение от DrOffset Посмотреть сообщение
"куда мы рвемся с векторами"
Смысл всё же остался именно в стандартных методах и простоте, чего векторы не дают. Да и опять же почему же профи(ну скажем те кто долго варятся) то не советуют пользоваться векторами?.. Винни бы сказал "это всё не с проста"!

По поводу SDL - да ну его(апи круче, а раз апи SDL'а - dd, то он круче -даст некую динамику, не предусмотренную "обычным"), думаю может Direct2D почитать, хотя если там такой же принцип как в OGL (через трёхмерную матрицу - даже плоские фигуры!) то думаю что в топку.

*п.с. по поводу ссылки на "Закон сохранения сложности"...
Лично моя идея заключается в интерпритации как в Excel(в смысле чтоб так же просто, нашёл что надо - вставил в ячейку и магия, только всё это покруче сделать, в "рамках" Си)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2014, 01:24     Пересесть с языков высокого уровня на С++
Еще ссылки по теме:
Программа по изучению языков C++
Несколько языков интерфейса C++ Builder
С++ 4 и 5 поколение языков программирования C++
Стандарты и стили языков программирования C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
DrOffset
6909 / 4102 / 933
Регистрация: 30.01.2014
Сообщений: 6,893
23.03.2014, 01:24     Пересесть с языков высокого уровня на С++ #20
Цитата Сообщение от Izual Посмотреть сообщение
Так, mac я не беру вообще, считаю что это вредители
Тем не менее, DirectX существует нормально только под win. DirectX в WINE в Linux реализуется через OpenGL. WINE всего лишь эмулирует системное API windows нативными средствами ОС.
И да, под OS X - есть WINE.

Цитата Сообщение от Izual Посмотреть сообщение
А по поводу реализации - думаю что именно из за сырого кода, коим я считаю эту игру - она и получилась квадратной
Нет, это было сделано намеренно.
Цитата Сообщение от Izual Посмотреть сообщение
И думаю что именно OGL в этом виноват и стремление сделать кроссплатформенность и 3D из полигонов.
Да брось. Не влияет это никак. Я же говорю, он хотел сделать ее похожей на Dwarf Fortress.

Цитата Сообщение от Izual Посмотреть сообщение
Да и опять же почему же профи(ну скажем те кто долго варятся) то не советуют пользоваться векторами?
Давай пруф что-ли....
Yandex
Объявления
23.03.2014, 01:24     Пересесть с языков высокого уровня на С++
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru