Плюсы и минусы VB & VBA?

20
задан Joel Coehoorn 18 April 2012 в 18:48
поделиться

9 ответов

VB6, VBScript, and VBA have the reputation because they just aren't industrial strength languages. Notably:

  • No OOP. Sure, you have classes and modules, but no inheritance. VB isn't a low-level language, it needs real objects.
  • No first-class functions, so you can't even simulate OOP or polymorphism.
  • Lack of a well-developed class library. VB6 has a small library of built-in functions, and almost all other functionality is delegated to Windows calls or (usually pricey) third-party components.
  • Lousy error-handling. ON ERROR RESUME NEXT is a pox on the planet.
  • Although its not the fault of the language, VBA earned a bad reputation by association with MSAccess.

Of course, VB wasn't really intended to be an industrial strength language, so maybe nothing mentioned above is really proper criticism of the language at all. Fortunately VB.NET and the latest versions of VBA fix everything above, so VB.NET is on par with any other "serious" language in the marketplace.


[anecdote]

In defense of VB, I find most people criticize the language just to go along with the status quo, not because they've actually used it.

A few years ago, in a chatroom, I ran across young neophyte railing against a VB6 developer for using such a crappy language. I innocently asked "what's wrong with VB".

The first thing he said was "Because its a WINDOWS language!" So I pointed out that Borland Delphi is a Windows only language*, but I've never heard anyone malign it for that reason. (* There was a product called Kylix which cross-compiles to Linux, but its expensive, buggy, and discontinued. Its been a while since I've used Delphi, but last I'd heard, its still not ready for Linux.)

So, he said "It has a HORRIBLE SYNTAX!" Is that really the reason people hate this language? I'd say Perl, Lisp, and C++ are worse on the eyes than VB.

Next, he says "Its too easy to learn!" Well, I'd consider that a point in favor of the language. I'll never write a GUI by hand if I have a drag-and-drop designer at my disposal. What else you got?

So finally, grasping at straws, he comments "It has... no string manipulation functions". Left, Right, Mid, Replace, InStr and Trim. QED noob.

Interestingly, VB has features found some "hacker" languages, namely variant datatypes and duck typing. Compiled code performed reasonably well, interop between COM and native windows DLLs was easy, and the GUI editor basically set the bar for all future RAD development.

[/ anecdote]

34
ответ дан 29 November 2019 в 22:27
поделиться

I work in a place where all the code is C#, not VB .NET. One developer wrote most of the code. You know how he achieved this feat? Easy: He copied-and-pasted all over the place. A given method might have anywhere from a few to hundreds of copies throughout the system.

Good developers can be good in any language. Crappy developers can be crappy in any language.

21
ответ дан 29 November 2019 в 22:27
поделиться

Прочтите некоторые из статей Джоэла Спольски , и вы почувствуете себя лучше. Из его статьи Работа над CityDesk, часть третья :

Visual Basic - чрезвычайно продуктивный способ написания кода, особенно кода GUI. Хотите жирный текст в диалоговом окне? В VB это один щелчок. Теперь попробуйте сделать это в MFC. Вам нужно создать подклассовый элемент управления, это большой беспорядок, вы должны знать все о LOGFONTS и подклассах окон Windows и о множестве других вещей, и вам понадобится около трех строк кода, когда у вас есть волшебный класс.

Но многие Программы VB - это спагетти, либо потому, что они сделаны быстро и грязно, либо потому, что они написаны хакерскими программистами, не обученными объектно-ориентированному программированию или даже структурному программированию.

Я подумал: что произойдет, если вы возьмете первоклассных программистов на C ++, мечтающих об указателях, и позволите им писать код на VB. В Fog Creek я обнаружил, что они становятся сверхэффективными машинами для кодирования. Код выглядит неплохо, он объектно-ориентированный и надежный, но вы не тратите время на использование инструментов более низкого уровня, чем вам нужно. Я потратил годы на написание кода для C ++ / MFC и годы на написание кода на Visual Basic, и позвольте мне сказать вам, VB намного, намного более продуктивен.

Эта простота привлекает множество новых программистов. Сказать, что существует много плохих программистов, использующих Visual Basic, не означает, что Visual Basic - плохой язык; это просто означает, что Visual Basic доступен для плохих программистов (также известный как новые программисты).

В Fog Creek я обнаружил, что они становятся сверхэффективными машинами для кодирования. Код выглядит неплохо, он объектно-ориентированный и надежный, но вы не тратите время на использование инструментов более низкого уровня, чем вам нужно. Я потратил годы на написание кода для C ++ / MFC и годы на написание кода на Visual Basic, и позвольте мне сказать вам, VB намного, намного более продуктивен.

Эта простота привлекает множество новых программистов. Сказать, что существует много плохих программистов, использующих Visual Basic, не означает, что Visual Basic - плохой язык; это просто означает, что Visual Basic доступен плохим программистам (также известным как новые программисты).

В Fog Creek я обнаружил, что они становятся сверхэффективными машинами для кодирования. Код выглядит неплохо, он объектно-ориентированный и надежный, но вы не тратите время на использование инструментов более низкого уровня, чем вам нужно. Я потратил годы на написание кода для C ++ / MFC и годы на написание кода на Visual Basic, и позвольте мне сказать вам, VB намного, намного более продуктивен.

Эта простота привлекает множество новых программистов. Сказать, что существует много плохих программистов, использующих Visual Basic, не означает, что Visual Basic - плохой язык; это просто означает, что Visual Basic доступен плохим программистам (также известным как новые программисты).

Я потратил годы на написание кода для C ++ / MFC и годы на написание кода на Visual Basic, и позвольте мне сказать вам, VB намного, намного более продуктивен.

Эта простота привлекает множество новых программистов. Сказать, что существует много плохих программистов, использующих Visual Basic, не означает, что Visual Basic - плохой язык; это просто означает, что Visual Basic доступен плохим программистам (также известным как новые программисты).

Я потратил годы на написание кода для C ++ / MFC и годы на написание кода на Visual Basic, и позвольте мне сказать вам, VB намного, намного более продуктивен.

Эта простота привлекает множество новых программистов. Сказать, что существует много плохих программистов, использующих Visual Basic, не означает, что Visual Basic - плохой язык; это просто означает, что Visual Basic доступен плохим программистам (также известным как новые программисты).

25
ответ дан 29 November 2019 в 22:27
поделиться

Также просто отметим, что VB, VBA и VB.NET - это три разных языка, хотя они могут иметь схожий синтаксис. Нет реальной разницы между VB.NET и C # (кроме ключевых слов / синтаксиса), поэтому мы не должны смешивать VB (6 и более ранние версии) и VBA с VB.NET.

Настоящая проблема, с которой сталкиваются многие программисты, " VB »(просто скажем, все 3 языка) больше о людях, которые его используют. В большинстве случаев программисты VB имеют менее формальное образование и пишут неаккуратный код. Это не верно для всех программистов "VB" (и это не значит, что не существует небрежного кода, написанного на C ++, Java, C # и т. Д.). Это просто типичное ожидание, которое испытывает тот, кто не использует VB, когда слышит о программах VB.

8
ответ дан 29 November 2019 в 22:27
поделиться

Да это просто религиозные фанатики.

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

5
ответ дан 29 November 2019 в 22:27
поделиться

Мне не нравится этот язык, но это в основном потому, что я работал с vb-подобным языком, который полностью исключил все , что могло бы считаться преимуществом, и заставил "передовой опыт" это действительно не имело смысла.

Самая большая проблема, с которой я сталкиваюсь с VB, заключается в том, что есть почти прямой след от невежественного непрограммиста -> скриптер Excel / Access на неполный рабочий день -> VBA "гуру" -> VB "программист "-> ведущий программист в самом важном проекте в компании.

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

У меня была возможность работать с VB.Net, и до тех пор, пока я относился к нему как к объекту, ориентированному на язык .Net в первую очередь во-вторых, это было не так уж и плохо. Однако это никогда не было бы моим первым выбором для нового проекта.

2
ответ дан 29 November 2019 в 22:27
поделиться

Среднее качество разработчика, кажется, обратно пропорционально популярности языка * простоте использования языка. VB очень прост и широко используется.

Это потому, что А) Есть спрос на программистов на популярных языках, поэтому каждый работодатель должен либо снизить свои стандарты, либо повысить зарплату, либо отказаться от разработчиков. Б) люди, не понимающие, могут показаться умеренно продуктивными в использовании простых в использовании языков. Имеется достаточно библиотек и инструментов с графическим интерфейсом, чтобы они могли собрать что-то полезное, даже если это полный мусор под капотом.

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

2
ответ дан 29 November 2019 в 22:27
поделиться

Я посещаю SO в промежутке между написанием кода VBScript, и это утверждение мне действительно кажется правдой. - В настоящее время я цирковой шимпанзе. Если вы больше ничего не знаете, VB и его варианты кажутся отличными языками.

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

1
ответ дан 29 November 2019 в 22:27
поделиться

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

Конечно, неверно, что все программисты VB - плохие разработчики. Но когда у всех есть истории об «одном старом парне из VB, с которым я работал». Распространяется стереотип.

0
ответ дан 29 November 2019 в 22:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: