Re[22]: Что меня не устраивает в МП в Nemerle
От: VoidEx  
Дата: 29.12.08 13:01
Оценка: -1 :)
Здравствуйте, VladD2, Вы писали:

VE>>Нет нет. "Наоборот" — это уже будет не доказательство. За что люблю детские вопросы типа "зачем", "почему", потому что они раскрывают, что тот, кто говорит, сам ничего не понимает, если до сути докопаться.


VD>Детям практически нельзя ничего объяснить серьезно. Как правильно заметил IT детям говорят, что "солнышко пошло спать", а когда они подрастут и поумнеют, им объясняют, что земля крутится вокруг солнца. За-то у детей есть доверие к взрослым. И если ребенку сказали что-то, то он это принимает это на веру.

Дети умнее, чем ты думаешь. Да и люди умнее, чем ты думаешь.
VD>Тут же получается глупая ситуация. Есть люди которые не в состоянии что-то воспринять по причине отсутствия базы и опыта, но на слово они не верят и требуют каких-то доказательств.
Нет, есть люди, которые сами не знают ответа, поэтому на вопрос детям "есть ли Бог" начинают мямлить всякую фигню типа "подрастёшь поймёшь", а взрослым — что у них нет базы.

VD>Ребята. Вам ничего доказать нельзя по причине отсутсвия базы. Идите наберите эту базу, а потом приходите и вам не придется ничего доказывать. Достаточно будет просто объяснить.

Ну-ка ну-ка. Какой базы? Религиозной? Веры в истинность некоторых спорных утверждений? Или что-то конкретное? Какой у нас базы нет? ФП, МП? Я гляжу, конкретики никакой, зато громких фраз много о том, что лучше, и ни слова о том, почему.
(И да, ты тут всех под одну гребёнку не равняй, я понимаю, что проще кучу человек в качестве некоего образа врага рассматривать, но я тут к сплайс-строкам например претензий не имею и меня интересовал только тот вопрос, который я задал)

VE>>Вот ты уверен, что лучше. Абсолютно уверен. Но не знаешь, почему. Для такого казалось бы очевидного утверждения нужно доказать, что хорошие спецы с новой технологией в целом обойдутся дешевле тысячи блабов. А в жизни куча примеров и первого, и второго.


VD>Я уже не уверен в том что помню о чем я говорил. Так как вся тема состоит из тысяч таких вот просьб обосновать.

Ну как же. Ты сказал, что лучше нанять поменьше умных программистов, чем бульоны блабов. Мне интересно, чем лучше? А оно оказывается надо в это поверить, иначе считается, что я не набрал базы, забавно.

VD>При этом свои абсурдные утверждения наши оппоненты обосновывать не считают нужным.

Это тебя оправдывает
Re[9]: Что меня не устраивает в МП в Nemerle
От: Undying Россия  
Дата: 29.12.08 13:09
Оценка: +1 -1
Здравствуйте, Sinclair, Вы писали:

S>Очевидно, тебе достаточно заменить все аргументы AddMessage одним вхождением сплайс-строки.


Хорошо, давайте теперь разберемся с плюсами и минусами такого решения:

Плюсы:
1) Некоторые ошибки форматирования станут невозможными, например, string.Format("Некая константа: {0}, {2}", obj1, obj2).
2) Более очевидный порядок переменных в строке.

Минусы:
1) Добавление в язык птичьей конструкции "$", которая не вызывает никаких ассоциаций, соответственно плохо запоминается.
2) Ошибок форматирования, пожалуй, станет меньше, но они не исчезнут, такое ни компилятор, ни рантайм не отловят: $"Некая константа: obj1, $obj2" // забыли спецсимвол перед obj1.
3) Сложный вывод форматированных значений.

Также еще несколько вопросов:
1) Что будет если переданное макросу сплайс-строки значение равно null?
2) Как записать такую форматную строку: string.Format("{0}добавление")? Т.е. как макрос понимает, что имя переменной закончилось и началась строковая константа?
3) Как работает приведенное Владом: $"Rum-Coke: $(F2(10 / 3))"? В какой код эту запись развернет компилятор?

В принципе если сравнивать приведенные плюсы и минусы, то возможно плюсы и перевесят, хотя и несильно. Но проблема в том, что записи: TraceHlp2.AddMessage("Некая константа: {0}, {1}", obj1, obj2) и TraceHlp2.AddMessage($"Некая константа: $obj1, $obj2") неэквивалентны. Например, завтра мне понадобится лог локализовать. Что мне делать если я использую строку форматирования понятно — исходная строка форматирования становится ключом, по которому находится строка форматирования для нужного языка. А что я должен делать, если использовал сплайс-строки?
Re[10]: Что меня не устраивает в МП в Nemerle
От: Lloyd Россия  
Дата: 29.12.08 13:17
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Все что нужно сделать — это заменить "$" на "L". Далее при компиляции автоматически создается файл куда "выкидываются" все строковые литералы где вместо сплайсов стоят некие заменители вроде любимых тобою "{0}".


Как это будет работать с source control-ом?
Re[10]: Что меня не устраивает в МП в Nemerle
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 29.12.08 13:18
Оценка: +1 :))
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Я уже не раз приводил (в том числе и тут, в ФП) аналогию с рисованием. Рисовать можно научить любого.


Пи<censored>... Трындеж.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[23]: Что меня не устраивает в МП в Nemerle
От: VladD2 Российская Империя www.nemerle.org
Дата: 29.12.08 13:25
Оценка: -1
Надоел. Тебе явно хочется по упражняться в разговорном жанре.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[24]: Что меня не устраивает в МП в Nemerle
От: VoidEx  
Дата: 29.12.08 13:59
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Надоел. Тебе явно хочется по упражняться в разговорном жанре.


Как я и предполагал. Попытки обсудить то, на чём зиждется твоя уверенность (от слова "вера") в Немерле, воспринимаются в штыки, так как кроме веры других обоснований у тебя нет. Это называется фанатизм. И обсуждать тут действительно нечего.
Заметил, как ловко ты мне отвечал на детские вопросы "зачем" и "почему" до тех пор, пока не дошли до спорного? Вот то-то и оно.
Re[10]: Что меня не устраивает в МП в Nemerle
От: VladD2 Российская Империя www.nemerle.org
Дата: 29.12.08 15:17
Оценка: +1
Здравствуйте, Undying, Вы писали:

U>Плюсы:

U>1) Некоторые ошибки форматирования станут невозможными, например, string.Format("Некая константа: {0}, {2}", obj1, obj2).
U>2) Более очевидный порядок переменных в строке.

Главное, что такие строки намного лучше читаются, так как сами спалайся говорят о своем содержимом.

U>Минусы:

U>1) Добавление в язык птичьей конструкции "$", которая не вызывает никаких ассоциаций, соответственно плохо запоминается.

Я даже не знаю что можно сказать на такое. Кроме как домыслами это назвать больше никак нельзя (ну, если оставаться в рамках приличия).

Ты без проблем сам запомнил все что нужно и процитировал прямо. Что тут еще запоминать?
К тому же в языке $ уже используется для квази-цитат. И совершенно логично, что сплайсы в строках которые почти аналогичны по смыслу сплайсам в квази-цитировании, выглядят точно так же.

U>2) Ошибок форматирования, пожалуй, станет меньше, но они не исчезнут, такое ни компилятор, ни рантайм не отловят: $"Некая константа: obj1, $obj2" // забыли спецсимвол перед obj1.


Другими словами мы нашли недостаток в том, что ошибок станет меньше, а не ноль?

U>3) Сложный вывод форматированных значений.


Тут это уже обсуждалось. Его не так много на практике и данный макрос не так сложно расширить поддержкой форматирования. Просто так как это может быть сделано функцией, и так как это пока что никому особо не надо, никто это не делает.

U>Также еще несколько вопросов:

U>1) Что будет если переданное макросу сплайс-строки значение равно null?

Будет выведена пустая строка. Это собственно поведение string.Concat() в вызовы которых перепивается в код строки.

U>2) Как записать такую форматную строку: string.Format("{0}добавление")? Т.е. как макрос понимает, что имя переменной закончилось и началась строковая константа?

"$(x)добавление"

В скобках могут быть любые вычисления, а не только ссылки на переменные.

U>3) Как работает приведенное Владом: $"Rum-Coke: $(F2(10 / 3))"? В какой код эту запись развернет компилятор?

Что-то вроде:
string.Concat("Rum-Coke: ", F2(10 / 3))

Что аналогично коду такому коду на Шарпе:
"Rum-Coke: " + F2(10 / 3)

Причем надо понимать, что макрос можно и переписать если на то появятся основание. Это не хардкод в компиляторе.

U>В принципе если сравнивать приведенные плюсы и минусы, то возможно плюсы и перевесят, хотя и несильно. Но проблема в том, что записи: TraceHlp2.AddMessage("Некая константа: {0}, {1}", obj1, obj2) и TraceHlp2.AddMessage($"Некая константа: $obj1, $obj2") неэквивалентны. Например, завтра мне понадобится лог локализовать. Что мне делать если я использую строку форматирования понятно — исходная строка форматирования становится ключом, по которому находится строка форматирования для нужного языка. А что я должен делать, если использовал сплайс-строки?


Например, использовать аналогичный макрос по имени "L" (вместо "$") который поддерживает атоматическую локализацию.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[15]: Что меня не устраивает в МП в Nemerle
От: IT Россия linq2db.com
Дата: 29.12.08 18:26
Оценка:
Здравствуйте, Undying, Вы писали:

U>Т.е. ради несколько более оптимального решения небольшой задачи (вывода форматированной строки) в язык вводится принципиально новая конструкция.


Ты перепутил причину и следствие. МП появился в Немерле не ради сплай-строк, а наоборот, сплайс-строки появились в Немерле, как результат наличия в нём МП.

U>При этом новый способ решения задачи более узкий, чем старый, часть задач, которые можно было решать с помощью string.Format, с помощью сплайс-строк решить не удастся. Соответственно string.Format все равно придется учить и о нем помнить.


Учиться вообще полезно. А что касается необходимости в string.Format, то пока её потусторонние возможности не так часто востребованы. Если же эти возможности будут реально нужны, то добавить их в сплайс-строку или придумать другое решение не будет проблемой.

U>В мэйнстримовском языке не должно быть 25 способ решения задачи, позволяющих каждый случай решить оптимальным образом. Мэйнстримовский язык должен содержать минимальное количество способов решения задач, позволяющих решить 99,9% задач качественным (но не обязательно оптимальным) способом. Новые способы решения задач, несколько более оптимальные, но имеющие какие-то недостатки и/или неспособные полностью вытеснить старые способы решения тех же задач должны добавляться в мэйнстримовский язык с большой осторожностью. К сожалению похоже даже разработчики шарпа перестали это понимать.


Это заблуждение. Любую задачу можно решить с помощью операторов if/else и while. Любую. Тем не менее даже в C есть switch, for и do/while. Не знаешь почему? А в C# 3.0 вообще понавводили всяких query extensions. А зачем люди создают DSLи? Зачем вообще придумали такой термин — DSL? if/else, while и вперёд!
Если нам не помогут, то мы тоже никого не пощадим.
Re[18]: Что меня не устраивает в МП в Nemerle
От: IT Россия linq2db.com
Дата: 29.12.08 18:26
Оценка:
Здравствуйте, gandjustas, Вы писали:

IT>>Легко, если человек понимает что такое указатель на функцию.


G>И что это ему даст на таком примере:


Без объяснения ничего.
Если нам не помогут, то мы тоже никого не пощадим.
Re[9]: Что меня не устраивает в МП в Nemerle
От: IT Россия linq2db.com
Дата: 29.12.08 18:33
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>А ты поднимись повыше и посмотри вопрос. Если лень, то вопрос был о том, как сделать, а не делать или нет.


Видишь ли в чём дело. Если бы ты ответил на вопрос зачем, то стало бы понятней, что тебе нужно на самом деле. Вариантов много и можно было подобрать наиболее лучший для твоей задачи.
Если нам не помогут, то мы тоже никого не пощадим.
Re[10]: Что меня не устраивает в МП в Nemerle
От: Lloyd Россия  
Дата: 29.12.08 18:38
Оценка: +1
Здравствуйте, IT, Вы писали:

L>>А ты поднимись повыше и посмотри вопрос. Если лень, то вопрос был о том, как сделать, а не делать или нет.


IT>Видишь ли в чём дело. Если бы ты ответил на вопрос зачем, то стало бы понятней, что тебе нужно на самом деле.


Странно, я считал, что само понятие "локализация" достаточно самоочевидное.
Простой пример — консольное приложение, пишет что-либо на консоль.
Re[8]: Что меня не устраивает в МП в Nemerle
От: IT Россия linq2db.com
Дата: 29.12.08 18:40
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>За счет того, что она работает изоморфно String.Concat. То есть более убогую функциональность трудно себе вообразить. Странно, что ее сравнивают со String.Format, потому что сравнивать нужно с

S>
S>"Output: " + a.ToString()
S>


А во что ты думаешь в конце концов выливается string.Format? Сначала много приседаний, а потом конкатенация либо StringBuilder.
Если нам не помогут, то мы тоже никого не пощадим.
Re[13]: Что меня не устраивает в МП в Nemerle
От: IT Россия linq2db.com
Дата: 29.12.08 18:41
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>В общем, за пределами задач визарда я подобного подхода не вижу. А визард — это обычно очень примитивная мета-программа.


Ну вот и славненько. Наконец-то разобрались.
Если нам не помогут, то мы тоже никого не пощадим.
Re[8]: Что меня не устраивает в МП в Nemerle
От: Сергей Туленцев Россия http://software.tulentsev.com
Дата: 29.12.08 18:51
Оценка:
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, Ikemefula, Вы писали:


I>>Нужен инструемент достаточно мощный, что бы решать задачи, и достаточно прозрачный, что бы следить за мелочами от которых никуда не деться.


IT>Жаль нет под рукой интеграции. Киньте кто-нибудь ему картинку с подсветкой в сплайс-строках в интеграции. Пусть сам оценит, что проще объяснять студенту.




Подсветка {0} — тоже твоя работа, надо полагать? В голой то студии в сишарпе оно никак не подсвечивается
... << RSDN@Home 1.2.0 alpha 4 rev. 1084>>
--
Re[13]: Что меня не устраивает в МП в Nemerle
От: Сергей Туленцев Россия http://software.tulentsev.com
Дата: 30.12.08 01:31
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>"Настоящих буйных мало, вот и нету вожаков" (с) В других, более старых языках — их уже вполне достаточно


I>Почему ты так решил ? Знаю людей, которые уже лет двадцать на Си пишут, а до указателей на функцию им как до небес.


Гм. Они хелло ворлды пишут? Или лабораторки студентам?
... << RSDN@Home 1.2.0 alpha 4 rev. 1084>>
--
Re[11]: Что меня не устраивает в МП в Nemerle
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 30.12.08 01:45
Оценка: 1 (1) +2 :)
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>Я уже не раз приводил (в том числе и тут, в ФП) аналогию с рисованием. Рисовать можно научить любого.


E>Пи<censored>... Трындеж.


Ну, я ожидал, что это не будетт для данного форума чем-то из ряда вон выходящим

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[11]: Что меня не устраивает в МП в Nemerle
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.12.08 04:12
Оценка: :)
Здравствуйте, Lloyd, Вы писали:

VD>>Все что нужно сделать — это заменить "$" на "L". Далее при компиляции автоматически создается файл куда "выкидываются" все строковые литералы где вместо сплайсов стоят некие заменители вроде любимых тобою "{0}".


L>Как это будет работать с source control-ом?


А в чем проблема то? Ты бы вообще, включал бы воображение и тогда не нужно было бы отвечать на столько вопросов.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[25]: Что меня не устраивает в МП в Nemerle
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.12.08 04:13
Оценка:
Здравствуйте, VoidEx, Вы писали:

VE>Как я и предполагал. Попытки обсудить то, на чём зиждется твоя уверенность (от слова "вера") в Немерле, воспринимаются в штыки, так как кроме веры других обоснований у тебя нет. Это называется фанатизм. И обсуждать тут действительно нечего.

VE>Заметил, как ловко ты мне отвечал на детские вопросы "зачем" и "почему" до тех пор, пока не дошли до спорного? Вот то-то и оно.

Смотри здесь
Автор: VladD2
Дата: 29.12.08
.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: Что меня не устраивает в МП в Nemerle
От: Sinclair Россия https://github.com/evilguest/
Дата: 30.12.08 05:00
Оценка:
Здравствуйте, IT, Вы писали:
IT>А во что ты думаешь в конце концов выливается string.Format? Сначала много приседаний, а потом конкатенация либо StringBuilder.
Вопрос не в том, что там в конце, а в том, что там в середине. Format strings — штука довольно серъезная.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[26]: Что меня не устраивает в МП в Nemerle
От: VoidEx  
Дата: 30.12.08 05:13
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Смотри здесь
Автор: VladD2
Дата: 29.12.08
.


Нет, это твои иллюзии. Мне интересен ответ на поставленный вопрос.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.