juan_gandhi: (Default)
Juan-Carlos Gandhi ([personal profile] juan_gandhi) wrote2008-05-14 12:56 pm

dynamic vs static

Я не собираюсь вступать в эту нонешнюю дискуссию. Просто хочу заметить, что речь идёт о "гарвардской архитектуре" супротив "архитектуры фон Неймана".

В первой данные отделены от кода, и задача программиста состоит в том, чтобы состыковать, хоть и через посредников, данные и код, который их обрабатывает; вот и приходится катать всякие конфигурации, эксэмэли, ентити бинзы; всё для того, чтобы уберечь код от данных. Тогда код можно статически проверить и отлить в бронзе. Чтоб не сломался.

Во второй что данные, что код, без разницы; код - это вид данных, а данные могут на определённом уровне интерпретироваться как код, или строить код, который эти данные сынтепретирует (как, помню, была какая-то база, которая строила классы для доступа прямо при открытии таблицы: взял таблицу - вот и классы загрузились; естественно, что динамически.

Ну а так, наверное, стоит почитать, конечно: Егге устраивает разгром в столице статической типизации

[identity profile] itman.livejournal.com 2008-05-14 08:28 pm (UTC)(link)
Чего-то я не понял как Джава "make uses of multicores" while "c++ doesn't". Что это за интересное такое заявление?

[identity profile] anton-solovyev.livejournal.com 2008-05-14 08:53 pm (UTC)(link)
Долго думал чем мне не нравится Python (vs Java).

Решил, что я -- neat freak и код на Python получается сравнительно messy, а Java enforces some discipline. Perl -- еще хуже.

А, вот еще как можно сравнивать языки: качество стандартных библиотек. С Питоном все время нарываешься на то, что нажал чуть посильнее и оно ползет по швам. Java терпит куда больше abuse. Все время лезет в голову сравнение велосипеда с грузовиком.

[identity profile] faceted-jacinth.livejournal.com 2008-05-14 09:06 pm (UTC)(link)
Егге, по-моему, не видит леса за деревьями. В смысле, несмотря на какбэ критическую установку, всё равно воспринимает язык как данное, а стандартные метафоры -- как непреложные правила (в смысле: я ж могу на чистом С и объекты делать, и динамическую типизацию, никто мне не запретит, потому что эскейпы обязаны быть). И, да, судит о статической типизации по наиболее упёртым представителям, которые пытаются запретить эскейпы.

Я сейчас к одной своей проге простенький скриптовый язык приделываю и у меня всякие полуоформленные мысли в связи с этим появляются. Например: существует заговор: тайное общество поклонников динамически типизированных языков называет "dynamic scope" "lexical scope"-ом, чтобы никто не задумался случайно. Ведь когда пишешь интерпретируемый язык, он натурально получается динамически типизированным и с динамическим scope, это baseline, а чтобы получить lexical (static!) scope нужно приложить неслабые усилия, причём централизованно. Но необходимо, и в том же питоне, кстати говоря, все вызовы обычных функций можно отрезолвить в адреса на этапе компиляции (да они наверное и резолвятся), удивительно если подумать, не правда ли?

Вот эта параллель меня как-то настораживает. Не обязательно же ведь требовать строгой типизации, достаточно уметь её вычислять, и это умение вроде бы должно быть таким же импрувментом, как и умение делать static scope, ну, если оставлены удобные эскейпы.

[identity profile] cema.livejournal.com 2008-05-15 12:24 am (UTC)(link)
Скобку закрой. :-)

[identity profile] yosefk.livejournal.com 2008-05-15 05:39 pm (UTC)(link)
Не знаю, насколько это здесь интересно, но гарвардская архитектура, по-моему, лучше, если говорить на машинном уровне (а не в более широком смысле, то есть о воможности какой-либо генерации кода в системе). Машинный код - он малоприятный сорт данных, и генерится не очень часто (даже в хотспотящих виемах, я думаю - бежит же он дольше, чем генерится). Иметь два банка, для кода и для данных, приятней, чем один - bandwidth больше. Налог на генерацию - флашинг кешей - вроде бы того стоит. Конечно, это крайне низкоуровневая мысль.

[identity profile] ex-chrobin.livejournal.com 2008-05-16 07:03 am (UTC)(link)
так если бы дело только в холиворе между принстоном-гарвардом было. ведь мейнстрим диктует ооп, и диктует хмл, в хмл положено отделять код от данных, в ооп — смешивать; можно найти и другие примеры двойной морали. вот и образуется у людей когнитивный диссонанс, и в этом проявляется диалектический материализм..

а егге с каждым разом все более мне жириновского напоминает, только не такой агрессивный.