>Как вы (CyRax, Sharp) можете утверждать может ли произойти утечка в памяти или "кошмар DLL", не зная самого .NET? Чего вы вообще добиваетесь? - На данном этапе своего компьютерного развития ты пока заблуждаешся. Для этого не нужно знать VB.NET, а нужно знать архитектуру процессора. В общем поймешь когда начнёшь изучать ASM. Советую MASM32 - он более ориентирован на Windows чем TASM. Хотя это дело вкуса. >Хм. Это далеко не мое утверждение - я просто процитировал господина Д.Эпплмана - он программирует на Windows с момента ее выхода - думаю, он все же видел Ассемблер и разбирается в этих вещах получше нас вместе взятых. - Очень спорное цитирование. Во первых мистер Д.Эпплман всё таки является программистом на VB и наиболее хорошо разбирается в вопросах связанных с ним. Во вторых он тоже человек, а не робот и поэтому не может делать абсолютно идеальные утверждения. А втретьих вы просто могли его неправильно понять. Как, например, в игре испорченный телефон. Третий вариант наиболее вероятен. Потому как под словом "виртуальная машина" он имел ввиду вовсе не робота-автомата, контролирующего выполнение программы, а лишь способ интерпретации во время написания кода. Для АСМ виртуальной машиной является только компилятор, преобразующий метки в адреса и мнемоники в коды процессора. Конечный же продукт не зависит ни от каких виртуальных машин. Если брать ваше утверждение что всё в мире - виртуальные машины, то компилированная программа на АСМ тоже подпадает под эту классификацию. Но она самостоятельна и не контролируется извне. Если отойти от такого идеального варианта как АСМ и взять, например, любой компилятор ЯВУ, то станет очевидным сходство их "виртуальных машин". Они - всего лишь средства автоматизации работы програмиста. Но не в коем случае не являются интерактивным терминалом, как например VB. В случае VB ты не програмируешь, а просто управляешь виртуальной машиной. АСМ же реально управляет процессором. Для сравнения возьмите любую существующую "виртуальную машину" в человеческом обществе. Ну хотя бы автомобиль. В случае АСМ вы ездите на реальном автомобиле, реально крутите руль и нажимаете педали. А VB всего лишь тренажёр. Вы седите перед имитацией дороги, а на экране всегда весна и светит солнце. Хотя за окном может быть зима или бушует ураган, виртуальная машина всегда показывает вам весеннее солнце. А вы время от времени трогаете руль, чтобы создать илюзию управления. Имитация может очень помочь вам в изучении автомобиля или дороги. Но без реальной практики на реальном шоссе, сколько бы вы часов не наездили, всё равно вы не станете настоящим водителем. >И еще раз - можно было, прочитав это тут уже десяток раз, запомнить: VB .NET - это не интрепретатор, а полноценный компилятор. - См. выше >Однозначно, фраза века. Это ж какая виртуальная машина не позволит мне добавить в свою программу еще 100 кб исходного кода????? - Совершенно бессмысленное высказывание. >И еще - управляемый код не распределяет для себя память, он не создает и не удаляет указатели, не имеет доступа к регистрам процессора и практически не может работать с оборудованием напрямую. И такие "возможности" мне ну нужны, ибо я, когда пишу программу, не хочу тратить свое время на реализацию всего этого. Любой программист должен прежде всего думать об логике программы, а не реализации всех тонких технических мелочей, которые может взять на себя CLR. - См. "я просто процитировал господина Д.Эпплмана" относительно тренажёров. >Кошмар DLL невозможен потому, что теперь в системе может работать одновременно несколько версий одного и того же компонента и совершенно необязательно эти компоненты должны быть зарегестрированы. - По этому поводу ничего не могу сказать так как не знаю зачем вообще нужно регистрировать компоненты. Может кто просветит меня по этому вопросу, а то я путаюсь в догадках. >Была бы моя воля, я бы писал программу, работающую, скажем, после загрузки компа с сидюка, т.е. однозадачную среду с полным управлением вычислительным устройством... - Лично мне импонирует идея многозадачности. Но если кто следил за прошлыми перепетиями, то он заметит, что многозадачность изобрели вовсе не гениальные програмисты МИкрософт. Она, как и все лучшие решения Windows просто была украдена или скуплена по дешёвке у других разработчиков. А вообше без гипертрединга это просто эмуляция. Переключение по таймеру адресов, регистров сегмента (CS,SS,DS) и указателя команд (IP). Может список неполный или я где ошибся - поправьте меня. 2 Павел. Наверное уже пора состряпать развлекательно-познавательную статью на основе наших баталий.
Ответить
|