• Почему C# не кроссплатформенный?

    @Le0Wolf
    C# Developper
    Можно подробнее про проблемы с кроссплатформенностью? Какие проблемы в этом направлении решены в java, но не решены в c#? На Windows работает, на MacOS работает, на Linux работает, на различных мобильных платформах тоже работает и даже вроде есть реализации под голое железо (микроконтроллеры и все такое). Что может Java такого, что не может c#?
    Ответ написан
    Комментировать
  • Почему C# не кроссплатформенный?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    C# кроссплатформенный. как и dotnet 8. другой вопрос - в линукс и осикс нет com.. к примеру.. нет winforfms... и это не проблема C#..
    есть тот же qt, и есть его.. ну если не порты, то обертки точно...
    вы сами не понимаете сути вопроса.. такое чувство, что вы хотите winforfms везде.. опробуйте MAUI
    Ответ написан
    4 комментария
  • Почему C# не кроссплатформенный?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    С# работает на виртуальной архитектуре

    Правильнее говорить: имеет собственный байт код. Приложения .NET не запускаются в виртуальной машине! Они компилируются JIT'ом и просто могут взаимодействовать с платформой, но нет никакой ВМ (например, песочница как в JVM отсутствует - ты видишь обычный процесс.
    Почему так?

    Потому что C# (и .NET Framework в частности) был ориентирован для работы под Windows и там очень много специфичных для нее деталей есть (взять ту же концепцию COM объектов).
    Java изначально поддерживала другую стратегию + была поддержка Linux (на котором сидели энтузиасты), что в итоге вылилось в то, что эти самые энтузиасты полюбили Java и начали писать на ней везде (а для этого надо было иметь реализацию JVM под нужную платформу)
    Сейчас ситуация меняется: .NET есть под MacOS, Linux и Windows. Это не полная кроссплатформенность, но философия другая: мы будем поддерживать несколько платформ, но делать это качественно. Сейчас упор делается в Linux и веб в частности.
    Дополнительно:
    - Спецификация открытая и ничто не мешает реализовать под свои платформы. Взять тот же .net nanoFramework, mono, unity
    - Mono вышел в 2004 году, а значит еще с тех пор .NET был кроссплатформенным
    Ответ написан
    2 комментария
  • Почему C# не кроссплатформенный?


    Почему C# не кроссплатформенный?

    На этот вопрос нельзя ответить сразу по двум причинам:
    1. C# - это язык, а язык не может быть кросс-платформенным, так как платформы в разрезе языка и нет.
    2. .NET уже много лет как кросс-платформенный.
    Начиная с уже мейнстримного .NET 8, заканчивая mono и всякой экзотикой типа nano framework


    но при этом, это не так

    Ничто нельзя запустить на "чём угодно"


    но в неё вопрос кроссплатформенности решена абсолютно полностью

    Если вопрос "абсолютно полностью" решён, то почему я не могу запускать программы, написанные на Java, на любом железе?
    Ответ написан
    Комментировать