Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
… весь веб только под винду, и не надо мне про моно говорить, пробовали, все не то
#. Так, алоэ, я кое-что вспомнил. О какой кросcплатформенности речь, когда чтобы запустить под Mono, мне надо всё перекомпилировать. Это же как в старом добром С, чем лучше-то?!Тут проблема скорее не в необходимости перекомпиляции, а в неполной поддержке Mono некоторых функций, например, нет VirtualMode у DataGridView.
Очередная глупость. Я не знаю, кто вам сказал, но в целом полностью управляемое CLR-приложение, скомпилированное под Windows, НЕ НУЖНО ПЕРЕКОМПИЛИРОВАТЬ. Можно ПРОСТО перенести на Linux с установленным Mono, скомандовать mono myapp.exe, и оно запустится. И наоборот тоже работает. Я проверял.
Правда, здесь вступает в ход связывание с библиотеками. Это как gems в Ruby — если этот конкретный gem использует нативные библиотеки, то вам нужно установить эти самые нативные библиотеки.
или ранее известных: Delphi, Ada, Lisp, VB, php, в качестве back-end использующих CLR.
Всякие TraceMonkey, LuaJIT, YARV как раз примеры для последней классификации. Это означает, что переход на другую платформу сходной архитектуры заведомо не сделает приложение медленнее.
#. Программы на CLR жрут очень много памяти. Прям вааще всё жрут, ничего не оставляют…
Хм. Сравнимое нагруженное Ruby-on-Rails-приложение на сервере кушает 100-150МБ RAM, примерно столько же, сколько и ASP.NET CLR сайт. Тут нет большой разницы.
Уже сейчас есть параметрический полиморфизм (это когда Vector)
Нет. Все управляемые приложения .NET можно распространять по модели deploy-by-copy — скопируй в нужную папку и запускай оттуда.
Мы же здесь про переход ZZZ -> CLR. Наибольшие опасения у людей вызывает то, что при использовании CLR их приложения, ранее написанные на Ruby/Php/Python и других скриптовых языках, станут на порядок медленнее. Не станут, это факт.
С++ неуправляемое приложение, сравнивать особо смысла нет :)
Visual Studio могла бы быть deploy-on-copy, если бы не интегрировалась тесно с окружением
1- тут обсуждение идет Мифы про C#, а не C# против 1 конкретного языка.
vm без jit = сплошной интерпретатор. время на компиляцию = 0.
vm c jit = очень продвинутый интерпретатор с компиляцией на лету. время на компиляцию != 0. В итоге время испольнения байт-кода приблизительно должно быть одинаково.
Не знаю как Вы это получили,
— нет свойств;
— нет событий;
— нет лямбд и замыканий;
— странный механизм аннотаций, который не такой эллегантный как атрибуты в шарпе;
— дженерики поддерживаются на уровне языка, но не на уровне виртуальной машины, что иногда приводит к неудобствам;
— нет вывода типов, динамиков, ко/контравариантности;
Обидно, конечно, но не фатально
Почему раз сумели сделать анонимные классы, не сделали анонимных функций — загадка.Кстати о лямбдах, я имею ввиду не только грубо говоря Func<int, int, int>, но и Expression<Func<int, int, int>> — в умелых руках этот механизм превращается просто в убийственную штуку.
Чем же он не такой элегантный?
Динамики не нужны :-)Вам, видимо, не нужны :) Я тоже редко пользуюсь, но иногда это просто замечательная вещь.
Мифы и заблуждения насчёт CLR и .NET