D>Ты действительно дурак, или только притворяешься?
Да я действительно дурак, так как продолжаю с тобой общаться.
D>Ты сам первый выкатил претензии к generics, на вопрос о примере указал на шаблоны C++, которые мало того что не статически типизированные, так и не generics вообще,
Нет, все началось с этой фразы:
А что в статически типизированных языках обобщенный код уже отменили?
WolfHound'а. Generic'и появились только в твоем воспаленном воображении, про них разговора не было.
D>и делаешь совершенно идиотские обобщения за гранью не то что формальной логики, но и здравого смысла. Твоё утверждение переформулируется как "статический анализ возможен не для всех языков". Ну фигли, тут ты прав, для нестатических невозможен.
Конечно имелось в виду "полный статический анализ возможен не для всех статически типизированных языков".
D>А сильная типизация невозможна для слабых языков, ага. Чего тебе достаточно? Ты взял в качестве примера нестатическую часть C++ и на её примере пытаешься доказать, что статика сосёт?
Кто-то тут про невежество втирал, да ладно, шаблоны статическая часть C++ выполняются только в compile time в рантайме их не существует.
D>А с нормальной статикой тебе учить лень, для тебя это "необъятное". Что ж, бывают просто невежды, а ты "невежда воюющий" — худший из подклассов. Больше мне сказать тебе нечего.
Не надо пороть чушь, я пишу на OCaml конечно не так много как хотелось бы, но вполне регулярно. Хотя что говорить сильно вежественному человеку который OCaml в глаза не видел.
Re[31]: Что вас останавливает от изучения нового языка?
Здравствуйте, dimgel, Вы писали:
D>Иными словами, ты пытаешься брать худшие примеры (по факту ты берёшь примеры, вообще к теме не относящиеся) и на них пытаешься показать порочность самой идеи. Предложения ознакомиться с хорошими примерами реализации ты отклоняешь. Троллизм, демагогия и воюющее невежество. Я тебя запомнил.
В зеркало посмотри
Re[17]: Что вас останавливает от изучения нового языка?
Здравствуйте, VladD2, Вы писали:
VD>Что до мышления заученными конструкциями, то новые языки и надо изучать чтобы знать как можно делать по дргому. Даже если ты начинаешь писать на старом языке, где нет спец.конструкций, ты все же будешь лучшим программистом, так как твой список "заученных конструкций" будет шире.
Если мыслишь заученными конструкциями, то заучив новые конструкции, станешь всего лишь более знающим бараном. К умению думать владение заученными конструкциями не имеет никакого отношения. А умение думать строится на совершенно других принципах, в частности на принципе минимума сущностей. Но само по себе изучение других языков никак освоить эти принципы не помогает.
VD>Ты несешь несусветуню чушь. Если проблема может быть решена введением дополнительной фукнции, то это не проблема языка, а проблема библиотеки. Заметь, в 4-ом фрэймворке ее решили без изменения зыка.
Пример со string.Join показывал, что очень часто проблема мусорности кода может быть решена средствами имеющегося языка. Но в силу привычки думать заученными конструкциями программисты просто не замечают, что данный код является мусорным, и соответственно не ищут способа избавиться от этого мусорного кода.
Re[32]: Что вас останавливает от изучения нового языка?
Здравствуйте, FR, Вы писали:
D>>Ты сам первый выкатил претензии к generics, на вопрос о примере указал на шаблоны C++, которые мало того что не статически типизированные, так и не generics вообще, FR>Нет, все началось с этой фразы:
FR>
FR>А что в статически типизированных языках обобщенный код уже отменили?
FR>WolfHound'а. Generic'и появились только в твоем воспаленном воображении, про них разговора не было.
Ок, было вот что:
FR>>Так с анализом обобщенного когда и в статике проблематично.
D>В самом деле? Пример дашь? А я в ответку решение на скале без проблем.
Чуть выше показали на шаблонах C++.
Суть от этого не меняется: ты пытаешься притянуть за уши нестатическую часть C++ в качестве доказательства проблем со статикой.
FR>Конечно имелось в виду "полный статический анализ возможен не для всех статически типизированных языков".
Недостатки конкретной реализации не являются подтверждением недостатков самой идеи. Хотя бы это тебе понятно, или твоя цель — много и бессмысленно троллить?
FR>Кто-то тут про невежество втирал, да ладно, шаблоны статическая часть C++ выполняются только в compile time в рантайме их не существует.
Тут уже двое отписали — WolfHound и adontz — что шаблоны C++ НЕстатические. Я тебе уже минимум дважды предлагал ознакомиться с полноценной статической реализацией генериков. Как об стенку горох. Ты для чего, как заведённый, повторяешь одну и ту же мантру, которую уже сто раз опровергли, а?
D>>А с нормальной статикой тебе учить лень, для тебя это "необъятное". Что ж, бывают просто невежды, а ты "невежда воюющий" — худший из подклассов. Больше мне сказать тебе нечего.
FR>Не надо пороть чушь, я пишу на OCaml конечно не так много как хотелось бы, но вполне регулярно. Хотя что говорить сильно вежественному человеку который OCaml в глаза не видел.
При чём здесь твой окалм? О нём речь вообще не идёт. Начинаем сначала:
1) ты защищал динамику, утверждая, что её недостатки, описываемые немерлистами, несущественны.
2) в ответ на просьбы указать преимущества динамики ты не смог сказать ничего.
3) когда зашла речь о том, что тесты не дают никаких гарантий, ты стал утверждать, что статика тоже не даёт гарантий.
4) когда тебя попросили привести пример заявленных тобой проблем статики, ты привёл пример шаблонов C++.
5) два C++ника ответили, что шаблоны в C++ — это не статика.
6) ты скорректировал своё утверждение: "полный статический анализ возможен не для всех статически типизированных языков". В новой редакции оно эквивалентно следующему: "существуют статически-типизированные языки, в которых невозможен полный статический анализ". Что ни коим образом не доказывает порочность самой концепции, т.к. не отрицает существования языков, в которых этот самый полный статический анализ возможен. Согласен?
Re[27]: Что вас останавливает от изучения нового языка?
Здравствуйте, VladD2, Вы писали:
VD>Так просто не надо обижать. Думаю тебе будет не очень приятно, если я начну заходить в любую ветку и говорить, что твои слова ничего не стоит, так как ты никогда не использовал на практике C# и Nemerle.
Можешь, я на самом деле их не знаю, но блин что-то F# начинает меня затягивать, а там NET совсем пропаду
VD>Ну, так и потрудись быть конструктивным. Я понимаю твою позицию, но товарищ был прав, ты действительное не приводишь никаких аргументов, а в место этого постоянно обсуждаешь чужую компетенцию в отдельных областях.
Тык он тоже, ладно замнем.
VD>Ты можешь считать все что угодно. Но VBScript и JavaScript (с которыми я знаком не по наслышки) — это полноценные динамически типизированные языки и поработав с ними все надостатки динамики можно ощутить с полная.
Угу настолько сполна, что и достоинства можно не увидеть.
VD>Я не против твоих аргументов вроде того, что Руби и Питон имеют более строгую систему типов и что это хорошо. VD>Но принципиально это ничего не меняет. Даже если забыть про банальные ошибки дизайна вроде отсутствие явного объявления переменных (чего, кстати, нет в жабаскрипте, например), динамические проблемы никуда не деваются.
VD>Я тебе уже сто раз говорил о них. Повторяться смысла не вижу. Динамика это приговор как для возможности сгенерировать производительный код, так и для возможности извлечения метаинформации во время разработки. Все что делают в этих областях разные ПиПи и т.п. — это не более чем попытки вытащить из общей массы нетипизированного (во время разработки) кода части которые можно статически типизировать. Но тут все очень просто. Если мы можешь вытащить значительные куски такого кода, то это уже не динамика. А раз так то глупо заниматься ужимками. Проще взять сразу статически-типизированный язык.
Ладно не будем повторятся и ходить по кругу, можно было бы про ту же абстрактную интерпретацию поговорить, но лучше в отдельной не срачной теме.
VD>Немного демогогии . По сути языки вроде ОКамла и Немерла можно использовать как динамически-типизированный языки в которых все продумано для извлечения информации о типах во время компиляции и в которых есть явные средства описания необходимого динамического полиморфизма.
Можно, но как замена скриптам не очень удобно, типы приходится объявлять, шума больше. Вот динамический жестко функциональный язык, притом не сильно специализированный как эрланг не помешал бы. Вот за pure я слежу, и пока как-то не получилось посмотреть то что Воронков ваяет.
VD>С динамическими языками, на мой взгляд, все очень просто. Они живут из-за двух причин: VD>1. Они проще в изучении, так как те самые концепции описывающие необходимый полиморфизм в них не нужны. VD>2. Их значительно проще реализовать и в них легче обеспечить разные приятные фичи вроде исправления кода на ходу с продолжением выполнения.
Легкое метапрограммирование тоже одна из причин, особенно у руби.
VD>Однако пункт 2 это не более чем вопрос времени. По объему кода который необходимо написать для реализации задачи Немерл уже не уступает лучшим скриптам. Так что скрипы — это тупиковое направление. Рано или поздно появятся статически-типизированные языки которые ни в чем не будут им уступать. А преимуществ у статики и так хватает. VD>Скрипты уже сегодня развиваются в сторону статики. Попытки компиляции сктиптов (ПиПи и гуглевые наработки) — это и есть движение в эту сторону.
Ну и динамика тоже проникает в статические языки, так что вполне возможно будут рулить гибриды.
VD>Так что ты можешь говорить все что угодно. Но по сути Вольфхаунд прав. Просто он максималист и не различает оттенков. Он всегда говорит о светлом будущем. А мы живем в сером настоящем. Но даже в нем статика рулит. И чем больше проект тем больше она рулит.
Угу, но это как коммунизм, всегда в будущем
Re[28]: Что вас останавливает от изучения нового языка?
Здравствуйте, FR, Вы писали:
VD>>Ну, так и потрудись быть конструктивным. Я понимаю твою позицию, но товарищ был прав, ты действительное не приводишь никаких аргументов, а в место этого постоянно обсуждаешь чужую компетенцию в отдельных областях.
FR>Тык он тоже, ладно замнем.
На зеркало не пеняй. Я вынужденно бью тебя твоим же оружием.
Re[8]: Что вас останавливает от изучения нового языка?
Здравствуйте, vdimas, Вы писали:
D>>ИМХО эти вещи до некотороый степени взаимосвязаны. Там где я в ФП могу написать `val strings = ints.map(_.toStrings)`, на императивном языке я буду вынужден корёжиться с циклом (сорри, вы тут неподалёку что-то похожее в тему обсуждали, но мне в вашу тему вчитываться лениво). И сущностей меньше, и букв.
V>Это должен быть совсем ограниченный "жестко-императивный" язык, типа Джавы или Паскаля. На любом более-менее универсальном языке, например C# или С++, это делается примерно в такой же записи, +- несколько букв.
То же самое можно сказать про паттерн матчинг. Которого нет в C# и C++. Только те, кто им не пользовался — не проникнутся, будут говорить, что есть if и визитор.
По сравнению с Nemerle, C# ограниченный императивный язык.
Re[33]: Что вас останавливает от изучения нового языка?
Здравствуйте, dimgel, Вы писали:
D>Тут уже двое отписали — WolfHound и adontz — что шаблоны C++ НЕстатические. Я тебе уже минимум дважды предлагал ознакомиться с полноценной статической реализацией генериков. Как об стенку горох. Ты для чего, как заведённый, повторяешь одну и ту же мантру, которую уже сто раз опровергли, а?
Типизация выполняется полностью на этапе компиляции.
Но из-за того что отсутствуют типы типов ошибка компиляции появляется черт знает где, а не там где она действительно произошла.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[17]: Что вас останавливает от изучения нового языка?
Здравствуйте, WolfHound, Вы писали:
WH>Типизация выполняется полностью на этапе компиляции. WH>Но из-за того что отсутствуют типы типов ошибка компиляции появляется черт знает где, а не там где она действительно произошла.
Это я понимаю. Но это уточнение не прибавит аргументов FR-у.
Re[33]: Что вас останавливает от изучения нового языка?
Здравствуйте, dimgel, Вы писали:
D>Ок, было вот что: D>
FR>>>Так с анализом обобщенного когда и в статике проблематично.
D>>В самом деле? Пример дашь? А я в ответку решение на скале без проблем.
D>Чуть выше показали на шаблонах C++.
D>Суть от этого не меняется: ты пытаешься притянуть за уши нестатическую часть C++ в качестве доказательства проблем со статикой.
Меняется, шаблоны статическая часть C++, динамики там нет.
FR>>Конечно имелось в виду "полный статический анализ возможен не для всех статически типизированных языков".
D>Недостатки конкретной реализации не являются подтверждением недостатков самой идеи. Хотя бы это тебе понятно, или твоя цель — много и бессмысленно троллить?
Троллить это твоя цель.
Если бы я хотел показать недостатки конкретной реализации то я бы взял более слабо типизированный чем С++ Си.
FR>>Кто-то тут про невежество втирал, да ладно, шаблоны статическая часть C++ выполняются только в compile time в рантайме их не существует.
D>Тут уже двое отписали — WolfHound и adontz — что шаблоны C++ НЕстатические. Я тебе уже минимум дважды предлагал ознакомиться с полноценной статической реализацией генериков. Как об стенку горох. Ты для чего, как заведённый, повторяешь одну и ту же мантру, которую уже сто раз опровергли, а?
adontz говорил ровно противоположное.
Тебе читать хотя бы Вандервуда "Шаблоны С++".
D>При чём здесь твой окалм? О нём речь вообще не идёт. Начинаем сначала:
Это статический жестко типизированный язык, обобщенное программирование в нем тоже есть.
D>1) ты защищал динамику, утверждая, что её недостатки, описываемые немерлистами, несущественны.
Нет, ты перевираешь, я говорил что они несущественны на практике.
D>2) в ответ на просьбы указать преимущества динамики ты не смог сказать ничего.
Не видел просьб, только нападки тролля.
D>3) когда зашла речь о том, что тесты не дают никаких гарантий, ты стал утверждать, что статика тоже не даёт гарантий.
Нет, я сказал что статика не дает 100% гарантии.
D>4) когда тебя попросили привести пример заявленных тобой проблем статики, ты привёл пример шаблонов C++.
Который вполне релевантный.
D>5) два C++ника ответили, что шаблоны в C++ — это не статика.
Нет, один из них такого не говорил, ну и плюс я сам C++ник, а ты можешь пока постоять в сторонке.
D>6) ты скорректировал своё утверждение: "полный статический анализ возможен не для всех статически типизированных языков". В новой редакции оно эквивалентно следующему: "существуют статически-типизированные языки, в которых невозможен полный статический анализ". Что ни коим образом не доказывает порочность самой концепции, т.к. не отрицает существования языков, в которых этот самый полный статический анализ возможен. Согласен?
А я нигде ни собирался доказывать порочность концепции.
Ты выдумал себе виртуального собеседника и с ним беседуешь, а мне приходится за него отвечать, цирк какой-то
Re[34]: Что вас останавливает от изучения нового языка?
Здравствуйте, FR, Вы писали:
FR>Меняется, шаблоны статическая часть C++, динамики там нет.
Понятно, ты готов повторять слово "сахар", пока во рту не станет сладко.
D>>Тут уже двое отписали — WolfHound и adontz — что шаблоны C++ НЕстатические. FR>adontz говорил ровно противоположное.
adontz говорил "В шаблонах Си++ структурная типизация." WolfHound — "В С++ типы динамически типизированы. Вот у нас есть template<class T>. И это все что у нас есть. Про тип T мы ничего не знаем пока его нам не дадут и мы не начнем компилировать данный шаблон с данным типом." Про статику никто из них не говорил.
FR>Тебе читать хотя бы Вандервуда "Шаблоны С++".
Не интересно. Ты в состоянии сам логично и последовательно объяснить, почему они — статика? Вышеупомянутые персоны не гнушаются аргументировать свои утверждения, чем ты хуже?
D>>При чём здесь твой окалм? О нём речь вообще не идёт. Начинаем сначала: FR>Это статический жестко типизированный язык, обобщенное программирование в нем тоже есть.
И что?
D>>1) ты защищал динамику, утверждая, что её недостатки, описываемые немерлистами, несущественны. FR>Нет, ты перевираешь, я говорил что они несущественны на практике.
Не придирайся к словам. Программирования — это практическая дисциплина. Теория никого не интересует.
D>>2) в ответ на просьбы указать преимущества динамики ты не смог сказать ничего. FR>Не видел просьб, только нападки тролля.
Просьба шла от WolfHound: "Ну так где аргументы то? Есть только один: Меньше кода. Но это по сравнению с жабой меньше. А по сравнению с немерле экономии почти нет. А какие еще? Ну, хоть один."
D>>3) когда зашла речь о том, что тесты не дают никаких гарантий, ты стал утверждать, что статика тоже не даёт гарантий. FR>Нет, я сказал что статика не дает 100% гарантии.
Угу.
D>>4) когда тебя попросили привести пример заявленных тобой проблем статики, ты привёл пример шаблонов C++. FR>Который вполне релевантный.
Нет.
D>>5) два C++ника ответили, что шаблоны в C++ — это не статика. FR>Нет, один из них такого не говорил, ну и плюс я сам C++ник, а ты можешь пока постоять в сторонке.
Что они говорили, см. выше. Я писал на C++ лет 5, хоть и давно. Наезды свои оставь при себе. (Очередной съезд на личности, похоже принцип "как аукнется, так и откликнется" до тебя не доходит.)
D>>6) ты скорректировал своё утверждение: "полный статический анализ возможен не для всех статически типизированных языков". В новой редакции оно эквивалентно следующему: "существуют статически-типизированные языки, в которых невозможен полный статический анализ". Что ни коим образом не доказывает порочность самой концепции, т.к. не отрицает существования языков, в которых этот самый полный статический анализ возможен. Согласен?
FR>А я нигде ни собирался доказывать порочность концепции.
Тогда что ты пытаешься доказать?
FR>Ты выдумал себе виртуального собеседника и с ним беседуешь, а мне приходится за него отвечать, цирк какой-то
Можешь не отвечать, тебя же никто не заставляет? Тем более, что ты уже слил по всем фронтам неоднократно.
Re[28]: Что вас останавливает от изучения нового языка?
Здравствуйте, FR, Вы писали:
FR>Можешь, я на самом деле их не знаю, но блин что-то F# начинает меня затягивать, а там NET совсем пропаду
Ну, ну. А там и до немерла рукой подать.
VD>>Ты можешь считать все что угодно. Но VBScript и JavaScript (с которыми я знаком не по наслышки) — это полноценные динамически типизированные языки и поработав с ними все надостатки динамики можно ощутить с полная.
FR>Угу настолько сполна, что и достоинства можно не увидеть.
Не боись. Руби и (от части) Питон я поизучал. На практике не применял, так как не было задач и желания. Но с их возможностями в общем знаком. Потом ты мне про них уже который год рассказываешь .
Так что я в курсе достоинств. Но как я уже говорил оные (в большей части) не есть привилегия именно динамики. Просто делать статику куда сложнее. Но время работает на статику.
FR>Ладно не будем повторятся и ходить по кругу, можно было бы про ту же абстрактную интерпретацию поговорить, но лучше в отдельной не срачной теме.
"абстрактную интерпретацию" это глупость. На самом деле — это не более чем процесс типизации. Типизатор немерла, окамла или фшарпа делает тоже самое. Он бежит по программе и пытается виртуально ее выполнить попутно вычисляя типы.
Тут проблема в том, что если в язык сразу не заложить детерминизм типов и явного описания полиморфизма, то твой "абстрактный интерпретатор" будет постянно нарываться на места в которых он не сможет сделать вывод типов. И чем больше будут применяться прелести динамики (МП на прототипах, кодогенерация, ...), тем меньше толка от подобных начинаний.
VD>>Немного демогогии . По сути языки вроде ОКамла и Немерла можно использовать как динамически-типизированный языки в которых все продумано для извлечения информации о типах во время компиляции и в которых есть явные средства описания необходимого динамического полиморфизма.
FR>Можно, но как замена скриптам не очень удобно, типы приходится объявлять, шума больше.
А ты не говори пока не попробовал. Многие используют Немерл именно как скрипты. На работе не дают писать на немерле подакшн, так они используют его для генерации чего-то или для автоматизации.
Если человек знаком с АПИ дотнета, то для него такой скрипт получается куда выгоднее нежели использование настоящих скриптов, потому как объем кода то же, а затрат времени меньше (не надо изучать новый АПИ). Плюс поддержка IDE, человеческая отладка и высокая скорость исполнения. Почти идеальный скрип... как бы это не звучало странно для тебя.
У F# так вообще есть специальный формат файлов для этого. И вообще его просто таки пропагандируют как скриптовый язык.
FR>Вот динамический жестко функциональный язык, притом не сильно специализированный как эрланг не помешал бы. Вот за pure я слежу, и пока как-то не получилось посмотреть то что Воронков ваяет.
Тебе может и не помешал бы. А я искренне не вижу в нем нужды. Ну, а без IDE я жить не хочу, так же как не хочу жить без многих повседневных сервисов вроде газа и электричества.
FR>Легкое метапрограммирование тоже одна из причин, особенно у руби.
Вот это уж "дудки". Я даже готов согласиться, что МП в Немерле не очень то просто. Но это ни разу не означает, что его нельзя сделать проще. А по возможностям МП немерле не уже любого другого из динамического языка. При этом есть ряд преимуществ. Самое важное, на мой взгляд, это скорость работы макроса и порождаемого им кода. Именно она дает возможность делать вещи недоступные на сктиптах. Скажем повторить PegGrammar на Питоне ты не сможешь в принципе, так как ты не достигнешь требуемой производительности.
Можно конечно мешать скрипты с низкоуровневыми компилируемыми языками вроде С, но тогда встает вопрос — а зачем оно надо? Ведь от сктиптовой легкости при этом не остается и следа. А того же самого можно добиться в рамках одного языка чей уровень не ниже скриптового, а производительность на уровне компилируемого.
FR>Ну и динамика тоже проникает в статические языки, так что вполне возможно будут рулить гибриды.
Динамика была в статических языках всегда. Просто в том же шарпе ее попытались рассахарить и упростить.
Тут с одной стороны нельзя не согласиться, но с другой статус динамики в статических языках далеко не тот, что статики в динамических. Если в динамических авторы пытаются разными не научными методами вытащить "зашифрованную" статику из динамики, то в случае динамики в статике имеет место более явного декларирования намерений. Так что это сравни превращению паттернов в языковые конструкции (ну, типа превращение for-а для перебора коллекции в foreach). Так что, и да, и нет.
VD>>Так что ты можешь говорить все что угодно. Но по сути Вольфхаунд прав. Просто он максималист и не различает оттенков. Он всегда говорит о светлом будущем. А мы живем в сером настоящем. Но даже в нем статика рулит. И чем больше проект тем больше она рулит.
FR>Угу, но это как коммунизм, всегда в будущем
В данном случае — это не утопия. Просто нужно время и ресурсы чтобы его построить. И умным людям лучше было бы не тратить время на срачи между собой, а объединить усилия и попытаться приблизить это будущее.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[18]: Что вас останавливает от изучения нового языка?
Здравствуйте, dimgel, Вы писали:
D>adontz говорил "В шаблонах Си++ структурная типизация." WolfHound — "В С++ типы динамически типизированы. Вот у нас есть template<class T>. И это все что у нас есть. Про тип T мы ничего не знаем пока его нам не дадут и мы не начнем компилировать данный шаблон с данным типом." Про статику никто из них не говорил.
Любой C++ знает что шаблоны это статика.
FR>>Тебе читать хотя бы Вандервуда "Шаблоны С++".
D>Не интересно. Ты в состоянии сам логично и последовательно объяснить, почему они — статика? Вышеупомянутые персоны не гнушаются аргументировать свои утверждения, чем ты хуже?
Ты не просил. Это общеизвестная вещь.
Статика они потому что существуют только во время компиляции. В объектном коде от них не остается вообще ничего, это одно из
основных свойств из-за которых их и применяют в таком повернутом на производительности языке как C++.
FR>>Это статический жестко типизированный язык, обобщенное программирование в нем тоже есть.
D>И что?
То что статику я знаю вполне нормально.
D>Не придирайся к словам. Программирования — это практическая дисциплина. Теория никого не интересует.
Тут это очень важно, это основное из-за чего у нас и идет весь этот спор динамика vs статика.
D>Просьба шла от WolfHound: "Ну так где аргументы то? Есть только один: Меньше кода. Но это по сравнению с жабой меньше. А по сравнению с немерле экономии почти нет. А какие еще? Ну, хоть один."
Ему отвечать бессмысленно, проверенно уже больше чем за пять лет.
D>>>4) когда тебя попросили привести пример заявленных тобой проблем статики, ты привёл пример шаблонов C++. FR>>Который вполне релевантный.
D>Нет.
Да.
D>>>5) два C++ника ответили, что шаблоны в C++ — это не статика. FR>>Нет, один из них такого не говорил, ну и плюс я сам C++ник, а ты можешь пока постоять в сторонке.
D>Что они говорили, см. выше. Я писал на C++ лет 5, хоть и давно. Наезды свои оставь при себе. (Очередной съезд на личности, похоже принцип "как аукнется, так и откликнется" до тебя не доходит.)
По твоим словам чуть выше видно что ты не писал на шаблонах C++.
Троллить еще не устал, справедливый ты наш?
FR>>А я нигде ни собирался доказывать порочность концепции.
D>Тогда что ты пытаешься доказать?
Я ничего, пытаюсь отбиться от тролля, чистая самозащита.
FR>>Ты выдумал себе виртуального собеседника и с ним беседуешь, а мне приходится за него отвечать, цирк какой-то
D>Можешь не отвечать, тебя же никто не заставляет? Тем более, что ты уже слил по всем фронтам неоднократно.
Надоест перестану.
Re[19]: Что вас останавливает от изучения нового языка?
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, alvas, Вы писали:
A>>По твоим прогнозам когда ожидается релиз?
VD>Немерла то? Да вчера. Мы сейчас уперлись в то, что к релизу хотим подправить заглавную страницу сайта и выложить кое какой материал на анлгиском.
Здравствуйте, FR, Вы писали:
D>>adontz говорил "В шаблонах Си++ структурная типизация." WolfHound — "В С++ типы динамически типизированы. Вот у нас есть template<class T>. И это все что у нас есть. Про тип T мы ничего не знаем пока его нам не дадут и мы не начнем компилировать данный шаблон с данным типом." Про статику никто из них не говорил.
FR>Любой C++ знает что шаблоны это статика.
А как быть с вышепроцитированными C++-никами, которые этого не знают и утверждают обратное?
FR>>>Тебе читать хотя бы Вандервуда "Шаблоны С++". D>>Не интересно. Ты в состоянии сам логично и последовательно объяснить, почему они — статика? Вышеупомянутые персоны не гнушаются аргументировать свои утверждения, чем ты хуже? FR>Ты не просил. Это общеизвестная вещь.
Я и книгу не просил. Но если ты хочешь, чтобы спор был аргументированный, изволь приводить аргументы сам. Итак?
FR>>>Это статический жестко типизированный язык, обобщенное программирование в нем тоже есть. D>>И что? FR>То что статику я знаю вполне нормально.
А generics с вариантностью и upper/lower bounds в окалме есть?
Пример lower bound на скале:
trait Animal {
def feed(...)
}
class Elephant extends Animal {
def feed(...) {
// ...
}
}
class ZooCage[A <: Animal] (a: A) {
// ....
a.feed(...)
}
new ZooCage(new Elephant)
Здесь запись [A <: Animal] означает "generic-тип A, являющийся подтипом Animal". Благодаря этому внутри generic-класса ZooCage компилятор имеет информацию о супертипе A и в состоянии проверить корректность вызова метода a.feed(). А при инстанциировании ZooCage с конкретным аргументом выполняется проверка, что A=Elephant удовлетворяет условию A <: Animal. Полный контроль, в отличие от шаблонов C++.
D>>Не придирайся к словам. Программирования — это практическая дисциплина. Теория никого не интересует. FR>Тут это очень важно, это основное из-за чего у нас и идет весь этот спор динамика vs статика.
Ещё раз: тут все говорят исключительно о практике, теория никого не интересует. Ты уже извинился перед Владом за то, что врал, называя его теоретиком, не работавшим на динамических языках?
D>>Просьба шла от WolfHound: "Ну так где аргументы то? Есть только один: Меньше кода. Но это по сравнению с жабой меньше. А по сравнению с немерле экономии почти нет. А какие еще? Ну, хоть один." FR>Ему отвечать бессмысленно, проверенно уже больше чем за пять лет.
Читал я многое из ваших споров. Ему, как разработчику немерла, действительно был бы интересен конструктив, в качестве посылок для определения направлений развития языка. Тебе просто нечего ему ответить. Но сейчас суть не в этом, а в том, что твой предыдущий ответ "не видел просьб, только нападки тролля" — очередное враньё. Просьбы-то, оказывается, были.
D>>>>4) когда тебя попросили привести пример заявленных тобой проблем статики, ты привёл пример шаблонов C++. FR>>>Который вполне релевантный. D>>Нет. FR>Да.
Как быть с вышепроцитированными C++-никами, которые не считают шаблоны статикой? Напиши здесь пожалуйста и для них тоже аргументацию, почему ты считаешь их статикой.
FR>По твоим словам чуть выше видно что ты не писал на шаблонах C++. FR>Троллить еще не устал, справедливый ты наш?
Очередной съезд на личности. Аргументы будут?
D>>Тогда что ты пытаешься доказать? FR>Я ничего, пытаюсь отбиться от тролля, чистая самозащита.
Лучший способ избавиться от тролля — это перевести разговор в конструктивное русло, давать грамотные аргументы. Поскольку ты себя этим не отягощаешь, троллем выступаешь именно ты. Но я очень надеюсь, что аргументы рано или поздно наконец появятся. Итак?
Re[37]: Что вас останавливает от изучения нового языка?
Здравствуйте, dimgel, Вы писали:
FR>>Любой C++ знает что шаблоны это статика. D>А как быть с вышепроцитированными C++-никами, которые этого не знают и утверждают обратное?
Ок, каюсь. Возвращаемся к истокам, с которых всё началось: ты же не будешь спорить с тем, что шаблоны C++ — далеко не самый удачный пример статической типизации, и что по ним нельзя утверждать о том, что проблемы со 100% контролем типов в обобщённом программировании присущи всей статике как таковой?
Re[39]: Что вас останавливает от изучения нового языка?
D>Ок, каюсь. Возвращаемся к истокам, с которых всё началось: ты же не будешь спорить с тем, что шаблоны C++ — далеко не самый удачный пример статической типизации, и что по ним нельзя утверждать о том, что проблемы со 100% контролем типов в обобщённом программировании присущи всей статике как таковой?
Я утверждаю, что:
1) Статическая типизация не гарантия относительной лёгкости построения средств рефакторинга.
2) Динамическая типизация не гарантия относительно сложности построения средств рефакторинга.
и надо каждый язык рассматривать отдельно.