Здравствуйте, VladD2, Вы писали:
VD>Например, Симон разработал Дженерики. На мой взгляд вклад был намного более значительным. Но почему-то он не столь легендарен.
Симон это Саймон Пейтон Джонс? Если да, то ты что-то путаешь.
now playing: SCSI-9 — Blue Wolf From North
Re[14]: The future of programming languages by Хейлсберг
Здравствуйте, VladD2, Вы писали:
VD>>>Если ты не понял — это я тебе ответил в твоей же манере. Вырвал из контекста кусок и ответил.
L>>Нет, ты вырвал слова из предложения.
VD>Ты постоянно делаешь тоже самое.
Приведи пример, где я "вырвал слова из предложения"
Re[6]: The future of programming languages by Хейлсберг
Здравствуйте, Lloyd, Вы писали:
L>Тогда я не понимаю, как это может работать вне одной сборки?
Работало как-то. Может быть выбирали первый попавшийся тип с нужной сигнатурой, может быть что-то еще делали.
L>А если через Reflection? L>А a.AProp.GetType() == b.BProd.GetType() что вернет?
Не знаю. Не проверял. С появлением дженериков на уровне рантйма изучение этого вопроса не имеет практического значения. А изучить и так есть, что.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[19]: The future of programming languages by Хейлсберг
Здравствуйте, Константин Л., Вы писали:
КЛ>1. строгое разделение на dtfinition/declaration КЛ>2. var-блок для методов/функций КЛ>3. огромный синтаксический оверхэд КЛ>4. отсутствие шаблонов/дженериков КЛ>5. идиотские проблемы с массивами КЛ>6. case insensitive токены
П. 3 — это скорее частное мнение. По сравнению со многими ФЯ конечно у всех ИЯ большой оверхэд. Но оверхэж Паскаля над Си — не смешите меня.
П. 6 — вообще не проблема.
А вот серьезнейшей проблемой Дельфи всегда было отсутствие автоматического управления памятью. В С++ были хотя бы деструкторы которые вызвались при раскрутке стека, а в Дельфи только Free который работал только для компонентов. Как только программист начинал писать свой код, так сразу все проблемы по управлению памятью перекладывались на его плечи.
Позиция Борланда была — все объекты должны жить в куче. ОК, я согласен, но почему тогда не ввести GC в язык/рантайм?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[21]: The future of programming languages by Хейлсберг
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, VladD2, Вы писали:
VD>>Вижу... что иметь представление, и пробовать на практике — это большая разница.
AVK>Не ты ли тут недавно цитировал про курицу и яичницу?
Ага. Но только это относилось к словам Вани. Он намекал, что парню нужно было срочно написать свой компилятор, чтобы иметь возможность высказываться о проблемах другого.
Я же тебе не предлагаю написать компилятор чтобы судить о нем. Я предлагаю распробовать ту самую яичницу, чтобы почувствовать ее вкус, а не выражать мнение о ней потыкав в нее вилку.
VD>> Я вот тоже раньше имел представление как на автомобиле ездить. А когда начал водить, то понял, что имел только представление.
AVK>Поздравляю.
Спасибо. Кстати, опять же, заметь, мне не пришлось создать свой автомобиль, чтобы судить о его вождении и проблемах, но поездить для этого точно нужно.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[15]: The future of programming languages by Хейлсберг
Здравствуйте, VladD2, Вы писали:
VD>Ага. Но только это относилось к словам Вани. Он намекал, что парню нужно было срочно написать свой компилятор, чтобы иметь возможность высказываться о проблемах другого.
VD>Я же тебе не предлагаю написать компилятор чтобы судить о нем. Я предлагаю распробовать ту самую яичницу, чтобы почувствовать ее вкус, а не выражать мнение о ней потыкав в нее вилку.
Вопрос только в том, что считать потыкиванием, а что распробованием. Предложение IT потратить на это несколько месяцев идет в лес за несовместимостью со здравым смыслом.
И еще — на основании чего ты оцениваешь уровень моего знакомства? Я вроде бы количество потраченного мной времени нигде не приводил, однако и ты и IT упорно утверждаете, что мало. Или все, кто потратил достаточно, должны считать Немерле лучшим языком, я правильно понимаю?
VD>Спасибо. Кстати, опять же, заметь, мне не пришлось создать свой автомобиль, чтобы судить о его вождении и проблемах, но поездить для этого точно нужно.
Тем не менее это не помешало тебе выбрать автомобиль, имея нулевой опыт вождения.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
Здравствуйте, VladD2, Вы писали:
L>>Тогда я не понимаю, как это может работать вне одной сборки?
VD>Работало как-то. Может быть выбирали первый попавшийся тип с нужной сигнатурой, может быть что-то еще делали.
А если его не нашли?
L>>А если через Reflection? L>>А a.AProp.GetType() == b.BProd.GetType() что вернет?
VD>Не знаю. Не проверял.
Но там не менее, решение из Nemerle — заведомо правильное, а из C# — нет?
VD>С появлением дженериков на уровне рантйма изучение этого вопроса не имеет практического значения. А изучить и так есть, что.
Комментарий не в тему. Я спрашивал о том, как могли существовать "нормальные" делегаты для .Net 1.* (в отсутствие дженериков).
Re[15]: The future of programming languages by Хейлсберг
Здравствуйте, VladD2, Вы писали:
VD>Я же тебе не предлагаю написать компилятор чтобы судить о нем. Я предлагаю распробовать ту самую яичницу, чтобы почувствовать ее вкус, а не выражать мнение о ней потыкав в нее вилку.
Влад, не трать патроны. Я, кажется, догадываюсь в чём тут проблема и, к сожалению, она не разрешима.
Неясность изложения обычно происходит от путаницы в мыслях.
Если нам не помогут, то мы тоже никого не пощадим.
Re[8]: The future of programming languages by Хейлсберг
Здравствуйте, VladD2, Вы писали:
VD> В делегатах проблема не в том, что для них что-то генерирую или нет. Их проблема в том, что они жестко задают этот тип (семантически). Скажем: VD>
delegate int A(int a);
VD>и VD>
delegate int B(int b);
VD>разные типы. И когда я пишу: VD>
VD>var x = y => y * y;
VD>
VD>компилятор не может понять, что за тип я имею в виду.
VD>Если же мы имеем семантику фунционального типа, то данное выражение будет верно так как оно будет иметь тип int -> int.
А вот тут отдельный философский вопрос — хорошо это или плохо. В первом случае тип делегата несет некую семантическую нагрузку, он определяет не только тип входных и выходных значений, но и смысл функции, ее предназначение (которое обычно описывается в документации и отражается в названии).
Если у нас описаны делегаты
delegate int Square(int n); //returns n squared
и
delegate int LaunchMissiles(int n); //returns number of launched missiles
и некая функция принимает на вход делегат первого вида, то очень даже хорошо, что компилятор не даст передать туда делегат второго вида. Это дополнительная степень типобезопасности, если угодно.
Re[7]: The future of programming languages by Хейлсберг
Здравствуйте, VladD2, Вы писали:
VD>>На 58-ой минуте (точнее 58:20) появляется слайд на котором присутствуют все перечисленные языки: VD>>
VD>Кстати, что здесь делает PHP?
Здравствуйте, IT, Вы писали:
IT>Ты бы лучше погоревал о безуспешных попытках побороть в отдельно взятых личностях идолопоклонничество.
Я его пока не разглядел.
... << RSDN@Home 1.2.0 alpha rev. 673>>
Мы уже победили, просто это еще не так заметно...
Re[20]: The future of programming languages by Хейлсберг
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Константин Л., Вы писали:
КЛ>>1. строгое разделение на dtfinition/declaration КЛ>>2. var-блок для методов/функций КЛ>>3. огромный синтаксический оверхэд КЛ>>4. отсутствие шаблонов/дженериков КЛ>>5. идиотские проблемы с массивами КЛ>>6. case insensitive токены
VD>П. 3 — это скорее частное мнение. По сравнению со многими ФЯ конечно у всех ИЯ большой оверхэд. Но оверхэж Паскаля над Си — не смешите меня.
по мне так очень большой
VD>П. 6 — вообще не проблема.
некрасиво
VD>А вот серьезнейшей проблемой Дельфи всегда было отсутствие автоматического управления памятью. В С++ были хотя бы деструкторы которые вызвались при раскрутке стека, а в Дельфи только Free который работал только для компонентов. Как только программист начинал писать свой код, так сразу все проблемы по управлению памятью перекладывались на его плечи. VD>Позиция Борланда была — все объекты должны жить в куче. ОК, я согласен, но почему тогда не ввести GC в язык/рантайм?
Re[4]: The future of programming languages by Хейлсберг
VD>Проблема делегатов в том, что они жестко вводят новый тип. В то время как функциональный тип определяет только сигнатуру. VD>Так что как раз для делегатов типы генерируются, а для фнкциональных типов достаточно однажды определенного набора (что-то вроде Func<...> из linq-а).
Не совсем ты здесь прав. Делегат выводит тип по сигнатуре, а Func<...> это ничто иное как тип делегата, к которому можно привести любой сходный по сигнатуре метод.
Либо ты сам определяешь нужный тип делегата, либо использушь уже объявленные типы Func<...>
Кроме того если смотреть на структуру делегата
public abstract class Delegate : ICloneable
{
// Fieldsinternal int _creatorAsmDesc;
private int _methodPtr;
internal int _secureFrameRequired;
private object _target;
methodPtr должен иметь определенную сигнатуру
То твое предложение к его изменению.
Или у тебя претензии всеже к форме? Или я чего то недопонимаю, а именно внутреннее понимание (описание) сигнатуры.
Тогдадай ссылочку на объяснение
и солнце б утром не вставало, когда бы не было меня
Re[9]: The future of programming languages by Хейлсберг
Тоесть если бы было автоматическое Встроенное explicit implicit к нужному типу делегата этобы устроило отца русской демократии?
Или же всегда пользоваться уже нагенеренными Func<..>
и солнце б утром не вставало, когда бы не было меня
Re: The future of programming languages by Хейлсберг
Здравствуйте, dotneter, Вы писали:
D>http://blog.jaoo.dk/2008/10/07/the-future-of-programming-languages/
D>Занимательное выступление. Но я правильно понимаю что он 20 лет ваял языки программирования совершенно не интересуясь что происходит вокруг, и только F# заставил его узреть какой же оказывается может быть вывод типа. Тоже самое с метапрограммированием, упоминаются только динамические языки, хотя существует тот же Nemerle.