Здравствуйте, mkizub, Вы писали:
M>Здравствуйте, BulatZiganshin, Вы писали:
BZ>>в статических языках тип переменной определяется текстом программы, в динамических — процессом исполнения. кстати ООП — это динамическая типизация, даже когда она привнесена в статические языки
M>Нет, ООП не противоречит статической типизации. Тип — это набор констрайнтов, определяющих что можно сделать с объектом. Тип в Java ничем не хуже типа в C, это всё тот-же набор операций над объектом.
вопрос на засывку — а зачем тогда понадобился RTTI?
Люди, я люблю вас! Будьте бдительны!!!
Re[40]: Являются ли макросы свидетельством недостаточной выр
Здравствуйте, BulatZiganshin, Вы писали:
M>>Нет, ООП не противоречит статической типизации. Тип — это набор констрайнтов, определяющих что можно сделать с объектом. Тип в Java ничем не хуже типа в C, это всё тот-же набор операций над объектом.
BZ>вопрос на засывку — а зачем тогда понадобился RTTI?
Не поверишь — просто удобно.
На C++ можно писать без RTTI, и на яве можно писать без рефлекшина. В частности, из J2ME эту библиотеку убрали — просто для экономии места.
Если тебя смущает instanceof — то почему тебя не смущает pattern mathcing в FP?
AVK>>Спорно. Идее ситаксических макросов 200 лет в обед. Однако ж не прижились пока что.
VD>Можно источник? Насколько мне известно превый статически типизированный язык в котором реализованы макросы — это МетаМЛ.
как следует из той де книги, которую я цитировал насчёт pl/1 — синтаксические макросы реализовывадись ещё для алгола в 60-е годы
кстати, если бы в немерле были клозуры, то как я понимаю все эти управляющие структуры, которые ты приводишь (while, foreach) — можно было бы реализовать в виде обычных процедур, как это делается в руби, например
Люди, я люблю вас! Будьте бдительны!!!
Re[27]: Являются ли макросы свидетельством недостаточной выр
Здравствуйте, BulatZiganshin, Вы писали:
BZ>кстати, если бы в немерле были клозуры, то как я понимаю все эти управляющие структуры, которые ты приводишь (while, foreach) — можно было бы реализовать в виде обычных процедур, как это делается в руби, например
Или что обещают в 7-й яве после их добавления.
Re[27]: Являются ли макросы свидетельством недостаточной выр
Здравствуйте, BulatZiganshin, Вы писали:
BZ>кстати, если бы в немерле были клозуры, то как я понимаю все эти управляющие структуры, которые ты приводишь (while, foreach) — можно было бы реализовать в виде обычных процедур, как это делается в руби, например
Здравствуйте, mkizub, Вы писали:
M>Здравствуйте, BulatZiganshin, Вы писали:
BZ>>кстати, если бы в немерле были клозуры, то как я понимаю все эти управляющие структуры, которые ты приводишь (while, foreach) — можно было бы реализовать в виде обычных процедур, как это делается в руби, например
M>А mutable локальные переменные как апдейтить?
Здравствуйте, mkizub, Вы писали:
BZ>>кстати, если бы в немерле были клозуры, то как я понимаю все эти управляющие структуры, которые ты приводишь (while, foreach) — можно было бы реализовать в виде обычных процедур, как это делается в руби, например M>А mutable локальные переменные как апдейтить?
А какие проблемы с mutable-переменными, если есть настоящие замыкания?
Sapienti sat!
Re[29]: Являются ли макросы свидетельством недостаточной выр
Здравствуйте, Cyberax, Вы писали:
M>>А mutable локальные переменные как апдейтить? C>А какие проблемы с mutable-переменными, если есть настоящие замыкания?
Здравствуйте, mkizub, Вы писали:
M>Здравствуйте, Курилка, Вы писали:
M>>>А mutable локальные переменные как апдейтить?
К>>Ммм, а может определение почитать чтоль?
M>И что? Что ты хотел сказать этим?
Несколько странно задавать вопрос про то, как локальные переменные апдейтить, если в этом основной смысл замыкания
Или это тоже непонятно?
Re[41]: Являются ли макросы свидетельством недостаточной выр
Здравствуйте, mkizub, Вы писали:
M>Здравствуйте, BulatZiganshin, Вы писали:
M>>>Нет, ООП не противоречит статической типизации. Тип — это набор констрайнтов, определяющих что можно сделать с объектом. Тип в Java ничем не хуже типа в C, это всё тот-же набор операций над объектом.
BZ>>вопрос на засывку — а зачем тогда понадобился RTTI?
M>Не поверишь — просто удобно. M>На C++ можно писать без RTTI, и на яве можно писать без рефлекшина. В частности, из J2ME эту библиотеку убрали — просто для экономии места.
более того, C++ не ООП язык, поскольку на нём можно писать без классов RTTI — это как раз *следствие* частично-динамической типизации ООП. получая ссылку на A, ты не знаешь, какого на самом деле типа указуемый объект и RTTI сущетсвует как раз чтобы определить этот тип в случае использования техник, основанных на динамической типизации
>Если тебя смущает instanceof — то почему тебя не смущает pattern mathcing в FP?
это один тип. но в плане надёжности проблемы имхо точно такие же — обработка правильного варианта может быть просто не предусмотрена кодом
Люди, я люблю вас! Будьте бдительны!!!
Re[31]: Являются ли макросы свидетельством недостаточной выр
Здравствуйте, Курилка, Вы писали:
M>>>>А mutable локальные переменные как апдейтить?
К>>>Ммм, а может определение почитать чтоль?
M>>И что? Что ты хотел сказать этим?
К>Несколько странно задавать вопрос про то, как локальные переменные апдейтить, если в этом основной смысл замыкания К>Или это тоже непонятно?
Смысл замыканий не в том, чтоб апдейтить локальные переменные.
Впрочем, речь не о том, что их нельзя поменять из замыкания, а о том — как ты это собираешься делать? Физически — как? Указатель на них сохранить в замыкании? И потом работать с локальной переменной по ссылке, а не в регистре/стеке?
Здравствуйте, BulatZiganshin, Вы писали:
BZ>более того, C++ не ООП язык, поскольку на нём можно писать без классов RTTI — это как раз *следствие* частично-динамической типизации ООП. получая ссылку на A, ты не знаешь, какого на самом деле типа указуемый объект и RTTI сущетсвует как раз чтобы определить этот тип в случае использования техник, основанных на динамической типизации
RTTI не нужен для полиморфизма, для него нужен диспатчинг методов в зависимости от ран-тайм типа аргумента. Что никак не противоречит "набору операций, которые можно с данными произвести" — набор операций тот-же самый, вот только код выполнится разный. Не путай динамическую типизацию с полиморфизмом. Да, там унутри есть виртуальные таблици или ещё какая хрень, которая в рантайме предоставляет возможность определения типа. Но это внутренние детали, а проверка типов на этапе компиляции полная.
Здравствуйте, VladD2, Вы писали:
VD>"Мы" это кто? Я имею в виду, что ХМЛ для ползователя удобнее, так как он сможет манипулировать с документом во первых как с обычным текстом (хранить его в системах контроля версий, мерджить и т.п.), а во вторых стандартное структурирование поможет выуживать из документов нужную информацию не прибегая к пропроитарным АПИ, а так же писать собственные редакторы для данных документов (например, резко упрощается создание генераторов отчетов выдающих на выходе воровские файлы).
и опять все сводится к legacy
VD>Что до скорости загрузки, то на современных компьютерах оверхэд от текстового формата будет небольшой (при качественной реализации), а зипование (применяемое в офисных пакетах) способно даже дать выигрышь по сравнению с бинарными форматами.
не способно, если проектированием бинарного формата занимался не полный дебил. Хотел бы я посмотреть, как ты будешь сравнивать скорость работы зазипованного XML с database-in-file.
VD>Ты видил спецификации для воровского формата (бинарного)? Не STG, а того что в него пишет Ворд... Нет? Знаешь почему? Потому, что формат этот довольно гнусен и постоянно менялся МС-ом. Им проще было недокументировать данный формат оставляя отвественность за ручную модификацию (или чтение) данного формата на тех хакерах, что сами с ним смогли разобраться (и написали книжки посвященные этому). В вордоском документе запись идет не последовательно и отдельными блоками. Так проще реализовать быстрое сохранение. В купе с тем, что в отдельных блоках данные там хранятся в формате с прямой адресацией (не сериализованные) — это нехило усложняет создание собственных ридеров и райтеров для такого формата. А с ХМЛ проблем нет.
То есть главная и единственная проблема — в том, что MS не помогал разрабатывать 3d-party реализации либ для работы со своим форматом?
Re[30]: Являются ли макросы свидетельством недостаточной выр
Здравствуйте, mkizub, Вы писали:
M>Здравствуйте, Cyberax, Вы писали:
M>>>А mutable локальные переменные как апдейтить? C>>А какие проблемы с mutable-переменными, если есть настоящие замыкания?
M>Эффективность кода.
это проблема компилятора, который должен уметь их инлайнить
Люди, я люблю вас! Будьте бдительны!!!
Re[43]: Являются ли макросы свидетельством недостаточной выр
Здравствуйте, mkizub, Вы писали:
M>Здравствуйте, BulatZiganshin, Вы писали:
BZ>>более того, C++ не ООП язык, поскольку на нём можно писать без классов RTTI — это как раз *следствие* частично-динамической типизации ООП. получая ссылку на A, ты не знаешь, какого на самом деле типа указуемый объект и RTTI сущетсвует как раз чтобы определить этот тип в случае использования техник, основанных на динамической типизации
M>RTTI не нужен для полиморфизма, для него нужен диспатчинг методов в зависимости от ран-тайм типа аргумента. Что никак не противоречит "набору операций, которые можно с данными произвести" — набор операций тот-же самый, вот только код выполнится разный. Не путай динамическую типизацию с полиморфизмом. Да, там унутри есть виртуальные таблици или ещё какая хрень, которая в рантайме предоставляет возможность определения типа. Но это внутренние детали, а проверка типов на этапе компиляции полная.
типы в ООП динамические. секрет успеха ООп именно в том, что он предложил наьбор операций, который похзволяет работать с динамическими, неизвестными в вомент компиляции типами в надёжной, compile-time checked манере. а RTTI — это чистая динамика, предоставляющая доступ к остальным операциям, которые в compile-time не проверишь
Люди, я люблю вас! Будьте бдительны!!!
Re[32]: Являются ли макросы свидетельством недостаточной выр
M>Впрочем, речь не о том, что их нельзя поменять из замыкания, а о том — как ты это собираешься делать? Физически — как? Указатель на них сохранить в замыкании? И потом работать с локальной переменной по ссылке, а не в регистре/стеке?
это в терминах C мыслишь в GC-ed языках всё создаётся в куче — и локальные переменные, и замыкания, которые на них ссылаются. остальное — оптимизации, выполняемые по мере сил и способностей компилятора
Люди, я люблю вас! Будьте бдительны!!!
Re[52]: Являются ли макросы свидетельством недостаточной выр
Здравствуйте, IT, Вы писали:
IT>>>макросы не могут проявить себя никак
ANS>>Не "макросы" вообще, а "макросы N", btw
IT>А мы о каких говорим?
В subj быквы N нетути.
IT>Или если больше сказать нечего, то нужно обязательно придолбаться к терминологии?
Спокойнее. Ты уже мог заметить, что решение ограниченное временем компиляции я считаю ущербным "по умолчанию". Так что мимо такой фразы я просто не смог пройти мимо