Намедни в одном форуме наткнулся на прелюбопытное сообщение. А именно, автор пытался убедить всех добрых программеров в том, что VB.NET и С# совершенно одинаковы в смысле быстродействия написанных на них программ. Задело за живое - как это так, старый добрый Си, да ещё и усовершенствованный, бежит наравне с бейсиком? Вообщем, господа Профи, хотелось бы узнать ваше мнение.
Неужели разница в быстродействии программ написаных на том или ином языке настолько важна, на мой взгляд скорость работы впервую очередь зависит от програмиста (можно при особом таланте и на сях написать прогу которая простейший пример будет день считать). А вообще помоему скорость важна в основном для огромных приложений, да и то разница будет мало ощутима из-за того что основное время своей работы программа ожидает ввода пользователя
С# это не тот старый Cи, а совершенно новый язык программирования и разницы в скорости между VB.Net и C# по заверению Microsoft практически не должно быть. C# также, как и VB не компилирует программу в машинный код, также имеет run-time библиотеку и имеет примерно такие же ограничения.
А войны типа Windows vs Linux, Borland vs Microsoft или Pentium vs AMD честно говоря уже надоели.
Кстати процессор Пентиум сделан по технологии БЭСМ-6 - Эльбрус-3. Масдай тоже делают в большинстве своём наши соотечественники. Так что делайте выводы что вам дороже.
Если VB.NET работает также эффективно как и С#, то возникает резонный вопрос "А зачем вообще тогда нужен С#?" Не хочу никого обидеть, но помоему синтаксис VB более удобочитем, писать и понимать программы на VB проще!
C# (произносится Си-Шарп) - это новый язык программирования от компании Microsoft. Он входит в новую версию Visual Studio - Visual Studio.NET. Кроме C# в Visual Studio.NET входят Visual Basic.NET и Visual C++. Кроме того фирма Borland объявила, что последующие версии C++ Builder и Delphi будут поддерживать платформу .NET (последнее лежит в русле политики Borland - так, например, нынешние версии C++ Builder и Delphi поддерживают, например, такую технологию от Microsoft, как ActiveX).
Одна из причин разработки нового языка компанией Microsoft - это создание компонентно- ориентированного языка для новой платформы .NET. Другие языки были созданы до появления платформы .NET, язык же C# создавался специально под эту платформу и не несет с собой груза совместимости с предыдущими версиями языков. Хотя это не означает, что для новой плятформы это единственный язык.
Еще одна из причин разработки компанией Microsoft нового языка программирования - это создание альтернативы языку Java. Как известно, реализация Java у Microsoft не была лицензионно чистой - Microsoft в присущей ей манере внесла в свою реализацию много чего от себя. Компания Sun, владелица Java, подала на Microsoft в суд, и Microsoft этот суд проиграла. Тогда Microsoft решила вообще отказаться от Java, и создать свой Java-подобный язык, который и получил название C#. Что будет с Java после выхода C# - пока неизвестно. Скорей всего эти языки будут существовать оба, хотя ясно, что одна из целей разработки C# - это противоборство именно с Java (недаром C# называют еще Java-killer'ом).
А вот и все не так радужно с производительностью VB.NET vs C#. C# - откровенно быстрее покрайней мере в чистой математике. НО быстрота эта проявляется только в компиляции конфигурации РЕЛИЗ. В случае ДЕБУГ производительность ПРАКТИЧЕСКИ идентична и отклонения на уровне шумов.
Кроме того, насколько мне известно, одна из компаний разработала .NET Framework для Линуха. Так еще на стадии пресс-релизов и анонсов было заявлено, что проги на VB.NET в ней работать не будут(хотя как они этого добились для меня загадка). Т.о. С, как всегда, крутой межплатформенный язык для тех кто себя уважает, ну а нас поклонников Васика как всегда задвинули.
Скажу одно - пользовал я этот mono-component под MDK 9.0. (для тех, кто не в курсе, тот самый FrameWork под Линух). Правда какую-то бету-недобету, но суть проста. Это по обычный эмулятор, хотя создатели это опровергают (пользователи линуксятники знают такие примеры: wine, win4lin и пр.). Не могу сказать - понравилось мне или нет - я с ним ещё не настолько знаком.
больше здесь (http://msdn.microsoft.com/chats/VSTUDIO/vstudio_051602b.asp)
При работе только с общими для всех классами .Net Framework - быстродействие, само собой, одинаковое. Не знаю правда, что в случае с Microsoft.VisualBasic Но в любом случае, компилируется всё в один и тот же промежуточный язык и интерпретатор этого языка тоже для всего одинаков.
Что касается того, зачем VС# - в VB.Net нельзя, например, перегрузить оператор "+" или "=" для своих классов. А, кстати, порой очень хочется.
Если учесть сходство VС# VB, даже если под Linux сделают только C# компилятор, написать преобразователь прог можно будет элементарно.
А вообще для максимальной скорости - ассемблер в руки, как говорится, и рантаймов не потребуется.
Интересно бы попробовать писать на "ассемблере" .NET'а.
При взаимодействии с FrameWork может быстродействие и одинаково(надо проверить), но вот такой код:
C# Int32 i; Single k; for(i=0;i++;i<10000000) k=math.sin(i)/math.cos(i) VB.NET Dim i as Int32,k as single for i=0 to 10000000 k=math.sin(i)/math.cos(i) next
,компилиный в релизе в C# выполняется в сотню раз быстрее!
Суждения по поводу использования одного компилятора для друх языков оставляю на совести автора!
Ну мне ваш этот спор и до конца читать не охота... Ну вот факты:
Читаемость С++ или С# - ядром процессора более быст и состовляет около 128 4500 025 000 (просым языком около 13 скорости
Писанина языка более удобная нам, но и при компиляции из за того что она маленькой получается берёт у системы ресурс около 164 0002 056 000 (окоро 15...
А в ядре пен4 Бейзик работает быстрее чем Си, но в ядре Тройки или Селерона Си намного быстрее выполяет ассемблераторы...
Отсюда вывод что в зависимости программы, от его размеров, от количества кода, использования ресурсов и всяких библиотек, скорости прочесора и оперативной паямти прога загружается по разному...
Так что они обе на ассемблер кодируются... выходит так что как мало кода будет или как просто будет тот и быстрее загрузится...