Регистрозависимые и нечувствительные языки?

visual basic.net нечувствителен к регистру, поэтому он позволяет программисту писать, не заботясь и не запоминая регистр переменных. он также избавляет от ошибок 'undeclared variable', если вы используете переменную в другом случае, чем тот, который использовался в объявлении. Тот факт, что его окончание строки является переводом строки, делает его еще более читабельным, в отличие от C# или C++, которые нуждаются в тщательном уходе за оболочкой и продолжительной войной, следуя {}, сопоставляя их и выясняя, для чего.

У меня вопрос, каковы преимущества C# по сравнению с vb, зная, что оба компилируются в MSIL, так что почти нет разницы в производительности между двумя языками?

4 ответа

Решение

Обшивка не волнует меня; особенно с любой приличной IDE у вас будет intellisense, автозаполнение, автокоррекция и т. д. В худшем случае: компилятор найдет его для вас. И я действительно не куплюсь на то, что принуждение к определенному шаблону межстрочного пространства - это хорошо (и да, я использовал VB годами).

Это правда, что C# и VB.net имеют много конвергенции, особенно сейчас с динамическим (что помогает подключить единственный реальный пробел в C# bs VB.net).

Для мощной функции C#: блоки итераторов (она же возвращает доход). Также; Лямбда-синтаксис является более полным / универсальным.

Но менее конкретный аргумент: используя оба, я нахожу C# более выразительным, более простым для чтения / поддержки и более чистым. Короче: мне это очень нравится;)

Существует также случай, когда начиная с синтаксиса, знакомого для java/c/ C++/JavaScript, легче переносить.

Я родом из Delphi и несколько лет назад чувствовал, что ты чувствителен к регистру. Но как только я несколько дней работал с C#(изучая соглашение об использовании оболочки), я заметил, что это намного меньший источник ошибок, чем предполагалось.

Чувствительность к регистру в статически типизированных языках не имеет большого значения.

В случае чувствительных к регистру языков вы часто ошибаетесь, даже когда программируете без IDE, поскольку знаете, что регистр не произвольный, а вытекает из соглашения (некоторые языки, такие как Cobra, даже заставляют вас следовать соглашению). А с IDE это еще менее важно, так как intellisense исправит это для вас.

ИМО, заставляющая вас соблюдать соглашение повсюду, приводит к лучшему удобочитаемости кода. Когда я программировал на Delphi(без учета регистра), моя оболочка была довольно противоречивой. Но современные IDE для нечувствительных к регистру языков должны иметь функцию Format-Document, которая позволяет использовать регистр идентификатора так же, как был объявлен идентификатор. Опять же, это устарело с современной технологией IDE.

Для некоторых динамически типизированных языков чувствительна к регистру

Хотя это не относится к VB против C#, некоторые динамически типизированные языки (lua, javascript) работают только с учетом регистра. Это потому что в них string ключи в словаре и имена членов почти одинаковы. И чувствительные к регистру словари гораздо более эффективны, чем нечувствительные к регистру.

С одной стороны, сообщество для C# намного больше.

Подавляющее большинство примеров кода, например, на таком сайте, как http://www.codeproject.com/ написано на C#.

Мой совет, конечно, будет идти на C#, хотя бы по этой причине.

По сути нет.
VB.NET был создан для того, чтобы заманить существующих программистов на Visual Basic / Office, а C# - для тех, кто предпочитает Java / C++.

Другие вопросы по тегам