Справедливости ради — это всё-таки не Mono компилирует, а компиляторы под CLI (практически любые; в т.ч. вы можете скомпилять C#-код компилятором от Microsoft, а запускать потом под Линуксом). Mono лишь запускает скомпилированные бинарники. Запускать в линуксовой консоли, не упоминая Mono, их можно за счёт binfmt, как написано в документации к Mono.
Я думаю, что и Wine можно таким же образом настроить.
Публичная бета работает с HyperV. Работает нормально — пожалуй, поудобней, чем стандартный вариант на VirtualBox. Но всё-таки он не "нативный" в полном смысле слова.
Применение мне лично видится простое. Хочется что-то написать на ассемблере, а непосредственно программы-ассемблера под рукой нету. Зато PowerShell везде есть (да-да, у меня везде, и на Linux тоже). Это было бы весьма кстати для быстрого написания например, идентификации процессора или проверки каких-нибудь процессорных флагов. Ну и просто for fun, разумеется.
Ага, а вы планируете вставлять туда настоящий машинный код, наподобие того, как это делает компилятор C++/CLI? Слушайте, это так круто! Это будет в открытом доступе?
Дорогой автор, не расстраивайтесь по поводу отрицательных оценок вашей работы, просто она действительно реализована не совсем лучшим или рекомендуемым образом. Вам есть ещё куда расти, и я надеюсь, что теперь вы примерно видите направления для дальнейшего развития навыков. Не опускайте рук!
К сожалению, меня связывает NDA, так что конкретные примеры привести не вправе. Могу только отметить, что это не публичные проекты, в которых, тем не менее, критично важна производительность в обработке большого количества поступающих запросов. И при этом на C++ пишутся не приложения целиком, а отдельные компоненты или сервера (которые могут общаться как по HTTP, так и по каким-то инхаузным протоколам по мере надобности).
Лично я бы тоже не стал называть C++ "инструментом для быстрого создания проекта" — так же, например, как и nodejs. Там, говорят, можно по несколько месяцев фреймворк выбирать ;)
Это я к тому, что тут всё-таки зависит от навыков программистов, а не от технологии. Видимо, надобности в массовом штамповании проектов на C++ в индустрии нет, поэтому соответствующего рода инструменты (типа какого-нибудь yeoman) не столь распространены.
По моему опыту — да, достаточно много серверных компонентов веб-приложений, а также десктоп-приложений в СНГ разрабатываются с помощью C++. Хотя, честно говоря, я так и не понял, к какому заключению это рассуждение должно меня привести.
Managed code тоже есть в C++, но называть C++/CLI (или C++/CX) "стандартным" я бы не стал. В замечании выше речь идёт именно о варианте C++, описанном в соответствующих стандартах ISO.
Простите, а где ж там можно скачать ISO? Я найти не смог. Они предлагают только дурацкий тормознутый инсталлер, которому для работы обязательно нужно около 8 ГБ на системном диске :(
Может, там есть какая-то секретная ссылка на скачивание ISO-файла? UPD: действительно по второй ссылке можно скачать, спасибо!
Простите, а вы уверены, что это работает? Я сам OneGet'ом не пользуюсь, но последний раз, когда это обсуждалось в чате Chocolatey, авторы говорили — мол, Chocolatey-провайдер OneGet'а был написан давно, и сейчас уже не работает. Есть планы его допилить, но пока что не сделали.
Но зато не будет лишнего копирования! Да и распаковки не будет, если локальная переменная имеет ссылочный тип (насколько я понимаю, такое теперь тоже должно стать возможным).
Справедливости ради — это всё-таки не Mono компилирует, а компиляторы под CLI (практически любые; в т.ч. вы можете скомпилять C#-код компилятором от Microsoft, а запускать потом под Линуксом). Mono лишь запускает скомпилированные бинарники. Запускать в линуксовой консоли, не упоминая Mono, их можно за счёт
binfmt
, как написано в документации к Mono.Я думаю, что и Wine можно таким же образом настроить.
Публичная бета работает с HyperV. Работает нормально — пожалуй, поудобней, чем стандартный вариант на VirtualBox. Но всё-таки он не "нативный" в полном смысле слова.
Применение мне лично видится простое. Хочется что-то написать на ассемблере, а непосредственно программы-ассемблера под рукой нету. Зато PowerShell везде есть (да-да, у меня везде, и на Linux тоже). Это было бы весьма кстати для быстрого написания например, идентификации процессора или проверки каких-нибудь процессорных флагов. Ну и просто for fun, разумеется.
Наваять поверх этого DSL с нормальными мнемониками команд — и можно, э, удобно программировать.
Дмитрий, спасибо за обзоры. Только сейчас дочитал Хабр до вашего поста, и уже второй день запоем смотрю все записи.
Ага, а вы планируете вставлять туда настоящий машинный код, наподобие того, как это делает компилятор C++/CLI? Слушайте, это так круто! Это будет в открытом доступе?
Охохо, вот это очень интересно! А, вроде, Microsoft же грозился сам запилить IL-вставки в виде атрибутов? Или у вас там будет настоящий ассемблер?
Только сегодня дочитал до этой статьи. У вас очень классная библиотека, просто замечательная. Пишем свой компилятор, и нам ваша либа уже пригодилась.
Жалко только, что вы название сменили.
GroboIL
, по-моему, намного круче, чемGrEmit
;)Дорогой автор, не расстраивайтесь по поводу отрицательных оценок вашей работы, просто она действительно реализована не совсем лучшим или рекомендуемым образом. Вам есть ещё куда расти, и я надеюсь, что теперь вы примерно видите направления для дальнейшего развития навыков. Не опускайте рук!
Что также может быть интересно — для пользовательских операторов не работает short-circuit-поведение.
К сожалению, меня связывает NDA, так что конкретные примеры привести не вправе. Могу только отметить, что это не публичные проекты, в которых, тем не менее, критично важна производительность в обработке большого количества поступающих запросов. И при этом на C++ пишутся не приложения целиком, а отдельные компоненты или сервера (которые могут общаться как по HTTP, так и по каким-то инхаузным протоколам по мере надобности).
Лично я бы тоже не стал называть C++ "инструментом для быстрого создания проекта" — так же, например, как и nodejs. Там, говорят, можно по несколько месяцев фреймворк выбирать ;)
Это я к тому, что тут всё-таки зависит от навыков программистов, а не от технологии. Видимо, надобности в массовом штамповании проектов на C++ в индустрии нет, поэтому соответствующего рода инструменты (типа какого-нибудь yeoman) не столь распространены.
По моему опыту — да, достаточно много серверных компонентов веб-приложений, а также десктоп-приложений в СНГ разрабатываются с помощью C++. Хотя, честно говоря, я так и не понял, к какому заключению это рассуждение должно меня привести.
Managed code тоже есть в C++, но называть C++/CLI (или C++/CX) "стандартным" я бы не стал. В замечании выше речь идёт именно о варианте C++, описанном в соответствующих стандартах ISO.
Обращу ваше внимание лишь на то, что абстракции,
генерикитемплейты, словари и замыкания есть также и в стандартном C++.Может, там есть какая-то секретная ссылка на скачивание ISO-файла?
UPD: действительно по второй ссылке можно скачать, спасибо!
Простите, WinAMP не нашёл, есть только AIMP. Ну и вместо мелкомягкого офиса — LibreOffice.
Chocolatey.