Здравствуйте, Константин Л., Вы писали:
КЛ>повеселил А может еще расскажешь, что такое атомарность функций?
Слушай, ты бы не позорился бы, а?
КЛ>PS: тот, кто часто использует кортежи в качестве возвращаемых значений явно что-то не то делает. Или у него слишком специфичная задача. Отсутствие кортежей — не смертельно.
Тебе, конечно, видней.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Поймите, просто перечислить все языки которые знаешь или о которых слышал — это задача для дауна. Я попытался создать минимально достаточный список. В него ничего не надо вставлять!
Я понимаю, что у разных людей разные предпочтения, но и вы меня поймите. Это мои предпочтения. Не надо в них добавлять ничего! Создайте свой и хоть всю вселенную в него впихните.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Константин Л., Вы писали:
КЛ>PS: тот, кто часто использует кортежи в качестве возвращаемых значений явно что-то не то делает. Или у него слишком специфичная задача. Отсутствие кортежей — не смертельно.
Конечно не смертельно. Но такая вроде с виду фигня реально сокращает объем кода. Но дело даже не в сокращении объема, а в удобстве, уже привыкаешь что не нужно заводить бестолковые временные структуры, не нужно задумыватся о том как вернуть результат.
Здравствуйте, VladD2, Вы писали:
VD>Ребят, чеснослово задолбали!
На обиженных... ну ты сам знаеш
VD>Поймите, просто перечислить все языки которые знаешь или о которых слышал — это задача для дауна. Я попытался создать минимально достаточный список. В него ничего не надо вставлять!
"Я тут сказал мысль, а вы не сметь критиковать!"
VD>Я понимаю, что у разных людей разные предпочтения, но и вы меня поймите. Это мои предпочтения. Не надо в них добавлять ничего! Создайте свой и хоть всю вселенную в него впихните.
Ну и ты нас пойми, нас очень интересует не сам список, а _почему_ он именно такой!
Или так сильно влом вежливо и без наездов объяснить, почему именно этот язык не включён в список?
Или с тебя шапка упадёт/нимб свалится, если ты признаешся, что не знаешь какой-то язык?
CU>Ну и ты нас пойми, нас очень интересует не сам список, а _почему_ он именно такой! CU>Или так сильно влом вежливо и без наездов объяснить, почему именно этот язык не включён в список? CU>Или с тебя шапка упадёт/нимб свалится, если ты признаешся, что не знаешь какой-то язык?
мне этот список очень понравился, и я его готов поддержать на все 100. и не только поддержать, но и объяснить его. разные языки программирования поддерживают разные парадигмы. при этом парадигмы не являются полностью взаимоисключающими. основные из них:
чистое (функциональное) vs императивное программирование
процедурный / АТД / ООП / функциональный / логический подход
динамические / статические языки
для того, чтобы изучить все эти подходы, нужно изучать поддерживающие их языки, и разумеется брать наилучших их представителей. теперь смотрим. процедурный и АТД подход стали частью ООП, так что их можно отдельно не изучать. лучшие ООП языки — эйфель (компилируемый) и руби (интерпретируемый). функциональные — схема (динамический, императивный), окамл (компилируемый, императивный, с прикрученным сбоку ООП), хаскел (чистый, компилируемый); логические — пролог (динамический, условно-императивный). немерл — противоположность окалму, это ООП язык с прикрученным императивным FP
если человеку рассказать про парадигмы программирования и дать изучить эти языки, то у него появится гибкость в осмысленрии задачи, в порджумывании алгоритма её решения. даже если писать он будет продолжать на C++
).
VD>Да, уместно. Но о нем еще надо знать. А rsn81 явно не из тех кто обсуждает то, что знает.
VD>Еще можно было бы упоминуть дизайн делегатов и пару других вещей.
VD>Все это достадные ошибки дизайна. Но их все же не много. И их наличие никак не умоляет того факта, что ошибки дизайна Явы были проанализированы и в оснвном устранены.
D>>Лично я не разделяю крайне пуристские взгляды на ref-out параметры. И считаю, что они в некоторых случаях бывают весьма полезны. Тем более, что в C#'е они реализованы, на мой взгляд, лучше, чем в C++ (например, есть разделение на ref и out (а не просто ссылка); и необходимость явно помечать ref out аргументы при вызове).
VD>В С++ их вообще нет. За то есть указатели позволяющие эмулировать их, но эта эмуляция черевата ошибками, и опасными. Плюс явное указание этих модификаторов четко описывает намерение, а значит делает код более понятным и предсказуемым.
Здравствуйте, creatman, Вы писали:
C>Здравствуйте, VladD2, Вы писали:
VD>>Здравствуйте, dshe, Вы писали:
D>>>Здесь наверное более уместно упомянуть оператор as (As is или история о том как не надо писать код
).
VD>>Да, уместно. Но о нем еще надо знать. А rsn81 явно не из тех кто обсуждает то, что знает.
VD>>Еще можно было бы упоминуть дизайн делегатов и пару других вещей.
VD>>Все это достадные ошибки дизайна. Но их все же не много. И их наличие никак не умоляет того факта, что ошибки дизайна Явы были проанализированы и в оснвном устранены.
D>>>Лично я не разделяю крайне пуристские взгляды на ref-out параметры. И считаю, что они в некоторых случаях бывают весьма полезны. Тем более, что в C#'е они реализованы, на мой взгляд, лучше, чем в C++ (например, есть разделение на ref и out (а не просто ссылка); и необходимость явно помечать ref out аргументы при вызове).
VD>>Плюс явное указание этих модификаторов четко описывает намерение, а значит делает код более понятным и предсказуемым.
Здравствуйте, Дм.Григорьев, Вы писали:
AVK>>Обжегшись на молоке (DTD) стали дуть на воду (XSD, XSLT)
ДГ>Эммм... Можно вот здесь поподробнее, для чайников?
Можно. В составе стандарта SGML (помним, что именно от него произрости и HTML и XML) была часть для описания ряда синтаксических правил документа, выходящих за рамки стандартных ограничений. Т.е. набор допустимых тегов, атрибутов, их взаимоотношения и т.п. Описывалось это все специальным языком Document Type Definition. Засада была в том, что для этого языка нужен был свой отдельный парсер. В результате далеко не все реализации XML этот самый DTD контроллировали. Поэтому, во-первых начали делать DTD, но с синтаксисом XML, т.е. XML Schema, а во-вторых при разработке XSLT побоялись повторения аналогичной ситуации и отбросили варианты с не-XML синтаксисом (а они были).
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Константин Л., Вы писали:
КЛ>>повеселил А может еще расскажешь, что такое атомарность функций?
VD>Слушай, ты бы не позорился бы, а?
ну дай попозориться, пожалуйста
так ссылочку может даешь или еще что...А то вот говоришь умные слова, хочется узнать откуда дровишки.
КЛ>>PS: тот, кто часто использует кортежи в качестве возвращаемых значений явно что-то не то делает. Или у него слишком специфичная задача. Отсутствие кортежей — не смертельно.
VD>Тебе, конечно, видней.
Здравствуйте, FR, Вы писали:
FR>Здравствуйте, Константин Л., Вы писали:
КЛ>>PS: тот, кто часто использует кортежи в качестве возвращаемых значений явно что-то не то делает. Или у него слишком специфичная задача. Отсутствие кортежей — не смертельно.
FR>Конечно не смертельно. Но такая вроде с виду фигня реально сокращает объем кода. Но дело даже не в сокращении объема, а в удобстве, уже привыкаешь что не нужно заводить бестолковые временные структуры, не нужно задумыватся о том как вернуть результат.
поинт в том, что если ты возвращаешь "бестолковые временные структуры", то значит у тебя метод делает "все сразу и еще кучу вещей", что часто говорит о его избыточности или неправильности. Если же так нужно и это осмысленная операция, то эти "бестолковые временные структуры" должны стать нормальными логическими сущностями и уж тут кортежи нафиг не нужны. Кароче моё мнение, что кортежи — это затычки для костылей, которые мы сами и сажаем.
VD>>Языки типа Явы и C# ВООБЩЕ не рассчитаны на работу в многопоточном окружении.
C>synchronized? lock? Это не расчет на многопоточность???
это как раз костыли вокруг mutable values, чтобы затащить их в brave new world эрланг, созданный для программирования АТСок, таких затычек не имеет, а ведь там тысячи процессов — это не подвиг, а норма
Здравствуйте, Константин Л., Вы писали:
FR>>Конечно не смертельно. Но такая вроде с виду фигня реально сокращает объем кода. Но дело даже не в сокращении объема, а в удобстве, уже привыкаешь что не нужно заводить бестолковые временные структуры, не нужно задумыватся о том как вернуть результат.
КЛ>поинт в том, что если ты возвращаешь "бестолковые временные структуры", то значит у тебя метод делает "все сразу и еще кучу вещей", что часто говорит о его избыточности или неправильности. Если же так нужно и это осмысленная операция, то эти "бестолковые временные структуры" должны стать нормальными логическими сущностями и уж тут кортежи нафиг не нужны. Кароче моё мнение, что кортежи — это затычки для костылей, которые мы сами и сажаем.
Так нужно и это осмысленные операции, только от бестолковых временных структур это не избавляет.
Те же std::pair, boost::tuple тоже нафиг не нужны?
Здравствуйте, Quintanar, Вы писали:
Q>Здравствуйте, Константин Л., Вы писали:
КЛ>>> Кароче моё мнение, что кортежи — это затычки для костылей, которые мы сами и сажаем.
Q>А мое мнение, что вы с умным видом рассуждаете о вещах, о которых понятия не имеете.
кортежи настолько простая вещь, что не надо быть академиком, чтобы рассуждать о ней.
[]
FR>Так нужно и это осмысленные операции, только от бестолковых временных структур это не избавляет. FR>Те же std::pair, boost::tuple тоже нафиг не нужны?
не знаю...ты сам себе противоречишь. Так нужно — но бестолковые структуры...
VD>Но у них есть одна проблема — они неудобны. Или скажем, так в большинстве случаев вместо них удобнее использовать озврат множетсва значений (котреж, напимер). Такой подход решает и проблему многопточности (при условии что весь многопоточный код написан в фукнциональном стиле) решает, и просто удобен.
поправь меня, но в Nemerle можно обращаться к элементам кортежа только по индексам, которые должны быть известы в compile-time и нельзя по элементам пробежаться. Так что это лучше "бестолковых безымянных структур" только их отсутствием (структур). А об их отсутствии (точнее о том, что это плохо и они заменяются кортежами.) я уже писал.
Здравствуйте, Константин Л., Вы писали:
КЛ>Здравствуйте, VladD2, Вы писали:
КЛ>[]
VD>>Но у них есть одна проблема — они неудобны. Или скажем, так в большинстве случаев вместо них удобнее использовать озврат множетсва значений (котреж, напимер). Такой подход решает и проблему многопточности (при условии что весь многопоточный код написан в фукнциональном стиле) решает, и просто удобен.
КЛ>поправь меня, но в Nemerle можно обращаться к элементам кортежа только по индексам, которые должны быть известы в compile-time и нельзя по элементам пробежаться. Так что это лучше "бестолковых безымянных структур" только их отсутствием (структур). А об их отсутствии (точнее о том, что это плохо что они заменяются кортежами.) я уже писал.