Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, Pavel Dvorkin, Вы писали:
AVK>Да что ты уперся в эти имена? Там и без имен хватает что хранить. Типовой узел AST вполня модет содержать десятки указателей, чтобы навигация по дереву была максимально быстрой.
Что-то мне кажется, что а) десятки — многовато и б) даже для десятка это всего лишь 40 байт.
PD>> Что-то я не верю, что понадобилось вдруг в 100 раз больше.
AVK>А я нигде и не писал, что в 100 раз больше понадобилось для компиляции.
А я и не говорил, что это ты писал. Просто те компиляторы работали в 64 К, а нынешние на 6.4 М работать ни за что не будут, да и на 64 М — не уверен.
PD>>А что, сотни тысяч надо все сразу ?
AVK>Для рефакторинга, интеллисенса и прочих подобных вещей — да.
Не знаю я решарпер, спорить не буду. Но интеллисенс есть был и в VS 5-6, для С++ ничем не хуже он тогда был, его, собственно, и не изменили. А работало все на 32-64 Мб физической ОП.
PD>> Но я все же думаю (с решарпером не знаком, но с аналогичным работал), все ограничивается не таким уж большим числом файлов и методов.
AVK>Твои теории не верны.
Ну это уже не аргумент.
AVK>>>И 64К уже не хватит для программ соотв. размера.
PD>>Не понял. Ты что, не понимаешь, что такое #include ?
AVK>А ты понимаешь, что такое количество проходов компилятора
Понимаю. В VС++ — один + второй от линкера (c2.dll).
>и почему раньше боролись за их минимизацию в том числе и урезанием фич языка
Никто ничего не урезал, насколько я помню, в том же ТурбоПаскале. Наоборот, расширили, а потом еще первый вариант ООП прикрутили , и все в 640 К.
>а современные компиляторы делают десятки проходов?
Откуда такая информация ? Ссылку дай, только не по экзотическим языкам.
>Почему раньше во многих языках мейнстрима была такая вещь как forward declaration а сейчас обычно обходятся без нее?
Отроду в Фортране не было. В C K&R не было (и до сих пор необязательна) — я прототип функции имею в виду. Где были-то ?
>Почему раньше библиотеки у многих языков имели специальный формат файла
Ну ты даешь. Формату COFF уже сто лет в обед.
>а сейчас в качестве библиотек используются исполняемые файлы?
Ты про статические библиотеки слышал ?
PD>>>>Ты попробуй напиши со всей своей командой программу, в которой 100000 имен
AVK>>>Решарпер вполне такая программа.
PD>>Ну-ну...
AVK>Опять ну-ну. Это легко проверяется, благо вся метаинформация в сборках решарпера доступно. Посчитать суммарное количество имен типов, их членов и параметров совсем несложно.
А любопытно бы.
PD>>3 * 100000 = 300000 секунд = 83 часа = 3 месяца. Круглосуточно, без перекуров, обеда и сна.
AVK>И что? Решарпер не первый год существует, и команда не из одного человека состоит. Я конечно понимаю, что ты с таким никогда не сталкивался, но существуют проекты, которые намного больше решарпера.
Я с таким не сталкивался. Слава богу
PD>>А вот когда надо будет, тогда и загрузим.
AVK>Видишь ли, разработчикам студии и решарпера надо рассчитывать на такие ситуации. Поэтому от того, что иногда это не надо, легче не становится.
А все же, почему нельзя загружать и выгружать по мере надобности ?
PD>>А потом выгрузим, и опять загрузим
AVK>Скажи, ты когда нибудь в жизни писал приложения с плагинами, в которых работающие плагины можно выгружать?
Если бы они все одновременно работали, то я бы согласился. Но реально работают только некоторые. Остальным можно послать команду "стоп", потом выгрузить, сохранив состояние, если надо. Все это решаемо. Есть же даже выгрузка драйверов 0 кольца, а это тебе не плагин.
AVK>>>По историческим причинам.
PD>>Хорошие были причины
AVK>Нормальные. FoxPro, к примеру, МС купил готовым продуктом уже не первой версии.
Знаю.