Ответ 1
Да, С# является кросс-платформенным благодаря проекту Mono. Но имейте в виду, что это сторонняя реализация, а не Microsoft. Таким образом, любые новейшие функции последней версии .NET или версии языка С# могут быть не реализованы.
Я новичок в программировании, и я рассматриваю возможность использования С# для написания ОЧЕНЬ простой программы, которая просто редактирует текстовый файл.
Да, С# является кросс-платформенным благодаря проекту Mono. Но имейте в виду, что это сторонняя реализация, а не Microsoft. Таким образом, любые новейшие функции последней версии .NET или версии языка С# могут быть не реализованы.
Мне сложно ответить на что-то подобное кому-то, в котором говорится, что он только начинает программировать, но я попытаюсь дать вам (несколько упрощенный) обзор: С# - это язык, который скомпилирован в исполняемую программу. Сам язык переносится между plattforms, если у вас есть компилятор на каждой целевой форме. В Windows у вас есть стандартная реализация .Net, а на Linux/Mac у вас есть Mono. Чтобы сделать что-то полезное - например, редактировать файлы - вам нужно использовать некоторые библиотеки. Существует стандартная библиотека, которая доступна на каждой пластине. До тех пор, пока вы используете только эту функциональность, ваша программа будет перекрёстной. Очевидно, что это не будет cross plattform, как только вы используете некоторую библиотеку, специфичную для определенной plattform. Редактирование файлов является частью стандартной библиотеки, поэтому вы можете реализовать такие простые инструменты в виде перекрестного шаблона. Выбирая книгу, вы должны искать книги, которые сосредоточены на "сыром" языке, а не на Visual Studio или других специальных инструментах.
Новая версия с открытым исходным кодом от Microsoft под названием CoreCLR является кросс-платформенной и теперь может использоваться для этого
Реплика CoreCLR содержит полную реализацию выполнения для .NET Core. Он включает в себя RyuJIT,.NET GC, собственный интерфейс и многие другие компоненты. Это кросс-платформенный, с несколькими портами ОС и ЦП. - из репозитория CoreCLR
Я бы не рекомендовал С# как лучший выбор для мультиплатформенного кодирования. Я бы порекомендовал python, но его очень легко запустить даже как script и отлично работает на всех платформах. Если вы настаиваете на том, чтобы С# был готов справиться с той же проблемой, объясненной Джастином Этье. Python, с другой стороны, одинакова для всех платформ, она очень мощная и даже имеет готовые к подключению к другим языкам.
В этой статье в викторине проекта Mono очень хорошая работа, обобщающая, как писать переносные приложения с С#.
С# - кросс-платформа, и вы можете запускать свою программу в Windows/Linux и Mac. Для Linux вам нужно запустить с помощью моно
Если вы новичок и не настаиваете на С#, попробуйте Java, он недалеко от синтаксиса С# и работает
java -jar myprogram.jar
- то же самое для Mac/Linux/Win.
Теперь С# полностью перекрестная платформа и имеет множество фреймворков и время выполнения.
Java - это язык + фреймворк. Но С# - это просто современный язык. Функции языка С# очень мощные, легкие в освоении. Никакой путаницы между каркасом и языком.
С# можно использовать в следующих рамках
Java - код один раз, отправка одного файла на все платформы
** С++, C, Rust ** - код один раз, компиляция для определенной платформы
С#. Это всего лишь язык, выберите свою структуру в соответствии с требованиями.
Самые популярные приложения, такие как Chrome, Firefox, используют С++, Rust и скомпилированы для каждой платформы. Но все же они разделяют большинство кодов между этими платформами. В некоторых играх используется С++ для обмена кодом между IOS и Android.
Для новых разработчиков полезно начинать с NodeJS и С#. Оба они легки и могут выполнять любые типы приложений.