Luca
Модератор
Зарегистрирован: 05.10.2012
Сообщений: 1262
Расскажите мне, зачем нужен VB.NET, и почему Microsoft его продолжает упорно тянуть, хотя имело смысл его похоронить (и даже не рождать) много лет назад

Сейчас все приложения уже успели отказаться от поддержки VB, но вместо интеграции с C# или хотя бы Ruby (благо у MS была лицензия) перешли на VB.NET.

Однако чем по факту является VB.NET Фактически это почти полный клон C#, который не только обладает схожими возможностями, но даже и разрабатывается той же группой разработчиков.

Соответственно на рынке есть продукт от одной и той же компании, которые делает "почти тоже самое". Разве не маразм В качестве других примеров подобного маразма от Microsoft хочу привести месседжеры! Вплоть до недавнего времени их было аж 3! Live Messager, Skype, Lync. Целых три продукта делали почти тоже самое. Сейчас их осталось два, но от этого не легче.

Соответственно имея VB.NET Microsoft приходится тратить в 2 раза больше усилий на:
- написание документации по данному языку
- выпуск разнообразных SDK
- интеграции данного языка в различные продукты (да ту же студию)
- поддержку сторонних разработчиков и компаний, которые этот VB.NET используют
- маркетинг
- выпуск книг
- и тд.

Если мы признаем, что часть этого не нужно, то будет закономерный вывод о ненужности VB.NET.

Что предлагается с ним делать Обучать на нем Смыл Тогда уж C# т.к. синтаксис у VB.NET ни сколько не короче, а зачастую и длиннее, чем шарповский.

/forumlinexp/Files/19112a37-4fa4-4d3c-a4c7-7c97e1a1a587.png

/forumlinexp/Files/25784122-ac78-4c89-b2b0-fb87f08363be.png


Рыночные продукты делать Да не в жизнь! Я кроме небольших любительских утилиток на нем никогда ничего не видел. Все или на каком нить Python пишут или сразу на C#. Как промежуточное звено VB.NET не использует никто.

Как встроенный язык в приложения, он не имеет должной степени абстракций, как правило специфичных для каждого приложения, что не дает ему никаких преимуществ.

Отсюда законное предположение, что VB.NET все таки не нужен.
Теги: VB.NET  

Комментарии36

0 0

gaal
Новичок
Зарегистрирован: 22.10.2012
Сообщений: 292
Basic он такой.

http://blog.dotkam.com/wp-content/uploadhere/2008/11/zx-sinclair-basic.png


Что VisualBasic, что Gambas. Отдаленно напоминают. Другого не признаю :)

http://www.dotkam.com/2008/11/19/zx-spectrum-child/
-- Кактус, который семь лет простоял возле монитора компьютера, умеет самостоятельно переустанавливать Windows

0 0

Белая рысь
Золотой пользователь
Зарегистрирован: 06.10.2012
Сообщений: 1583
Luca, я не уловил мысль:
все приложения уже успели отказаться от поддержки VB, но ... перешли на VB.NET.
Но
VB.NET не нужен
Имхо, объясняется всё очень просто, как и всё гениальное: у него, как и у похапе в вебе, околонулевой порог вхождения, соответственно, для написания скрипта уровня "Hello World" ньюфагу не придётся долго биться головой об очередной синтаксис C# Perl Python Bash Java Brainfuck FoxPro ещё какого-нибудь языка вуду. Вот и всё. К тому же, учитывая, что, в основном, работа идёт со встроенными объектами автоматизации/.NET, документации много писать не надо, большая часть создаётся методом Ctrl+H.
-- God is real, unless explicitly declared as integer.

0 0

Luca
Модератор
Зарегистрирован: 05.10.2012
Сообщений: 1262
Белая рысь, у него не нулевой порог вхождения, его синтаксис и конструкции не сколько ни легче, чем у C#, а зачастую напротив сложнее в силу того, что язык не эволюционировал, а топтался на месте.
-- тишина - самый громкий звук

0 0

Белая рысь
Золотой пользователь
Зарегистрирован: 06.10.2012
Сообщений: 1583
1) Любой регистрочувствительный язык вызовет у неподготовленного человека вывих мозга при попытке понять, почему
int Index = 5;
printf(%d, index);
выдаёт на экран 0. В лучшем случае. А то и вообще отказывается выполняться с воплем о какой-то неинициализированной переменной;
2) Из Ваших же примеров:
while ((line = reader.ReadLine()) != null)
vs
While Not line Is Nothing
Имхо, вариант на VB далёкому от программирования человеку несколько интуитивно понятнее, не
-- God is real, unless explicitly declared as integer.

0 0

Linups Trololvalds
Золотой пользователь
Зарегистрирован: 06.10.2012
Сообщений: 663
Любой регистрочувствительный язык вызовет у неподготовленного человека вывих мозга при попытке понять
Интересно, зачем неподготовленному человеку пытаться понять это Кто он Неподготовленный программист Странно, зачем нужны неподготовленные программисты
-- nVidia, it's you Just follow my finger...

0 0

Luca
Модератор
Зарегистрирован: 05.10.2012
Сообщений: 1262
Имхо, вариант на VB далёкому от программирования человеку несколько интуитивно понятнее, не
Зачем человеку далекому от программирования нужен VB
-- тишина - самый громкий звук

0 0

TrollWINNT
Пользователь
Зарегистрирован: 01.11.2012
Сообщений: 72
Расскажите мне, зачем нужен VB.NET, и почему Microsoft его продолжает упорно тянуть, хотя имело смысл его похоронить (и даже не рождать) много лет назад
Руки прочь от бэйсика :) . Чем он не угодил то Может это C# не нужен Эта приблуда изгадила саму идею С и С++. Си удобен как низкоуровневый язык программирования и основная его прелесть в том, что со сравнительно небольшими усилиями получаем код по скорости близкий к ассемблеру. Но на кой это переносить на NET Только для удобства С программистов Ну тогда и VB так же имеет право на жизнь. Вот за что уважаю майкрософт, так это за то что они никогда не орут "нинужно", а берут и делают. А там, глядишь что и выйдет :) .

0 0

gaal
Новичок
Зарегистрирован: 22.10.2012
Сообщений: 292
напомнили. думаю для своего проекта D попробовать. пока не совсем понятно собирается ли под ARM
-- Кактус, который семь лет простоял возле монитора компьютера, умеет самостоятельно переустанавливать Windows

0 0

Luca
Модератор
Зарегистрирован: 05.10.2012
Сообщений: 1262
Может это C# не нужен
На нем пишут серьезный софт, на VB нет.

Ну тогда и VB так же имеет право на жизнь
На основании чего сделан такой вывод Какие преимущества он имеет, перед C#, которые позволяли бы ему существовать
-- тишина - самый громкий звук

0 0

Babusha
Модератор
Зарегистрирован: 07.10.2012
Сообщений: 602
Насколько мне помнится, VB.NET изначально создавался, как замена для VB и перенос приложений для платформы .NET. Тогда же C# создавался как альтернатива Java, только с блекджеком. На данный момент, все пердовые фичи изначально создаются для C#, а потом их переделывают под синтаксис VB и пихают туда же.
-- Вера - шедевр воплощения Дьявола.

0 0

Белая рысь
Золотой пользователь
Зарегистрирован: 06.10.2012
Сообщений: 1583
Странно, зачем нужны неподготовленные программисты
Зачем человеку далекому от программирования нужен VB
М-м-м-м-м... Дайте подумать... Есть! Чтобы бухи сами в ёкселе себе ваяли макросы, например.
Или вы только тупых в хлам бухов, только и умеющих орать "уминяниработаит!!!!1!111!!" видели
А потом, коль скоро язык уже в офисе поддерживается, и в студию его положить. Удобно ж везде на одном наречии шпрехать.
-- God is real, unless explicitly declared as integer.

0 0

Luca
Модератор
Зарегистрирован: 05.10.2012
Сообщений: 1262
М-м-м-м-м... Дайте подумать... Есть! Чтобы бухи сами в ёкселе себе ваяли макросы, например.
Не будут Бухи сами себе макросы ваять. То, что одна из сотен синтаксических конструкций чуть проще, чем в Шарпе ничего не значит. Язык по прежнему остается слишком сложным (уж точно не проще Шарпа).

А потом, коль скоро язык уже в офисе поддерживается, и в студию его положить. Удобно ж везде на одном наречии шпрехать.
Его оттуда 10 раз уже выпилить нужно было. Для работы с офисом нужны другие языки с другими абстракциями. С таким же успехом можно С++ пытаться применять.

На данный момент, все пердовые фичи изначально создаются для C#, а потом их переделывают под синтаксис VB и пихают туда же.
А нафига На нем никто ничего серьезного не писал и не пишет или MS надеяться вырастить конкурента Шарпу
-- тишина - самый громкий звук

0 0

Babusha
Модератор
Зарегистрирован: 07.10.2012
Сообщений: 602
А нафига

А почему ты у меня спрашиваешь Я в жизни даже хеллоуворда на нем не писал, ибо учить "шарп наоборот" у меня не было ни малейшего желания.
-- Вера - шедевр воплощения Дьявола.

0 0

Белая рысь
Золотой пользователь
Зарегистрирован: 06.10.2012
Сообщений: 1583
Не будут Бухи сами себе макросы ваять.
Будут. И эйчары будут. И даже секретарша офис-менеджер будет. Потому что знать инструмент - это хорошо и правильно. И, заметьте, это не теория. Я их видел. И работал с ними. И был в шоке от того, что может наваять в ёкселе человек, который знает, что делает.
Его оттуда 10 раз уже выпилить нужно было.
Ага. И потерять тучу экселек с накрученными мегаскриптами от всяческих банков етц. Гениальная идея.
И, кста, есть предложения на альтернативу Брейнфак не предлагать. =))
-- God is real, unless explicitly declared as integer.

0 0

Babusha
Модератор
Зарегистрирован: 07.10.2012
Сообщений: 602
есть предложения на альтернативу

Никакой абсолютно. Впихнуть туда PowerShell или C# - шило на мыло.
-- Вера - шедевр воплощения Дьявола.

0 0

Белая рысь
Золотой пользователь
Зарегистрирован: 06.10.2012
Сообщений: 1583
Никакой абсолютно. Впихнуть туда PowerShell или C# - шило на мыло.
Вот. С одним различием: vba уже есть и работает, а PS/C# - нету. Можно добавить - но зачем представителю духовенства столь сложный музыкальный инструмент.. Чтобы, гневя Оккама, сущности плодить Вот уж что нинужно - то нинужно.
-- God is real, unless explicitly declared as integer.

0 0

Svart Testare
Новичок
Зарегистрирован: 07.10.2012
Сообщений: 36
Лука, в твоих примерах в начальном посте видно зачем нужен VB.NET — для простоты :) Синтаксис очевидно проще, сфера применения шире (я подразумеваю VBA, который может осилить любой грамотный человек, использующий Word/Excel чуть более, чем остальные), точка вхождения ниже (опять же из-за простоты и наглядности по сравнению с жабой и шарпом). Сам знаю нескольких когда-то далёких от программирования людей, которые ради интереса попробовали изучать VB.NET и им понравилось, быстро освоились. Потом уже заинтересовались другими, более «профессиональными» языками.
Так что VB.NET нужен, тем более что и поддержка у него шикарная, и литературы полно, и зная его можно реализовать многое, что предлагается на том же шарпе от Microsoft.

0 0

Linups Trololvalds
Золотой пользователь
Зарегистрирован: 06.10.2012
Сообщений: 663
Есть! Чтобы бухи сами в ёкселе себе ваяли макросы, например.
Бррр...бухи, работающие в ёкселе – это либо SOHO с мизерным оборотом, вот то-то на них Майкрософт озолотится, либо каменный век программного обеспечения. Сейчас не 90-е, бухи фирмы с даже сотнями человек персонала, работающие в ёкселе – нонсенс. Кроме того, ёксель более приспособлен для научных расчетов, чем для бухгалтерии. Не, повторюсь, для SOHO в Верхнепердищенске фирмы, торгующей рогами и копытами, возможно, и ничотак, остальное там на том же уровне.
-- nVidia, it's you Just follow my finger...

0 0

Nordvind
Новичок
Зарегистрирован: 14.01.2013
Сообщений: 1
Очевидно же - энерпрайз. Давно доказано, что можно сделать хороший язык, понятный начинающим и идеальный для скриптов - Python. Только вот покуда в ИТ полно эффективных манагеров, которые ставят требования, не разбираясь в computer science вообще - васик и прочие говноязыки типа кобола будут жить. Спрос рождает предложение, и на позиции по васику как мухи слетаются г-нокодеры.

0 0

Luca
Модератор
Зарегистрирован: 05.10.2012
Сообщений: 1262
У нас есть код на VBScript, и в одной часто вызываемой функции мы определяем оператором Dim несколько переменных, которые нигде в функции не используются. Не замедляется ли каждый вызов функции из-за объявления этих переменных

В компилируемом языке, таком как Си, объявление локальных переменных общим размером n байт всего лишь вычитает n из указателя стека при входе в функцию. Если n будет чуть больше или чуть меньше, затраты времени на вычитание никак не изменятся. Наверное, в VBScript точно так же Оказалось, что нет!

Объявил переменную — получай переменную. Откуда VBScript может знать, не собирается ли функция выполнить что-то вроде

Function foo()
    Dim bar
    Execute("bar = 123")

Чтобы такой код выполнялся корректно, движок VBScript вынужден во время выполнения хранить список имён всех объявленных переменных. В результате объявление каждой лишней переменной отнимает время при каждом вызове функции.

На моей машине каждая лишняя переменная замедляет каждый вызов функции на 50 наносекунд. Суммарное замедление растёт линейно с ростом числа лишних переменных, хотя я не проверял случаи с тысячами неиспользуемых переменных, сочтя такое нереалистичым. Кроме того, я не проверял случаи с очень длинными именами переменных: хотя VBscript и ограничивает имена переменных 256 символами — вполне вероятно, что объявление длинных имён отнимет больше времени, чем объявление коротких. Задержка на объявление переменной связана с выделением памяти в куче, так что на сервере она может расти нелинейно — в зависимости от загруженности кучи другими потоками.

Как такое недоразумение, как VisualBasic смогло дожить до 2013 года

пруф
-- тишина - самый громкий звук

0 0

Белая рысь
Золотой пользователь
Зарегистрирован: 06.10.2012
Сообщений: 1583
Как такое недоразумение, как VisualBasic смогло дожить до 2013 года
Дайте, угадаю...
Можете мысленно заменить ASP и VBScript на PHP, JavaScript, или на другой скриптовый язык по вашему вкусу.
Из той же статьи.
Так что ответ: абсолютно так же, как любой другой скриптовый язык. Ещё вопросы
-- God is real, unless explicitly declared as integer.

0 0

MOP3E
Золотой пользователь
Зарегистрирован: 11.01.2013
Сообщений: 1887
Расскажите мне, зачем нужен VB.NET, и почему Microsoft его продолжает упорно тянуть, хотя имело смысл его похоронить (и даже не рождать) много лет назад
В силу привычки. VB.Net на данный момент такой же точно дотнет язык, как и C#, только с привычным VB-шным синтаксисом. Одна и та же программа на C# и VB.Net скомпилируется в один и тот же исполняемый код. Об этом неоднократно писали в литературе.

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

0 0

Luca
Модератор
Зарегистрирован: 05.10.2012
Сообщений: 1262
MOP3E, что же эти специалисты пишут Я нигде его кроме макросов в проклятом Excel не видел. Ни одного рыночного решения, да даже просто вменяемой поделки нет.

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

0 0

MOP3E
Золотой пользователь
Зарегистрирован: 11.01.2013
Сообщений: 1887
MOP3E, что же эти специалисты пишут Я нигде его кроме макросов в проклятом Excel не видел. Ни одного рыночного решения, да даже просто вменяемой поделки нет.
Пашу спроси. Он у нас VB-программист. Насколько я знаю, обычно на VB пишут интерфейсы для взаимодействия с базами данных.

И для справки:
VB, Visual Basic - самостоятельный язык, входит в состав Visual Studio. Компилируемый.

VB.Net, Visual Basic .Net - .Net язык с синтаксисом Visual Basic, предоставляет те же самые возможности, что и большинство других .Net языков, включая кроссплатформенность.

VBA, Visual Basic для приложений - язык программирования, предназначенный для автоматизации приложений. Как самостоятельный язык не используется. Входит, например, в состав WinCC и Bricscad. Интерпретируемый.

VBS, Visul Basic Script - скриптовый язык, входящий в состав многих пакетов Майкрософта и различных сторонних программ. Отличается практически полным отсутствием типизации. Интерпретируемый.

0 0

Белая рысь
Золотой пользователь
Зарегистрирован: 06.10.2012
Сообщений: 1583
кроме макросов в проклятом Excel
О, да. ОО.о Calc рулит, а MS нинужен. Luca, поимейте лучше совесть вместо мозгов окружающих. Альтернатива где
-- God is real, unless explicitly declared as integer.