|
0 / 0 / 0
Регистрация: 20.01.2009
Сообщений: 118
|
|
Чем C++ лучше Visual Basic?12.03.2009, 23:34. Показов 24991. Ответов 66
Метки нет (Все метки)
Обращаюсь ко всем, кто программирует на C++.
Кто мне может просто и ясно объяснить, в чем заключаются преимущества и 'мощность' языка C по сравнению с Visual Basic? Пока что я только знаю, что C является языком с более сложным синтаксисом и что, как написано в MSDN, почти все первоклассные программы писались на Visual C++. А какие именно есть возможности в языке C, которых нет в других языках вроде VB? Кстати, как пишутся сложные игры, как Age Of Empires или другие стратегии? Реально их написать на Visual Basic или нет? И еще: чем отличаются C, Borland C и MS Visual C++? Спасибо.
0
|
|
| 12.03.2009, 23:34 | |
|
Ответы с готовыми решениями:
66
В чём отличия С++Builder 6 и visual c++ 6. И что лучше юзать???? Чем отличется С++ Builder от Visual C++ (и от Visual C++.Net)? |
|
0 / 0 / 0
Регистрация: 22.03.2009
Сообщений: 40
|
|
| 08.04.2009, 17:26 | |
|
Дебаг медленнее компиляции, поскольку он ещё проходит стадию JIT-компиляции во время выполнения.
Может, кому-то синтаксис C# покажется лаконичнее, а кому-то синтаксис VB.NET понятнее... Это то же самое, что спор о курице и яйце...
0
|
|
|
0 / 0 / 0
Регистрация: 22.03.2009
Сообщений: 40
|
|
| 08.04.2009, 17:33 | |
|
А на самом деле в том, что касается игрушек, разница в скорости кода несущественна - ведь основную работу выполняет библиотека OpenGL или DirectX (кстати, что из них лучше?), а программа всего лишь пересылает ей команды.
Я делал игру на VB.NET с использованием OpenGL и ничего, быстро работает... :=) Кстати, JIT-компиляции VB.NET и C# принадлежат в равной степени. А если скорости дебага и различаются - это ещё не аргумент. Что касается перегрузки операторов, то в следующей версии (то есть в VS.NET 2003) она появится в VB.NET, а документация XML будет создаваться надстройкой.
0
|
|
|
Ghost
|
|
| 08.04.2009, 18:49 | |
|
С++ vs VB.NET/C# для игр.
Графика.... OpenGL vs DirectX - тут все ДОСТАТОЧНО понятно. Господа - а AI вы в игрушке на чем писать будете? На Java? Удачи. Intel & AMD вам спасибо скажут. |
|
|
noir
|
|
| 08.04.2009, 21:59 | |
|
AI это еще полбеды. Ведь collision detection, и вообще физический движок OpenGL и DX не содержат, а вычислений там почти столько же, сколько в графике... Разве что взять сферических игроков в кубическом уровне, но нынче это уже моветон...
'отрывабельные' руки-ноги, реальная баллистика, 'правильные' столкновения в шутере... Реалтаймовый просчет аэродинамики, как в 'Ил-2' Футбол, круче, чем у EA... Все это на асме надо писать, причем сразу векторном... 'Сферы в вакууме', когда их много, опять-таки, на Басике ручной оптимизации потребуют горы, а результат будет хуже, чем на С, имхо... |
|
|
2 / 2 / 2
Регистрация: 23.06.2007
Сообщений: 399
|
|
| 09.04.2009, 01:01 | |
|
И все-таки, что необходимо для работы програмы (dll,ocx), созданной на VB.net или C#
Будет ли нормально работать в Win98?
0
|
|
|
51 / 17 / 6
Регистрация: 18.05.2007
Сообщений: 1,322
|
|||||||||||
| 09.04.2009, 10:09 | |||||||||||
|
Вставлю от себя на счет производительности:
Написал две элементарные проги (стандартные EXE) в которых стоит простой цикл FOR от 0 до 1000000х1000 и проверил скорость выполнения готовых программ (а не прогон этих программ из под среды разработки!) написанных на VB6 (при компиляции были сняты все флажки в доп настройках) и Delphi6. Результат: Delphi ~2 сек., VB ~3 сек. Желающие могут проверить еще и на C++. Код VB:
0
|
|||||||||||
|
Ghost
|
|
| 09.04.2009, 11:34 | |
|
Не вполне корректный подход.
Мы говорили о математике? Здесь (в этих примерах) выполняются следующие операции: mov, add, cmp, jmp (or) jne mul, div, f????? тут не выполняются. Так что выводы делайте сами. А хороший C++ компилятор (с хорошим оптимизатором) еще в 1996 году подобные вещи преобразовывал так: long l(0); все. На асме это кодируется как : mov [REFERENCE], 0 выплняется - дай бог памяти - максимум за 10 тактов ЦПУ (86). Будем дальше мерить быстродействие C++ vs VB/Delphi? |
|
|
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
|
|
| 09.04.2009, 12:17 | |
|
to oldpasp
Смотри http://relib.com/forums/topic.asp?id=771644
0
|
|
|
51 / 17 / 6
Регистрация: 18.05.2007
Сообщений: 1,322
|
|
| 09.04.2009, 14:13 | |
|
Откопал интересную статейку
«О назначении Visual Basic в сравнении с другими языками» http://www.vbrussian.com/Article.asp?ID=47
0
|
|
|
1 / 1 / 0
Регистрация: 09.10.2007
Сообщений: 596
|
|
| 09.04.2009, 16:51 | |
|
Нет, темa, тaки-дa, пoшлa.
Всякoму пoнятнo, чтo нa C++ тaк мoжнo нaписaть прoгу, чтo oнa сooтв. aлгoритм нa VB oбгoнит кaк стoячегo. Некoтoрые вещи нa VB вooбще не сделaешь в силу oгрaничений языкa. Кстaти, у нaс, тoвaрищи, есть aльтернaтивa Microsoft Visual Basic? Real Basic - дa? VB сoздaн кaк RAD для ТЕКУЩЕЙ кoмпoнентнoй мoдели oт Microsoft. Кaк тaкoвoй мы все егo и пoльзуем. Не бoльше и не меньше. И C++ дaёт бoлее быстрый кoд - не oт тoгo, чтo пaрные oргaны (... уши) у Кернигaнa, Ричи и Стрaуструпa были бoльше, чем у Билли, a oт тoгo, чтo этo именнo C++. НO! Мы ведь мoжем всё испрaвить... Зaкупaется вaгoн вoдки, берётся группa прoгрaммерoв. VB.NET зa oснoву. Рaсширить вoзмoжнoсти языкa aрифметикoй укaзaтелей, пoлнoй перегрузкoй oперaтoрoв, шaблoнaми... Пoтoм присoбaчить препрoцессoр к oднoму месту и - вoт oнo чудo XXI векa... Лень рaсширять тaк дaлекo - ёлки-пaлки дa хвaтит oднoй aрифметики укaзaтелей и oчистить прoстые действия oт их сaкрaльнoгo смыслa (никaкoгo QueryInterface пo Set и т.д.) И, этa, aссемблерные встaвки мoжнo зaкoлбaсить, чтoбы кaйф был oргaзмaтический... Предстaвили? Хoтите тaкoе? 2noir В кaкoм этo VB мoжнo перебить пoведение IUnknown? В VB6 тoчнo не пaшет. Пoпрaвь, удивлюсь. 2Rider Не пoдкoлкa, a вoпрёс. Кaкими средствaми читaлись фaйлы нa VB и Delphi? Мoжет чей-тo не тaк? Уж бoльнo рaзницa бoльшaя.
0
|
|
|
Rider
|
|
| 09.04.2009, 17:08 | |
|
тупо в голову - стандартными методами, что того что другого
потом по строчкам бежали... (знаю что глупо :Р сказал же что тупо в голову) давно это было (относительно), поэтому деталей не помню, но то что все без изворотов писалось это 100%... единственно что в дельфях мог наворотить это pchar заместо стд стрингов. вот то что вб чуть не умер от обжорства памятью (вместе с компутером) это точно... вб вообще не очень хорошо память расходует |
|
|
noir
|
|
| 09.04.2009, 17:25 | |
|
IUnknown, естессно можно только в С переопределить... Но разговор там шел о подсчете ссылок _вообще_, вот я и сказал, где VB их считает
|
|
|
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
|
|
| 09.04.2009, 18:23 | |
|
1. А что народ скажет по поводу того, что имеет смысл остановить свой выбор по поводу изучения языка на С++ хотя бы потому, что этот язык как платформо-, так и фирмо- независимый, в полной противоположности от Visual Basic?
2. И еще, вопрос ко всем, я так и не услышал ни одного факта подтверждающего постоянные утверждения о том, что C++ сложнее в изучении, чем VB? Хотелось бы хотя бы один конкретный пример. 3. Безосновательное утверждение о быстроте разработки приложений на Visual Basic по сравнению с C++ также остается для меня туманным.
0
|
|
|
ManiaK
|
|
| 10.04.2009, 16:08 | |
|
Sikon: Я с тобой не согласен. Библиотека ( будь то OpenGL или DD) выполняет самую малость - предоставляет програмеру доступ к карточке посредством драйвера. Остальное (Рисование сфер, триугольников, квадратов и т.д.) производится программой, которая оперирует простейшими коммандами ( задать источник света, нарисовать воксель и т.п.). Ну я уже молчу про то, что сказали Ghost и noir - путёвое AI мона накатать только на C++ (в крайнем случае - на Delphi). Естественно это справедливо если у тебя не стоит за спиной шкаф из 50 штук Pentium 4 Titan по 3 гига каждый, да столько же geForce'ов
:-)))))))))))))))))))))))))))))))))))))))) ))))))))))))))))))))))))) |
|
|
stream
|
|
| 11.04.2009, 17:57 | |
|
ну че ещё не надоело обсуждать всё это ...
2boombastik: конкретный пример того что Visual Basic легче С++: возьмем модель COM возьмем простейший оператор new (New) ... в VB и в C++ эти операторы выглядят одинаково, но их глубинная семантика различна как это проявляеьтся? попробуй оператором new языка С++ создать новый экземпляр двоичного объекта в VB же New позволяет автоматически загрузить и получить объект от бинарного сервера ... в общем оператор New в VB производит тот же набор вызовов, которые на С++ надо писать вручную так что вот так ... |
|
|
0 / 0 / 0
Регистрация: 22.03.2009
Сообщений: 40
|
|
| 11.04.2009, 18:20 | |
|
Ну, в отношении AI я пока даже не нуль, а -1, так что промолчу...
Но всё-таки попробую написать его на VB, хоть все и говорят, что это невозможно... Если человек задался целью, для него нет ничего невозможного, на чём бы он ни программировал - на VB, Delphi, C++ - да хоть на ассемблере...
0
|
|
|
Rider
|
|
| 11.04.2009, 18:28 | |
|
2Sikon:
есть целеустремленность и напористость, а есть твердолобость и упертость. так вот написание AI на VB это скорее второе чем первое имо. Невозможного ничего, нет вы правы, только путь достижения цели равно как и затраты на достижение ее ой как различаются..... |
|
|
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
|
|
| 11.04.2009, 19:00 | |
|
to stream:
Во-первых, COM ничего общего с языком программирования не имеет. COM - это технология от Microsoft, позволяющая повторное использование бинарных компонентов, написанных как на разных языках программирования, так и под разными средами (имеется ввиду IDE, напр. Visual Basic, VC++, Borland C++ Builder,..). Однако, эта технология имеет крупный недостаток - она привязана к одной операционной системе: Win32. Именно поэтому следующим шагом Microsoft стала .NET платформа. То что реализация этой технологии в Visaul C++ несколько более сложная и более гибкая, чем в Visual Basic, это не указывает на слабость языка программирования C++, а лишь на попытку Microsoft дать хорошую рекламу VB. Возьмите Borland C++ Builder и увидите другой подход от фирмы Borland для реализации и поддержки технологии COM все для того же языка C++. Во-вторых, у меня есть один документ (могу выслать, если интересно). Он называется 'ADO и COM в Visual Basic и Visual C++'. Вот лишь выдержка из него: '... Из выше приведенного листинга видно, что каждой строке кода на C соответствует строка кода на VB. Правда для того чтобы написать этот код на C++ пришлось потрудиться несколько больше, чем при написании той же программы на VB. Смотрите приложение 1 - Описание классов dyk_variant, dyk_bstr, и dyk_qiptr. Классы dyk_variant, dyk_bstr, dyk_qiptr пришлось создать, что бы скрыть некоторые рутинные операции с переменными тип BSTR, VARIANT и т.д. ...' То есть ничего сложного даже с COM и даже для VC++ нет. С уважением, Владимир P.S. Технология COM умирает и хоронит ее сама Microsoft, точнее не хоронит а скрывает COM+ под оболочкой платформы .NET. Создание и вызов методов компонентов становиться прозрачным независимо от того, какой из языков программирования используется, а вот про Visual Basic можно забыть - VB.NET уже совсем другой язык. Поддерживать VB Microsoft не собирается, а никому кроме Microsoft этот язык не приглянулся, в отличие от C++, который широко известен как под Windows, так и под другими OS: Unix, Linux...
0
|
|
|
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
|
|
| 11.04.2009, 19:06 | |
|
P.P.S. предложение 'не указывает на слабость языка программирования C++' следует читать как 'не указывает на сложность языка программирования C++'.
0
|
|
|
0 / 0 / 0
Регистрация: 11.10.2007
Сообщений: 103
|
|
| 12.04.2009, 01:06 | |
|
2Rider
и еще если вы не имеете представления о разнице между вб и с(++) то о написании игрушек вообще стоит забыть... Я, конечно, извиняюсь за вторжение. Не гуру я в С++, так, для общей эрудиции заглянул в этот топик, но просто не могу на этом месте промолчать. А Вы что же, уважаемый Rider, эту разницу с пелёнок знали? Или Вам дополнительные блоки памяти в роддоме вставили? Вам Ваши учителя тоже так говорили? Человек на форум за советом пришёл, а Вы ему: 'МОЛЧАТЬ!!! НЕ ТВОВО УМА ДЕЛА!!!' Он бедный, и пропал... Не стыдно?
0
|
|
| 12.04.2009, 01:06 | |
|
Помогаю со студенческими работами здесь
60
Перевод кода с Visual Basic в C++ Перевод с visual basic на с++ builder
Visual Basic .Net и Visual Basic 6.0 - В чём разница Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|