Здравствуйте, Mamut, Вы писали:
M>Вау. Неужели? Владеют, да? Что-то незаметно. Пока что вся информация, что есть, идет не от IT, не от Ziaw'а, не от Wolfhound'а и не от тебя, а от Андрея и Владимира Кочеткова. Ты после этого удивляешься, что «мало ктопонимает, что такое Н2»?
С Андрем (АВК) я говорил еще до того как мы взялись за проект о котором идет речь. С IT и Ziaw я говорил несколько дней назад. Они тоже не владеют 100% информации, но все же знают несоизмеримо больше. Особенно IT.
Что до информации, то я уже ответил на этот вопрос. Придет время и все будет.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Pavel Dvorkin, Вы писали:
VD>>Ты хочешь сказать, что C# плохой язык? Ведь в нем поддерживается вывод типов для параметров типов методов.
PD>Я не считаю, что C# плохой язык на основании того, что он имеет эту возможность. PD>Равно я не считаю хорошими все на свете языки, в которых она отсутствует. PD>Более того, я вообще не намерен давать интегральную оценку (хороший- плохой) на основании одной отнюдь не первостепенной его возможности.
А давай ты определишься? Если вывод параметров типов и вообще типов параметров — это зло, то списанию подлежат все С-подобные языки.
Если же это не зло, то твой пример не о чем. Кстати, в рамках дотнетных дженериков его даже выразить невозможно. Можно только сделать метод который возвращает другой тип, но наложить понижающее ограничение (констрэйн) не выйдет.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Смотря как использовать. Вполне могут и сойтись.
Как не используй, если ты попытаешься получить доступ к чему-то отличному от фруктов, типы не сойдутся.
PD>Получим контейнер из фруктов, потом выведем в БД, а там, как на грех, one table per class hierarchy (в смысле Hibernate).
Если ты будешь использовать свой "контейнер" как контейнер фруктов, то и проблем не будет. Это будет корректный код. Ну, а то, что какой-то другой код не умеет корректно работать с коллекциями базового типа — это, согласись, не проблеама типизации.
И главное, что здесь вообще не причем вывод типов, так как подобный вывод типов есть во многих мэйнстрим-языках, включая C#.
PD> Ну и выведется благополучно в эту таблицу постороннее яблоко, а аукнется это бог знает где и когда. Может, совсем в другом приложении.
Система типов и не должна решать проблему выявления всех на свете ошибок. Рантайм-ошибки были, есть и будут, так как их наличие определяется невозможностью описать все сочетания входных данных.
Система же типов выполняет свою роль. И совершенно не важно есть вывод типов или нет. Она все равно ловит ошибки связанные с неверным использованием типов.
Твой пример попросту не корректен. Ты рассматриваешь маленький кусочек кода изолированно от другого кода. На практике же типы проверяются в рамках программы и при наличии ошибки в типах она обязательно где-то вылезает. Мощный вывод типов может лишь ошибиться с местом возникновения ошибки. Но это случается редко. И в случае чего, можно просто уточнить тип в любом месте и компилятор покажет более детальную и точную диагностику.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Mamut, Вы писали:
M>О да, а от тебя идет ну просто тонна полезной информации, ага
Ему пока по статусу нельзя распространяться.
WH>>А что такое Н2 уже не раз сказано. M>Ссылку на внятное описание, текущий статус и roadmap в студию WH>>Даже статья есть. M>Ссылку в студию.
Здравствуйте, VladD2, Вы писали:
VD>А давай ты определишься? Если вывод параметров типов и вообще типов параметров — это зло, то списанию подлежат все С-подобные языки.
А я и так уже определился. Повторяю — я не намерен оценивать язык по критерию "хороший-плохой", базируясь на одной его возможности. И уж тем более списывать языки на этом основании.
Вообще интересная у тебя логика. Если в языке что-то плохо (неважно что) — его списать надо ? Пойди найди язык, в котором все без исключения хорошо. А если тебе и покажется, что нашел — так завтра что-то покажется уже не совсем хорошим, и стало быть , списать ? Так мы вообще без языков останемся.
Точнее, с одним языком, который всегда хороший
Да и вообще я не намерен оценивать язык таким критерием — слишком уж по-детски это. Вася хороший, он мне конфетку дал, а Петя плохой, он подножку поставил.
Здравствуйте, VladD2, Вы писали:
VD>Если ты будешь использовать свой "контейнер" как контейнер фруктов, то и проблем не будет. Это будет корректный код. Ну, а то, что какой-то другой код не умеет корректно работать с коллекциями базового типа — это, согласись, не проблеама типизации.
Код корректный в том смысле, что делает то, что следует из него по правилам языка. Он некорректно применен, потому что программист неправильно понял эти правила языка. А компилятор не смог ему подсказать, нет у него для этого информации.
VD>Система типов и не должна решать проблему выявления всех на свете ошибок. Рантайм-ошибки были, есть и будут, так как их наличие определяется невозможностью описать все сочетания входных данных.
Никто этого и не требует. Но чем больше она ошибок в состоянии найти до рантайма, тем лучше.
VD>Система же типов выполняет свою роль. И совершенно не важно есть вывод типов или нет. Она все равно ловит ошибки связанные с неверным использованием типов.
VD>Твой пример попросту не корректен. Ты рассматриваешь маленький кусочек кода изолированно от другого кода. На практике же типы проверяются в рамках программы и при наличии ошибки в типах она обязательно где-то вылезает. Мощный вывод типов может лишь ошибиться с местом возникновения ошибки. Но это случается редко.
Это все слова. Я тебе привел да, кусочек, да, изолированный. Но вполне реальный кусочек. И мне совсем не надо, чтобы этот кусочек имел ошибку в себе, если можно очень задешево ее избежать, набрав еще десяток символов с помощью спинного мозга, потому что головной при этом не участвует по крайней мере до тех пор, пока не сделаешь ошибку.
>И в случае чего, можно просто уточнить тип в любом месте и компилятор покажет более детальную и точную диагностику.
Тебе история про цикл в Фортране и гибель космической ракеты известна ? Ну вот не посмотрели они более детальную и точную диагностику и не нашли эту постороннюю переменную.
////////////////////////////
22 июля 1962 Неудача при запуске первого американского спутника к Венере "Mariner 1" случилась из-за ошибки в программе на языке Фортран – в операторе цикла вместо запятой программист поставил точку:
◦правильный оператор DO 50 I = 12,525
◦оператор с ошибкой DO 50 I = 12.525
"Умный" компилятор не выдал ошибку, а интерпретировал данную конструкцию как оператор присваивания.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>А я и так уже определился. Повторяю — я не намерен оценивать язык по критерию "хороший-плохой", базируясь на одной его возможности. И уж тем более списывать языки на этом основании.
Ты предъявил претензии к выводу типов на основании примера который использует возможность имеющуюся в языках к которым ты подобных претензий не предъявлял.
PD>Вообще интересная у тебя логика. Если в языке что-то плохо (неважно что) — его списать надо ?
У меня логика есть. И это главное. А вот ты пытаешься спорить с нарушением базовых принципов логики, а именно пытавшийся мыслить непоследовательно и противоречиво.
PD>Пойди найди язык, в котором все без исключения хорошо. А если тебе и покажется, что нашел — так завтра что-то покажется уже не совсем хорошим, и стало быть , списать ? Так мы вообще без языков останемся.
Я не утверждал, что вывод типов — это зло. Это делал ты.
Проблема в том как и чем ты обосновываешь свои утверждения.
PD>Точнее, с одним языком, который всегда хороший
Я тебе показал, что описанная тобой "проблема" есть и в C#. Но ты ведь не против его использования? А раз так, то мы имеем дело со случаем избирательного использования принципов. Для C# это нормально, так как ты его используешь на практике и с проблемами не сталкиваешься, а для Nemerle — это не нормально, так как ты его на практике не используешь и подозреваешь, что могут появиться проблемы.
PD>Да и вообще я не намерен оценивать язык таким критерием — слишком уж по-детски это. Вася хороший, он мне конфетку дал, а Петя плохой, он подножку поставил.
Ты взялся судить о ненужности вывода типов. Я покритиковал твои аргументы. Что я делаю не так?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Более того, я вообще не намерен давать интегральную оценку (хороший- плохой) на основании одной отнюдь не первостепенной его возможности.
Ты именно так и поступаешь. Ты даешь интегральную оценку "вывод типов — зло" на основании высосанного из пальца примера.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>5) Регулярно скулящие... причиной вашему скулению является непоправимая психологическая травма... сходите к психологу... не вполне приятно получать подобный фидбэк, по сути незаслуженный...
Какая у вас, Немерлистов, тонкая душевная организация, однако.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Код корректный в том смысле, что делает то, что следует из него по правилам языка. Он некорректно применен, потому что программист неправильно понял эти правила языка. А компилятор не смог ему подсказать, нет у него для этого информации.
Программисты сплошь и рядом не правильно понимают код. Это называется ошибкой (несовпадение ожиданий и реального поведения). Вывод типов тут не причем. При некотором объема ошибки неизбежны.
PD>Никто этого и не требует. Но чем больше она ошибок в состоянии найти до рантайма, тем лучше.
Тут никто не спорит. Вот только немерловый компилятор, не смотря на существенно более мощный вывод типов в Немерле, находит куда больше ошибок. А по твоим предположениям все должно быть с точностью до наоборот.
VD>>Твой пример попросту не корректен. Ты рассматриваешь маленький кусочек кода изолированно от другого кода. На практике же типы проверяются в рамках программы и при наличии ошибки в типах она обязательно где-то вылезает. Мощный вывод типов может лишь ошибиться с местом возникновения ошибки. Но это случается редко.
PD>Это все слова.
Можно подумать, что у тебя это истины в последней инстанции.
PD>Я тебе привел да, кусочек, да, изолированный. Но вполне реальный кусочек.
Это все слова.
PD>И мне совсем не надо, чтобы этот кусочек имел ошибку в себе, если можно очень задешево ее избежать, набрав еще десяток символов с помощью спинного мозга, потому что головной при этом не участвует по крайней мере до тех пор, пока не сделаешь ошибку.
Я тебе на эти слова и ответил, что если бы ты не рассуждал о гипотетических ошибках, а попытался бы совершить подобную ошибку в реальном приложении, то сделать бы ты ее не смог бы, так как обязательно нашлось бы место где ты попытался бы использовать коллекцию, как коллекцию конкретных фруктов. И тут тебе пришлось бы или сделать проверку времени выполнения (которая есть ни что иное как обход статической системы типов), или ты получил бы сообщение об ошибке.
Чудес не бывает.
>>И в случае чего, можно просто уточнить тип в любом месте и компилятор покажет более детальную и точную диагностику.
PD>Тебе история про цикл в Фортране и гибель космической ракеты известна ? Ну вот не посмотрели они более детальную и точную диагностику и не нашли эту постороннюю переменную.
Меня вообще не интересуют подобные истории. У нас до недавнего времени ракеты летали на базе аналоговых машин. И хорошо летали. А сейчас что-то падают. Это разговор не о чем.
Ты сделал вполне конкретные ошибочные утверждения, я тебе указываю на ошибки в твоих утверждениях. С твой стороны было бы разумнее попытаться осознать это, а то и попробовать на практике то о чем ты пытаешься рассуждать теоретически. Заметь, что те кто попробовали с тобой не согласны.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
M>>Вау. Неужели? Владеют, да? Что-то незаметно. Пока что вся информация, что есть, идет не от IT, не от Ziaw'а, не от Wolfhound'а и не от тебя, а от Андрея и Владимира Кочеткова. Ты после этого удивляешься, что «мало ктопонимает, что такое Н2»?
VD>С Андрем (АВК) я говорил еще до того как мы взялись за проект о котором идет речь. С IT и Ziaw я говорил несколько дней назад. Они тоже не владеют 100% информации, но все же знают несоизмеримо больше. Особенно IT.
И молчат, как рыбы, ага. После чего Wolfhound позволяет себе выражения типа «несет бред
», ага
VD>Что до информации, то я уже ответил на этот вопрос. Придет время и все будет.
Когда? Когда это время придет? Отсутствие какой-либо информации и агрессивное поведение некоторых участников никак не способствуют ни пониманию ни заинтересованности со стороны потенциальных, ни со стороны уже существующих пользователей. Как думаешь, один из лучших информаторов
VD>Кое что изменилось со времен ее написания, но основные идеи остались.
-- Но, мистер Дент, проект был выставлен в городской строительной
конторе. Он там лежит уже 9 месяцев.
-- Ну, разумеется. Как только я узнал, я бросился туда, вчера вечером.
Не слишком вы старались, чтобы мы узнали об этом строительстве. Меня, во
всяком случае, могли бы и предупредить.
-- Но проект можно было посмотреть и в городском совете...
-- Можно посмотреть!? Да мне пришлось лезть в подвал, чтоб его найти!
-- Вся документация обычно там и хранится.
-- И мне пришлось взять с собой фонарь!
-- Наверно, там просто нет света.
-- И лестницы тоже.
-- Но вы все-таки нашли проект, так ведь?
-- Нашел, -- сказал Артур. -- Конечно, нашел. Я нашел его на дне
запертого шкафа в заколоченном сортире, на двери которого висела вывеска
"Осторожно, леопард!"
Для того, чтобы найти статью по ссылке, надо точно знать, что в Гугле надо вбивать «немерле н2» (потому что «немерле 2» не даст ссылку на эту статью). Ссылки на эту статью нет ни в разделе «Статьи —> .NET -> Nemerle», ни на сайте nemerle.org. Она есть в «RSDN Magazine -> 20012 -> #1».
Но да, но да, «никто не понимает, что такое N2» и «он несет бред». Потому что вы, как разработчики, кажется, из кожи вон лезете, чтобы никто, никогда и никаким образом не узнал ни грамма информации про этот проект
Почему вам не взять пример с уже собрата по компании: Kotlin'а? Достаточно вести мнимальный блог о том, что уже сделано, что не сделано, и подавляющее большинство вопросов и претензий просто-напросто отвалится само. Котлина еще не было, а блог-пост про него уже был. Его еще не было, а уже было написано, зачем он нужен. Его еще не было, а feedback уже был получен и на него реагировали. Его еще не было, твиттер уже был.
Неужели команду N2 в JetBrains вообще не допускают к интернету? Неужели люди, постоянно находящиеся в топе RSDN по количеству сообщений, не способны написать двух строчек о статусе любимого и самого главного их проекта? Причем, желательно, строчек не в стиле «вы все тупые и нихера не понимаете»
Здравствуйте, WolfHound, Вы писали:
M>>а от Андрея и Владимира Кочеткова. Ты после этого удивляешься, что «мало ктопонимает, что такое Н2»? WH>От него идет бред, а не информация.
Я тут про AVK. Что-то не заметил что мамут так лихо рядом поставил двух разных человек.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
M>>>а от Андрея и Владимира Кочеткова. Ты после этого удивляешься, что «мало ктопонимает, что такое Н2»? WH>>От него идет бред, а не информация. WH>Я тут про AVK. Что-то не заметил что мамут так лихо рядом поставил двух разных человек.
От кого, от него? Не умеешь общаться по-человечески, лучше вообще ничего не пиши. Толку от тебя ровно ноль.
PD>>Более того, я вообще не намерен давать интегральную оценку (хороший- плохой) на основании одной отнюдь не первостепенной его возможности.
VD>Ты именно так и поступаешь. Ты даешь интегральную оценку "вывод типов — зло" на основании высосанного из пальца примера.
Я оцениваю эту возможность как потенциально опасную, и привел свои аргументы. На это я имею полное право. Если тебя эти аргументы не устраивают — бога ради, можешь с ними не соглашаться или приводить контраргументы.
Я впрочем, серьезных контраргументов не увидел, видел только голословные утверждения в форме твоей общепризнанной вежливости и корректности в дискуссиях.
Продолжать не вижу смысла. На остальные твои постинги не отвечу — незачем.
Здравствуйте, Mamut, Вы писали:
WH>>Я тут про AVK. Что-то не заметил что мамут так лихо рядом поставил двух разных человек. M>От кого, от него? Не умеешь общаться по-человечески, лучше вообще ничего не пиши. Толку от тебя ровно ноль.
То, что ты читать совсем не умеешь, ты только что доказал.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Нет, не избирательное чтение. Просто для этого никакой PowerShell не нужен, да и не было его тогда в Windows 2008 Server
Был. Включался галочкой в списке компонентов Windows.
... << RSDN@Home 1.2.0 alpha 5 rev. 66 on Windows 8 6.2.9200.0>>
WH>>>Я тут про AVK. Что-то не заметил что мамут так лихо рядом поставил двух разных человек. M>>От кого, от него? Не умеешь общаться по-человечески, лучше вообще ничего не пиши. Толку от тебя ровно ноль. WH>То, что ты читать совсем не умеешь, ты только что доказал.
Ты бы вместо того, чтобы самоутверждаться в каждом сообщении, называть всех тупыми и презрительно называть то, что пишут другие, бредом, написал бы абзац-другой о Н2. Толку было бы намного больше.
Но, естественно, этого ждать от тебя не приходится. Ты предпочитаешь самоутверждаться в каждом сообщении и далее по тексту.
Здравствуйте, Ziaw, Вы писали:
Z>Разница становится очевидна, когда Expression Tree приходится конструировать. Более унылое программирование сложно себе представить.
System.Reflection.Emit?
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Я оцениваю эту возможность как потенциально опасную, и привел свои аргументы.
ОК. Но раз тебя это не останавливает от программирования на Си-побных языках, значит не должно останавливать и от программирования на языках с выводом типов. А аргумент твой против всех без исключения языков программирования, так я еще не видел ни одного языка где нужно было явно указывать типа параметров функций при их вызове.
Короче твои возражения и аргументы не о чем.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.