«Под капотом» все методы в Jit-базированных платформах — виртуальные.
Это сделано для упрощения jitting-а. Все методы вызывают заглушку, в которой изначально вызов jitter-а этого метода, после того, как jitter отработал, вызов jitter-а патчится на вызов свещеиспеченного кода, расположение в памяти которого достаточно случайное.
В C# можно создавать методы с одинаковыми именами, но разными параметрами, а также методы с параметрами по умолчанию + вызывать такие методы с поименованными параметрами в удобном вам порядке…
В Java мало т.н. синтаксического сахара, который реально экономит время и делает код чище, понятнее и удобнее для оптимизации. Ни properties, ни events, ни лямда, ни расширенных методов, ни перегрузки методов, ни linq, просто назад в прошлое :)
Есть и минусы — отсутствие глобальной оптимизации кода, все методы становятся виртуализированными, т.е. вызов через таблицу поинтеров.
Только это уже убивает производительность любого вызова метода раза в 3 на современных процессорах, на старых вообще раз в 10 падала.
С момента появления .Net и C# в частности, вопрос о крутизне Ruby, Php, Java, _____ (вписать по желанию) с повестки дня снят за неактуальность.
А учитывая то, какими темпами развивается C#, вопрос можно закрывать на ближайшие 10 лет.
Динамические языки — слишком динамические, чтобы их воспринимали серьезно, функциональные — слишком не от мира сего, нужен баланс, что в случае с C# был грамотно достигнут.
Дальше язык можно не искать, лучше писать прикладные библиотеки…
Я не понимаю, как можно сказать, что про Silverlight на PDC ничего не говорили, если:
1) Темой PDC был Windows Phone 7 и Windows Azure. Основной фреймворк для разработки приложения под WP7 является Silverlight. Т.е. говоря WP7, подразумевается Silverlight (в большинстве случаев, остальные — игры, это XNA).
2) Поскольку МС серьезно напрягся для создания WP7, в т.ч. команда Silverlight была задействована для заточки Silveright под ARM. После выхода WP7, будут делать дальше Silverlight 5.
3) Проводят параллели, что Apple AppStore нативные приложения ~ Microsoft Marketplace Silverlight приложения. Помимо этого, Silverlight приложения работают не только на телефонах. AppStore приложения на десктопах не работают.
4) Кроссплатформенный Silverlight не будет никогда, хотя бы потому, что Apple не пустит никого на свою iOS платформу. Что может сделать МС, написать какой-нибудь статический линкер для создания app файлов. Тем более, что codegen под ARM уже есть.
5) Как последние 25 лет, HTML остается реальным кроссплатформенным решением везде, где есть браузер. Но как и раньше, любая веб-страничка (хоть и на HTML5) сосет по сравнению с нативными/Silverlight веб- или десктоп- приложениями. Не говоря уже про продуктивность дизайнеров и разработчиков.
Вобщем, как обычно, Мэри Джо выдала банальность за откровение…
Коллеги, давайте без обид. Мы и так на Хабре в меньшинстве.
Статья называется «Использование», а не «Отличия от десктопной версии», поэтому предполагалось то, что жизненноважные подробности будут хотя бы упомянуты.
Вы наверное из восточной, где до сих пор верят в халяву?
Это сделано для упрощения jitting-а. Все методы вызывают заглушку, в которой изначально вызов jitter-а этого метода, после того, как jitter отработал, вызов jitter-а патчится на вызов свещеиспеченного кода, расположение в памяти которого достаточно случайное.
В C# можно создавать методы с одинаковыми именами, но разными параметрами, а также методы с параметрами по умолчанию + вызывать такие методы с поименованными параметрами в удобном вам порядке…
Значитель упрощает перегрузку методов
Только это уже убивает производительность любого вызова метода раза в 3 на современных процессорах, на старых вообще раз в 10 падала.
Но это проблемы всех jit-базированных технологий.
А учитывая то, какими темпами развивается C#, вопрос можно закрывать на ближайшие 10 лет.
Динамические языки — слишком динамические, чтобы их воспринимали серьезно, функциональные — слишком не от мира сего, нужен баланс, что в случае с C# был грамотно достигнут.
Дальше язык можно не искать, лучше писать прикладные библиотеки…
Может кто-нибудь доходчиво объяснить, зачем у TextBox свойство Watermark, которое не используется?
А насчет Evernote — плохому танцору и WPF мешает :)
Я не понимаю, как можно сказать, что про Silverlight на PDC ничего не говорили, если:
1) Темой PDC был Windows Phone 7 и Windows Azure. Основной фреймворк для разработки приложения под WP7 является Silverlight. Т.е. говоря WP7, подразумевается Silverlight (в большинстве случаев, остальные — игры, это XNA).
2) Поскольку МС серьезно напрягся для создания WP7, в т.ч. команда Silverlight была задействована для заточки Silveright под ARM. После выхода WP7, будут делать дальше Silverlight 5.
3) Проводят параллели, что Apple AppStore нативные приложения ~ Microsoft Marketplace Silverlight приложения. Помимо этого, Silverlight приложения работают не только на телефонах. AppStore приложения на десктопах не работают.
4) Кроссплатформенный Silverlight не будет никогда, хотя бы потому, что Apple не пустит никого на свою iOS платформу. Что может сделать МС, написать какой-нибудь статический линкер для создания app файлов. Тем более, что codegen под ARM уже есть.
5) Как последние 25 лет, HTML остается реальным кроссплатформенным решением везде, где есть браузер. Но как и раньше, любая веб-страничка (хоть и на HTML5) сосет по сравнению с нативными/Silverlight веб- или десктоп- приложениями. Не говоря уже про продуктивность дизайнеров и разработчиков.
Вобщем, как обычно, Мэри Джо выдала банальность за откровение…
Статья называется «Использование», а не «Отличия от десктопной версии», поэтому предполагалось то, что жизненноважные подробности будут хотя бы упомянуты.
Про ExportFactory сказали, а про альтернативный вариант [PartCreationPolicy(CreationPolicy.NonShared)] умолчали :)