Почему вы хотите использовать С#, если он медленнее С++?

Я ищу новый язык для изучения после С++ и Java. Я собирался попробовать С#, но куча людей говорит, что он очень медленный, потому что это язык высокого уровня. Так почему кто-нибудь будет использовать С#? Разве С++ не намного быстрее? Помогает ли это сделать разработку, но имеет только более медленный конечный продукт?

Кроме того, для чего может использоваться С#? Вы используете его с большим количеством материалов .NET в окнах и с ASP.NET, но что такое другие ситуации, когда нужно использовать С#? Будет ли там много возможностей для трудоустройства?

Ответ 1

Кто именно это "куча людей"? Что они сравнивают с этим?

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

Почему мы будем использовать С#, если он немного медленнее, чем С++? Потому что это обычно считается (то есть некоторые не согласны:), чтобы быть намного легче развиваться, не стреляя себе в ногу.

Как для С# можно использовать для... для чего вы хотите его использовать? Если вы не хотите разрабатывать драйверы и ядра, это может быть хорошо для вас. (Даже разработка ОС имеет некоторых людей, использующих С#...)

Возможности работы? Нагрузки.

Downsides? Ну, сама .NET доступна только на платформах Microsoft. Там Mono, но он не имеет такой же степени переносимости, как Java (без сомнения, другой "медленный" язык в соответствии с тем же куча людей).

Ответ 2

Код, написанный на сборке, может быть невероятно быстрым. Почему бы просто не написать в сборке?

Не верь всему, что слышишь. С# был очень быстрым для всех моих проектов. Как правило, производительность является более важным фактором дизайна, чем производительность платформы.

Ответ 3

Я бы сказал, что люди, с которыми вы разговаривали, просто не знают, о чем они говорят. Легко и просто.

Многие приложения уровня предприятия построены поверх С# и других языков .Net. Ничто изначально не замедляет их. Да склоняется к более медленному времени запуска, но в значительной степени там, где он заканчивается.

Я заметил, что вы упомянули Java в списке языков. Если вам комфортно со скоростью Java, С# не представляет никаких проблем. Вообще говоря, С# выполняет, по крайней мере, так же, как и Java, на разных типах меток.

Ответ 4

Моя последняя компания была основана 5 ветеранами С++ с опытом работы более 15 лет. Они потратили более месяца на создание определенной службы Windows. Один из них нашел и проглотил С#. Через неделю он получил больше, чем коллектив в своем месяце. Вскоре после этого все они переключились на С#.

Почему С#, если он может работать медленнее: какую цену вы накладываете на эту степень быстрого развития?

Ответ 5

Почему это должно быть медленным? В самом деле, С# скомпилирован в "Intermediate Language", который JIT-во время выполнения, но это может дать вам преимущество в производительности, поскольку среда выполнения может генерировать наиболее оптимизированную для платформы, на которой работает код...

В зависимости от приложения, которое вы хотите записать, "скорость" языка будет иметь незначительное влияние. Производительность вашего приложения будет в основном определяться тем, как вы разрабатываете свое приложение, если вы хорошо используете используемые инструменты/технологии и т.д. Несомненно, С# не является серебряной пулей, и есть проекты, в которых вы не должны использовать его, просто потому, что это не правильный инструмент для работы, но он будет отлично подходит для большинства приложений для бизнеса/предприятия.

Ответ 6

Я не нашел много примеров, когда С# не является хорошим выбором языков, а .Net(или Mono) не является достойной платформой. Заметные исключения - это уровень развития ядра или драйверы. Существует множество областей, где необходим низкий уровень и необработанная производительность. Для большинства, если не все бизнес, или корпоративные приложения С# - один из лучших вариантов разработки. Он хорошо поддерживается, работает со многими другими системами, библиотеками, каналами связи и компонентами, которые уже доступны, не говоря уже о довольно хорошем языке (например, 3.5) для работы.

ASP.Net не была плохой платформой, я обычно считаю, что стек объекта/управления является одним из коротких приключений для сложных взаимодействий. Я думаю, ASP.Net MVC лучше подходит для более масштабируемых веб-приложений. То же самое, это лучше, чем многие другие системы, с которыми я работал в прошлом.

С точки зрения уровней обслуживания и даже разработки графического интерфейса это довольно хорошо. У меня гораздо больше опыта работы в веб-приложениях, а также на уровне служб/коммуникаций/бизнес-процессов, чем на графических приложениях для настольных компьютеров, поэтому я не могу много комментировать их. Я чувствую, что разработка графического интерфейса больше связана с IDE/Toolkit, чем с конкретным языком.

Что касается медленного, вы конкретно указываете Java, в большинстве случаев, С#/.NET работает так же быстро и быстрее, чем Java. Разработка IMHO специально идет гладко с С# (Visual Studio) над Java (Eclipse). Для веб-приложений мне нравится ASP.Net MVC (и даже ASP.Net) для Swing. Это только я, хотя.

Ответ 7

Люди, с которыми вы разговаривали, не знают, о чем они говорят. С# - очень похожий язык на Java, все сказано; он имеет большинство преимуществ и недостатков. То, как все это работает, довольно похоже (Java/С# скомпилирован в промежуточный язык/байт-код, который интерпретируется или JIT скомпилирован в собственный код с различными аналогичными оптимизациями, о которых вам не нужно беспокоиться как программист). Он используется во многих ситуациях, таких как Java, и действительно нацелен на тот же рынок. Он движется намного быстрее и приносит много инноваций в качестве языка, но он (на практике) в значительной степени зависит только от Windows, если это относится к вашей проблеме. Рынок труда аналогичен. Оба являются очень популярными языками.

Что касается языка для изучения, я бы предложил что-то РАЗНОЕ. Вы говорите, что знаете С++ и Java; С# не должно быть сложно подобрать. Потенциальные работодатели это знают. Попробуйте Scala или Python. Оба дадут вам несколько новых взглядов на вещи (С# не так много), и сделайте вас лучшим программистом, научив вас новым способам думать, а не просто добавьте еще один инструмент в свою коробку.

Ответ 8

С# не всегда медленнее - во многих случаях он может работать так же хорошо, как и любой язык, который вы указали. Обычно алгоритм имеет больше общего с скоростью, чем выбор языка.

Однако С# очень выразительна и имеет отличную библиотеку базового класса для работы с супер-быстрой компиляцией. Это означает, что с ним очень легко работать и может позволить вам быть намного более продуктивным, чем многие другие языки, особенно С++. Например, у меня просто был небольшой проект, который я бы заплатил за 1 человеко-неделю в С++, и мы закончили его менее чем за день на С#, главным образом потому, что библиотеки базового класса упростили так много задач.

Ответ 9

одна большая причина использовать С# над С++......... посмотрите на все проблемы с переполнением буфера, которые С++ имеет, где люди берут ваш компьютер, потому что они вводят исполняемый код в ваши строки или утечки памяти.... сборщик мусора весьма удобен IMHO

Ответ 10

Даже если С++ быстрее запускается, разница на сегодняшних компьютерах невелика. Поэтому на мобильных устройствах, где cpu и memory довольно ограничены, C/С++ по-прежнему широко используется.

Но подумайте о временах разработки. Если вам требуется 2 месяца, используя С++ и 1 месяц, используя С#, на что бы вы пошли? И когда необходимо сделать большие изменения/рефакторинг, язык более высокого уровня делает его значительно быстрее и проще!

Ответ 11

Я бы определенно использовал С#. Это на самом деле средняя скорость, и если вам понравилась java, она почти точно такая же, как и на основе С++.