Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.97/125: Рейтинг темы: голосов - 125, средняя оценка - 4.97
0 / 0 / 0
Регистрация: 20.01.2009
Сообщений: 118

Чем C++ лучше Visual Basic?

12.03.2009, 23:34. Показов 25000. Ответов 66
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Обращаюсь ко всем, кто программирует на C++.

Кто мне может просто и ясно объяснить, в чем заключаются преимущества и 'мощность' языка C по сравнению с Visual Basic?

Пока что я только знаю, что C является языком с более сложным синтаксисом и что, как написано в MSDN, почти все первоклассные программы писались на Visual C++. А какие именно есть возможности в языке C, которых нет в других языках вроде VB?

Кстати, как пишутся сложные игры, как Age Of Empires или другие стратегии? Реально их написать на Visual Basic или нет?

И еще: чем отличаются C, Borland C и MS Visual C++?

Спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.03.2009, 23:34
Ответы с готовыми решениями:

Новичок пришел с basic на с++ builder и хотел бы узнать что лучше и чем.
И так пришёл новичок с бейзика на с++ билдер и хотел бы узнать и местных диванных гениев, что лучше и чем. А также самый нужный для...

В чём отличия С++Builder 6 и visual c++ 6. И что лучше юзать????
В чём отличия С++Builder 6 и visual c++ 6. И что лучше юзать???? Не магу понять какая разница между ними. И там и там есть визуальный...

Чем отличется С++ Builder от Visual C++ (и от Visual C++.Net)?
Чем отличется С++ Builder от Visual C++ (и от Visual C++.Net)? Говорят, что С++ Builder - это переходная ступенька между Delhpi и Visual...

66
0 / 0 / 0
Регистрация: 10.07.2007
Сообщений: 105
13.03.2009, 14:17
Ну, самым большим отличием является то, что программы на С++ компилируются. Значит, скорость выполнения программы возрастает в несколько раз.
0
0 / 0 / 0
Регистрация: 20.01.2009
Сообщений: 118
13.03.2009, 17:06  [ТС]
А что, программы на VB не компилируются? Ведь я нажимаю на кнопку 'make .exe', и получаю самостоятельный файл. Неужели это не компиляция? Если нет, то что такое 'компилировать'?
0
Ghost
13.03.2009, 19:05
не надо путать P-code-образные вещи от Visual Basic/Java (сейчас заклюют - но перед тем как клюнуть - поищите в инете - можно из .jar/.class сделать .exe )) )/C# от того, что генерится на ASM/C(++) - тот код выполняется в режиме интерпретации (не пойте мне про компиляцию - не поверю я )), а НОРМАЛЬНЫЙ .exe исполняется самим процессором, хотя.... - чем дальше в OS, тем более смазываются границы. Ну, это меня на философию потянуло ))))
pl
51 / 17 / 6
Регистрация: 18.05.2007
Сообщений: 1,322
14.03.2009, 13:03
На сколько я знаю в VB6 есть и P-code компиляция и компиляция в исполняемый код. Единственная проблема: программы скопмилированные даже в исполняемый код требуют наличия msvbvm??.dll (по крайней мере программмы с GUI, COM можно и без этой библиотеки использовать), что иногда бывает неприемлемо.
Например необходимо сделать программу, чтобы запускалась без инсталяции, или чтобы размер дистрибутива умещался на дискету, у меня полный дистрибутив программки размером 140 кило занимает около двух метров, после того как туда подключается msvbvm60.dll размер которой 1,3 метра.
0
Ghost
14.03.2009, 17:22
гы-гы ))) Не мелочись - для любой современной прикладной проги требуется для запуска как минимум OS ))) а это обычно минимум 50 мегов. Времена DOS'а прошли - всем сейчас ГУЙ подавай. Так что не мелочись - '...хотя, - как добавил Робин Гуд, - всё это уже мелочи...'
pl
51 / 17 / 6
Регистрация: 18.05.2007
Сообщений: 1,322
14.03.2009, 17:37
Первый принципиальный момент - необходимо создавать дистрибутив, паковать туда все необходимые библиотеки. А, например, в дельфи достаточно одного экзешника, который даже не надо инсталировать.

На счет размера конечного продукта (дистрибутив или экзешник) не согласен, если предполагается распространять программу через интернет или для провинции, то размер менее 1,4 метра очень важен, чтоб на дискету умещалось. Это я по своему опыту уже понял, поскольку пришлось портировать VB программу на Delphi дабы она влезла на эту чертову дискету :-)
0
Ghost
15.03.2009, 01:36
Тогда надо писать на VC++ 6.0 с MFC - mfc42.dll есть почти везде )))) Только вот версии могут разные оказаться ))))
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
16.03.2009, 21:30
Мне что ли свое слово сказать...

Во первых строках моего письма... хотелось бы оправдать VB, на самом деле VB давно уже компилирует свои программы по умолчанию в так называемый native code. И exe-файл на выходе компилятора есть самая настоящая программа, а не P-code. Да он требует для исполнения вспомогательную библиотеку msvbvmX0.dll, но это вовсе не означает, что код интерпретируется. Используя утилиту Dependency Walker из пакета Visual Studio, можно увидеть что ни один из существующих exe-файлов не обходится без вспомогательных библиотек Другой вопрос на сколько оптимален компилятор Visual Basic, вот это уже вопрос...

Во-вторых, хотелось бы вернуть аудиторию в русло изначального вопроса: чем же С++ лучше VB. Я бы на первое место привел бы тот аргумент, что C++ является объектно-ориентированным языком, в отличие от VB (речь как я понимаю идет о VB 6.0, а не о VB.NET, иначе мое утверждение не верно). Это упрощает проектирование и разработку сложных систем, их поддержку и дальнейшее расширение. Это не единственное достоинство C++, но хотелось бы выслушать мнение аудитории...

С уважением, Владимир
0
0 / 0 / 0
Регистрация: 20.01.2009
Сообщений: 118
17.03.2009, 16:05  [ТС]
Всем спасибо за ответы,

Действительно, разговор ушел далеко от изначально поставленного вопроса. Мне все-таки хотелось бы более точно выяснить, чем же C++ лучше Visual Basic. Насколько я понимаю, люди на этом форуме программируют именно на C++, и, наверное, они не 'для прикола' избрали этот язык, который к тому же имеет более сложный синтаксис.

Я читал, что вычисления на C++ делаются быстрее, чем на VB. Так ли это? Есть ли реальные подтверждения этому?

Если сравнивать VB .NET и C++, которые оба являются объектно-ориентированными языками, какой из них лучше?

Итак, чем же C++ так хорош?

Надеюсь, что кто-нибудь даст мне понятные объяснения.
0
Ghost
17.03.2009, 20:36
Понятно.
Вот различие - надо перевезти:
1. 20 пассажиров
2. 10 тонн груза
3. 2 человек очччень быстро по городу

Какой транспорт берем?
1. Каток паровой
2. ferrari
3. самосвал

)))

Вот вкратце разница.

Если быть более точным - то:
C++ дает бОльшую свободу программеру на тему того - что и как делать. Достаточно вспомнить, что Windows NT написан на C++

приложения, написанные на C++ в целом стабильнее (не надо камней - я знаю, что и на C++ можно написать уродскую прогу)

С++ тяжелее в освоении, но он язык ООП - в отличие от VB6-.

1 строка на VB = 1..20 строкам на С++, в среднем 5-ти.

еще надо ? )))
Tremr
18.03.2009, 15:05
Главное преимущество С++ это скорость работы проги. На VB можно написать всё то же что и на С++, на работать будет медленнее. Поэтому всё что сильно нагружает проц пишется на С++. В 95-е времена я писал на VB. Может кто-то помнит как тормозил MS-Word на 386-х компах, а DOOM работал приемлемо. По непроверенной инфе тот Word был написан на VB. Да и вообще программист на С++ звучит гордее чем программист на VB. С даёт ближе подобраться к железу, хотя в Виндах это всё менее и менее ощутимо. Причем Bilder не в счет в Visual это заметнее по-моему. А еще в С++ можно писать красиво и по разному. Я могу определить по виду кода, написал ли этот код кто-то из моих знакомых и кто именно. Кстати, никто не знает, под Винды можно ли писать ассемблерные вставки в Visual C++.
0 / 0 / 0
Регистрация: 10.07.2007
Сообщений: 105
18.03.2009, 15:40
'На VB можно написать всё то же что и на С++'

Ну, это, скажем прямо, даже в первом приближении не является истиной. Если жи считаете, что я неправ, напишите драйвер на барсике.
0
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,930
Записей в блоге: 5
22.03.2009, 18:29
Статья посвященная сравнению разных языков программирования (точнее - разных компиляторов) с точки зрения производительности

http://www.optim.ru/cs/2001/3/compar/compar.asp

Утверждения, что VB не может компилировать свой код сильно устарели. Времена выполнения вычислительных алгоритмов в VB и C++ отличаются незначительно. Небольшое отличие объясняется качеством оптимизации кода а не якобы заменой в VB компиляции интерпретацией. Хотя интерпретация в бейсике тоже возможна. Это дает, кстати, очень маленький размер exe файла.

Почитайте статью. Недоверчивые могут сами организовать подобные тесты и проверить.

Так что главные недостатки бейсика совсем не в его вычислительной неполноценности.

Конечно, это не значит, что бейсик имеет те же вычислительные возможности, что и C. Я к примеру, не вижу, как на бейсике эффективно организовать сдвиги данных, кроме как умножение/деление на степерь двойки. А это часто требуется в программах сжатия криптования и проч. Не допускает бейсик также ассемблерных вставок, что не дает возможности использовать очень эффективную команду ассемблера translate.
0
abcdefg
25.03.2009, 15:16
С выходом с свет VB.NET ситуация радикально меняется. VB стал вполне приличным языком программирования (OOP etc). Его компилятор создает .NET код ни чуть ни хуже чем C# или VC++ (managed extensions). (VC++ кстати такой корявый .NET код создает; одно успокаивает, что работает он все-таки быстро).

VitFil:
Драйверы на VB не пишут - это верно. Их не пишут и на C++, а на C. А почему? Да потому, что C++ библиотеки не доступны из ядра. То же самое относится и к VB. Но вовсе не потому, что VB - это какой нибудь третьесортный язык, на котором нельзя писать нормальные программы.

Tremr:
95-й год уже в прошлом столетии. VB работает ни медленнее, чем C++.
Да, кстати, Word всегда писался на C и C++. А аргумент, что 'программист на С++ звучит гордее чем программист на VB' просто глуп. Я могу точно сказать, что 90% C++ программистов не знают, как писать клиент-сервеные приложения. У VB-шников-же это в крови.

Ghost:
Ты здесь дизинформацию не разводи! Тебе действительно лучше будет на фил-факе.

micha12:
C++ ничем не лучше VB.NET. А в по некоторым параметрам C++ явно хуже. Давай разберем каждый из аргументов:

-- “не 'для прикола' избрали этот язык, который к тому же имеет более сложный синтаксис”.
C++ намного сложнее VB.NET. Я бы даже сказал, что C++ настолько сложен, что для его освоения в нормальной степени требуется как минимум 2-3 года активного программирования на этом языке (и его паралельного усиленного изучения). Я знаю людей с более 5 летним профессиональным опытом, которые до сих пор не могут писать хорошего C++ кода. В лучшем случае их код сходит за нормальный C (with classes).

С++ c его 20-летней историей до сих пор активно изучается “лучшими умами”. Пределы его использования до сих пор не до конца осмысленны. Буквально за последние 2 года такие C++ библиотеки как Loki, Blitz++, Boost, Sprint произвели настоящую революцию в C++.

Как отступление: я как-то увидел web страницу одного человека, который оставил довольно успешную карьеру физика-теоретика, чтобы иметь вожможность посвещать больше времени своей другой страсти – C++. Честно говоря, я не был удивлен.

VB.NET. Солидный, полнофункциональный (без натяжек) язык программирования. Он стоит на одном уровне с C# и Java. (Кто-то сказал, что “Java has no intellectual value whatsoever.” Это был один из дизайнеров STL. Он извращенец (в хорошем смысле этого слова). )
На VB.NET могут писаться и пишутся самые разнообразные проекты начиная простыти UI приложениями и заканчивая сложными n-уровневыми клиент-серверными системами. Почему я сравнил VB.NET с Java? Потому что VB.NET будет изучить также легко как и Java. А так как Java всем гораздо более известен, то становится более понятным, что из себя вообже может представлять VB. (Приходит на ум еще одна аналогия ... Delphi!)

-- “Я читал, что вычисления на C++ делаются быстрее, чем на VB. Так ли это? Есть ли реальные подтверждения этому?”
Какие вычисления? Ты работаешь в НИИ? Тогда тебе нужно изучать Fortran, а не VB или C++. Настоящее положение дел заключается в том, что очень хорошо оптимизированный вычислительный C++ код (Blitz++) будет работать в 2-3 раза быстрее эквивалентного (насколько это возможно) VB.NET кода. Тебе это подходит? Будет нечестно не сказать, что этот код на C++ будет написать гораздо сложнее, и займет это гораздо больше времени (наверняка за это время железо станет в 2-3 раза быстрее ;-) ).

--“Итак, чем же C++ так хорош?”
Bottom line, как говорят некоторые: C++ чертовски крут, но и чертовски сложен. VB.NET тоже крут, но и понятен простым смертным. Выбор за вами.
Ghost
25.03.2009, 23:11
И где деза?
0 / 0 / 1
Регистрация: 15.12.2007
Сообщений: 381
25.03.2009, 23:54
Кину и я пару словей...
Да на C++ можно сделать действительно быстрый и чистый код. Автор топика упоминал игрушки? Как я понимаю Вы начинающий программер и как наверно большинство из нас решил написать свою интерпритацию чего-то подобного. За описанием этого (не сочтет модератор за рекламу) рекомендую www.vbstreets.ru там есть разделы популярно объясняющие преимущества C++ (или ссылки из этих разделов)
Но на VB какую нить более менее большую UI делать гораздо быстрее.
Многие насильники возразят - мол они посоревноваться готовы. А позвольте спросить сколько у Вас опыта? Четыре пять лет? А VBшник такое через год ваять сможет.
А воще учите VBNET, тем более и C# ему родня
0
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
26.03.2009, 00:15
Я бы уж тогда C# в этом случае рекомендовал, синтаксис не трудный, но гораздо более гибкий.

А на счет БОЛЬШИХ GUI у меня резонный вопрос: почему же тогда все боле-менее приличные приложения написаны на C++, ну или в крайнем случае на Java с применением JNI для ускорения графики или без оной, если уж VB так хорош, прост в освоении и создает достаточно быстрый код (в чем я не сомневаюсь)?

По моему скромному мнению, я бы отвел для Visual Basic (опять же это не VB.NET) нишу средних и малых программ/утилит для супер быстрой разработки и единичного применения, преимущественно для работы с БД. Типичной задачей может быть небольшая програмка по учету складских товаров для конкретного предприятия. Создается в течении месяца одним-двумя программистами, для поддержки требуется помощь тех же программистов и, возможно, полная переработка кода - зависит от того насколько изменилась задача...

Касательно VB.NET, я бы рекомендовал его использование только тем программистам, кто работал до этого с VB и не желает изучать новый язык. Всем остальным настоятельно рекомендую познакомиться и использовать C# для разработки приложений под платформу .NET. Этот язык был специально разработан Microsoft для вышеупомянутой платформы и вобрал в себя все лучшее из синтаксиса таких языков как C++, Java и Object Pascal. Кроме того, он полностью раскрывает все возможности платформы для разработчика.

С уважением, Владимир
0
0 / 0 / 0
Регистрация: 20.01.2009
Сообщений: 118
26.03.2009, 03:24  [ТС]
Спасибо всем за кучу объяснений, особое спасибо abcdefg.

Теперь начинает складываться какое-то впечатление о том, что такое C++.

У меня возник вопрос относительно Vb.Net. Дело в том, что в настоящее время я создаю определенную программу, в которой делаются достаточно сложные вычисления. Кстати, именно поэтому я и спрашивал, насколько C++ быстрее, чем Visual Basic. Путем оптимизации я добился того, что эти вычисления делаются в VB достаточно быстро, так что проблем вроде нет. Итак, я решил попробовать VB .Net, и обнаружил, что он работает медленне, чем VB 6.0. Правда, я не создавал .exe файла, а проверял работу программы в самой среде Visual Studio .Net. Она долго думает, появляется при этом какое-то окно с какими-то надписями. В общем, все как-то тормозит. Действительно ли VB .Net работает медленнее, чем VB 6.0?

То, что также мне не понравилось в VB .Net, так это то, что для работы программы требуется .Net Framework, которого нет в составе Windows 98. Значит, его надо дополнительно устанавливать, к тому же требуется еще Internet Explorer 5.01. В общем, дополнительные проблемы. Программу я собираюсь распростанять через Интернет, и качать 30 мегабайт никому не охота.

А так мне в VB .Net понравилось то, что он язык более структурированный, что-ли, и логичный. Удобнее там работа с API функциями, не надо каждый раз писать Declare ... Но на самом деле эти преимущества для моей программы не играют супер большой роли, так что я больше (по выше названным причинам) склоняюсь к VB 6.0.

Вот так.
0
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
26.03.2009, 11:00
Задумчиво... К хорошенькому же результату мы пришли на форуме по C++.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.03.2009, 11:00
Помогаю со студенческими работами здесь

Перевод кода с Visual Basic в C++
Помогите перевести код с Visual Basic в C++ :wall: For i = 2 To n Line (P(i - 1).x * 10 + Line1.X1, -(P(i - 1).y) * 10 +...

Перевод с visual basic на с++ builder
Есть пара строк в коде, которые я не знаю как реализовать на с++, подскажите пожалуйста как. Вот строки: 1. s=GetPixel(Pic1.hdc,x,y)Mod...

Какую среду программирования лучше выбрать для обучения языку C++ ? Visual Studio,Visual Basic или Visual C++?
И напишите,чем рекомендуемая вами среда программирования лучше других? Насколько я понял из Википедии они все поддерживают язык...

Visual Basic 6 и Visual Basic .NET - в чем различия?
Visual Basic и Visual studio это не одно и тоже? если нет то в чём разница, по мимо оформления?

Visual Basic .Net и Visual Basic 6.0 - В чём разница
В общем возник вопрос: Visual Bisic.Net и Visual Basic - это два разных языка, или же .NET версия это лишь его улучшение. Я так понимаю что...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через 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. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru