Является ли платформа С# нейтральной?
Сегодня я купил С# 3.0 Pocket Reference (O'Reilly Publishers).
В этой книге в первом параграфе первой страницы указывается, что " Язык С#
платформой нейтральной, но она была написана для работы с платформой Microsoft.Net "
Если я не ошибаюсь, платформа Neutral означает, что программное обеспечение, созданное на этом языке, должно работать во всех ОС (например, Mac, Windows, Linux и т.д.).
Я знаю, что эта характеристика удовлетворяет Java, но .NET еще не смог этого сделать (хотя MONO добилась определенного прогресса в Linux).
Тогда каково значение этого слова "PLATFORM NEUTRAL"
до сих пор С# является проблемой?
Заранее спасибо
Ответы
Ответ 1
Сам С# -язык является нейтральным платформой, как C и С++, - вы можете реализовать компилятор и т.д. для него на любой платформе.
Платформа .Net и связанные с ней библиотеки, с которыми она была разработана, чтобы работать хорошо, не являются нейтральными по дизайну платформы - они предназначены для работы с окнами, хотя Mono несколько компенсирует это.
Если вы напишете программу на С# без использования каких-либо функций любой. Net-библиотеки, она будет независимой от платформы - вы можете быть уверены, что она будет работать на любой платформе с инструментами для С#... вы только что выиграли У вас особенно полезная программа:)
Ответ 2
С#, язык, нейтрален платформой.
Но рамки, обычно связанные с С#, средой dotNEt, не являются. Они запускаются на ОС Microsoft.
Mono позволяет использовать С# на многих других (в основном, unix-oid) платформах, предоставляя необходимую среду выполнения, но в нем нет (всех) фреймворков, необходимых для запуска типичных программ на С#.
Ответ 3
Не забывайте, что вы можете использовать С# в:
- MS.NET(Windows)
- .NET Compact Framework (PocketPC, XBox 360)
- Silverlight (Windows, Mac)
- Лунный свет (Mono/Linux)
- MonoTouch (iPhone)
- MonoDevelop (различные включая android)
- Micro Framework (некоторые часы и т.д.)
Неплохое покрытие. Язык имеет очень мало требований к времени выполнения/ОС.
Ответ 4
С# является нейтральной платформой в смысле ОС (т.е. нейтральной ОС), если вы считаете Mono надежным временем выполнения в Linux.
Но С# и .Net могут работать как есть, без перекомпиляции, как на 32, так и на 64-битной машине. Полагаю, это смысл автора.
Ответ 5
В этом случае platform neutral
определяется как "возможность запуска на любом компьютере с совместимой виртуальной машиной". В зависимости от того, какие языковые функции и компилятор вы используете, С# можно считать способным работать на машинах, работающих с последними версиями Windows, Mac OS и Linux.
Ответ 6
С# язык может быть реализован на любой платформе с совместимым компилятором и виртуальной машиной. Сам язык имеет стандарт ECMA для реализации и, следовательно, сам по себе не содержит каких-либо языковых элементов платформы (то есть Microsoft).
Ответ 7
Прежде чем ответить на вопрос, нужно учитывать, что любой язык в эти дни бесполезен без его библиотек. Тем не менее многие пространства имен, составляющие часть, являются только окнами. Многие из них просто обертки вокруг технологий Microsoft, таких как com, win forms и т.д.
Все рассмотренные вопросы просто рассматривают настройки, которые mono сделала для предоставления альтернатив dot net. Мигель много раз упомянул, что они надеются, что Silverlight выиграет, а не другие инструментальные средства ui, потому что он действительно независим от платформы, а не wpf и winforms и т.д.
Если вы хотите, чтобы истинный многоплатформенный язык и среда отображались на Java.
Ответ 8
На мой взгляд, Microsoft утверждает, что С# нейтраль платформы (повторяется текстом, который вы цитируете) неискренен.
Это технически правильно, но на практике ограниченная переносимость приложений С# для не-MS-операционных систем произошла, несмотря на Microsoft, а не из-за них. Довольно ясно, что Microsoft не намерена поддерживать С#/.Net в любой операционной системе, отличной от MS. Действительно, многие думают, что Microsoft (через свое патентное лицензирование с Novell) использует С#/Mono в качестве "клина" для повреждения экосистемы GNU/Linux.
IMO, любой, кто хочет использовать Mono, должен учитывать: 1) риски для своего проекта, если MS решит сыграть в hardball о патентах .NET и 2) ущерб, который они могут причинить экосистеме с открытым исходным кодом в результате.