• Как работает C#?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    > Насколько я знаю, в Java есть JVM, которая загружает файлы .class, содержащие байт-код, и запускает их.
    Поправка: обычно не .class, а .jar. А вот внутри .jar (это архив) - уже файлы .class. Ведь .class, как ясно из названия, содержит только 1 класс, нечто вроде .obj в C++. А в приложении может быть и несколько классов, + цифровая подпись, + прочее. Вот всё это и линкуется в .jar.
    Один и тот же .jar работает везде там, где есть JVM в чистом виде. На десктопных линуксах работает. На Android не работает, там вместо этого .apk - другой формат.

    > Куда компилируются .cs?
    Гуглим csc.exe
    Обычно все операции осуществляются в нем, т.е. из .cs может делать сразу .exe. Хотя возможно сперва сделать IL (нечто вроде ассемблера, но пока еще НЕ байт-кода, т.е. НЕ бинарное), а вот IL уже скомпилировать в байт-код (бинарный формат) с оберткой exe.

    > В мире C# существуют также такие понятия как .NET, Mono, Roslyn и т.д., можете ли вы структурированно разъяснить их смысл?
    В .NET Framework входят:
    - компиляторы: для C# (тот самый csc.exe) и не только для C# (да, компиляторы именно входят в .NET, а не в Visual Studio);
    - тот самый CLR;
    - несколько библиотек классов, таких, как mscorlib.dll, System.Windows.Forms.dll (Winforms). библиотеки WPF. Такие библиотеки называются стандартными. Те библиотеки, которые в .NET не входят и их нужно таскать рядом с exe, называются сторонними (third-party), так как обычно они созданы не MS, а сторонними, "третьими", разработчиками.

    Mono - платформа, позиционируемая как кроссплатформенная альтернатива .NET Framework. То есть всё перечисленное там своё и от MS ничего нет. IDE также своя - MonoDevelop.
    На деле же, альтернатива эта от начала до конца очень сырая и вообще хилая. Например, Winforms/WPF там просто нету (может и можно прикрутить эти сборки из .NET, но на линуксе без вайна не заработает, да и MonoDevelop не содержит средств для удобной разработки под них). Вместо Winforms/WPF там GTK#, он реально кроссплатформенный, но до Winforms и тем более WPF ему очень далеко.

    Roslyn - какой-то новый компилятор от MS, вроде бы альтернатива старому csc.exe. Ничего интересного лично я в нем не вижу.
    Ответ написан
    1 комментарий
  • Как работает C#?

    GavriKos
    @GavriKos
    MSIL - это как раз результат компиляции c#. И именно он содержится в exe. Просто этот exe запускает .net машину и говорит ей где в exe MSIL.
    Ответ написан
    Комментировать
  • Почему нечётное количество лопастей в куллере?

    Ocelot
    @Ocelot
    Это заговор производителей. Если бы лопастей было четное число, то сломав одну, достаточно было бы отломать противоположную, и кулер снова работает. А так только выбрасывать и новый покупать.

    На самом деле нет. Это сделано для снижения шума. На вентиляторах обычно делают не просто нечетное, а простое число лопастей: 3, 5, 7, 11... На пальцах эту аэродинамику просто так не объяснить, но чем меньше возможных резонансов у системы, тем тише.
    Ответ написан
    Комментировать
  • Какие технологии выбрать для создания кроссплатформенного файлового менеджера?

    Nipheris
    @Nipheris Куратор тега C#
    За JavaFX говорить не буду, вроде штука развивается, возможно наконец будет нормальная джава для десктопа; сравнивать не могу, не пользовался
    Также я видел что-то про Qt Quick и QML

    пожалуй это и стоит рассматривать для новых проектов.
    Сам я им не пользовался, но говорят, что WPF гораздо мощнее, чем Qt

    Раньше, когда появился - да, был значительно мощнее (до появления QML). Вообще был наверное самой продвинутой технологией для десктопа. Но уже 2015-й год, Qt Quick 2 и все такое, так что Qt и WPF уже вполне сравнимы.
    Если не ошибаюсь, то это совсем не кроссплатформенное решение

    Да, к сожалению. Поэтому вам резонно вернуться к рассмотрению Qt.
    рассказать про WPF что-то еще, я буду благодарен.

    дотнетовская технология, появилась в .net 3.0, использует direct3d для отрисовки, windows-only. Если нужны еще подробности - пишите в комментарии.
    то я больше склоняюсь к Qt, так как скорость работы всё же важнее скорости разработки

    хороший выбор для кроссплатформенного файлового менеджера, только замечу, что вы выбираете вы достаточно смело - в 95% случаев люди ищут либу к знакомому языку/платформе, т.к. обычно именно язык новый язык изучить не могут/не хотят. Если вы уверены, что C++ вы тянете, то тогда без вариантов - Qt.
    Ответ написан
    6 комментариев
  • Java, как парсить сообщения VK?

    drem1lin
    @drem1lin
    чуть программист, чуть чуть админ...
    Можно сделать так - вешаете съемку скриншотов каждую секунду и автоматически потом их распознаете, и отправляете боссу. Ну и определять активное окно браузера и т.д. Это будет работать, но также будет умолять убить его.
    Ответ написан
    Комментировать
  • Существует ли в Ruby двойная интерполяция?

    mainameiz
    @mainameiz
    Full-stack web-developer
    Так не сработает. Интерполяция это просто синтаксический сахар. Вам нужно свой ввод прогонять через eval.
    Ответ написан
    1 комментарий