Взял несколько популярных книг по Java - два тома Хорстманна, "Java: эффективное программирование", посмотрел оглавление и все они по сути про синтаксис. А хотелось бы знать, есть ли какая-нибудь толковая книга именно по устройству платформы. Т.е., что из себя представляет виртуальная машина джавы (например, CLR это COM-приложение), во что превращается исходный код после компиляции и как технически устроено его выполнение. В общем, аналог розовой книжки Рихтера, только для джавы. Мб джавистам это ничего не скажет, для этого я написал примерно чего ожидаю от книги, но может попадутся свитчеры с дотнета, которым так будет понятнее, о чем хотелось бы в такой книге почитать.
Василий Банников, "В Microsoft разработали CLR в виде COM-сервера, содержащегося в DLL", вышеупомянутый Рихтер, глава 22, раздел "Хостинг CLR", второй абзац.
В смысле черная? С версии 4.5 она всегда розовая была) Есть ссылка на черную?
Дмитрий, посмотрел, действительно COM server. Но:
1. Это актуально только для .net framework, который не актуален. .NET Core идёт уже как самостоятельный экзешник (прям как java)
2. COM server - это не единственный способ хостинга CLR. Даже на той-же странице идёт информация, что любое приложение можно запустить свой собственный экземпляр CLR в рамках своего процесса.
Хотя если честно я не знал о таких нюансах и я не знаю, где эта информация может пригодиться.
Василий Банников, если за меру актуальности взять реальное использование в компаниях, то актуален. А нас например фреймворк 4.7. Совершенно точно знаю место, где работа ведется еще аж на 4.0 и VB.NET + Web Forms. Пару лет назад на собеседовании в крупную контору интервьюер заявил, что linq просто синтаксический сахар и зачем, когда все можно сделать в циклах.
Никогда не знаешь, какая информация и когда может пригодиться, поэтому я по возможности пытаюсь сделать так, чтобы вокруг было поменьше магии.
Касаемо самостоятельного экзешника и Core. Я пока еще не знаю на данный момент, как организована технически работа CLR (которая с фреймворком), т.е. кто ее запускает и как именно с ней взаимодействует. Да и COM-совместимого приложения пока еще не написал и знаю про COM только понаслышке. Однако из того что знаю, могу предположить, что "самостоятельный экзешник" не делает неактуальной инфу из Рихтера. Т.к. реализация Core под Windows очень вероятно суть то же самое COM-приложение, потому что COM это главный способ взаимодействия программ в винде и если Core-CLR не будет реализована по COM-технологии, она будет "сама в себе", отрезана от возможности взаимодействовать с другими приложениями.
insighter, просто из личного интереса, посмотреть "ну и как там в Египте". Технического смысла уходить в джаву пока не вижу смысла, разве что только с социальной точки зрения (0 дотнетчиков среди друзей вне работы, только коллеги с работы).
Т.к. реализация Core под Windows очень вероятно суть то же самое COM-приложение
Нет. .NET Core не создаёт никакого com-сервера.
потому что COM это главный способ взаимодействия программ в винде
Ага, такой-же как и d-bus главный способ взаимодействия программ на убунте.
coreclr просто не нужен COM-сервер, тк нет такого кейса, где понадобилось бы обращаться к нему именно так.
Я не исключаю, что к каким-то виндовым компонентам действительно может идти обращение через COM, но для этого не нужно создавать COM-сервер.
Те приложения, которые хотят вызвать coreclr - могут просто тащить за собой свой собственный экземпляр coreclr в виде библиотеки.
Либо взять предустановленный из PATH.
Ну и .NET Core сейчас не требует установки - можно просто скачать zip-архив и сразу пользоваться.
Шилда как автора в принципе не рассматриваю.
Про вторую писал.
Третья не относится к теме.
Про четвертую даже не открывая интернета, вероятно, можно услышать, но мне она не внушает доверия. 30 страниц читать про массивы, это не то. Скорее всего это Таненбаум от мира джавы.