Re[15]: Форматные строки
От: Qbit86 Кипр
Дата: 03.04.12 11:53
Оценка:
Здравствуйте, VoidEx, Вы писали:

VE>В нормальном API преобразование в строку не должно быть намертво пришито к типу данных.


А что, где-то пришито?
Глаза у меня добрые, но рубашка — смирительная!
Re[16]: Форматные строки
От: VoidEx  
Дата: 03.04.12 11:57
Оценка:
Здравствуйте, Qbit86, Вы писали:

VE>>В нормальном API преобразование в строку не должно быть намертво пришито к типу данных.


Q>А что, где-то пришито?


object.ToString
Re[17]: Formatting Types
От: Qbit86 Кипр
Дата: 03.04.12 12:14
Оценка:
Здравствуйте, VoidEx, Вы писали:

Q>>А что, где-то пришито?


VE>object.ToString


Это всего лишь способ вывода по умолчанию, который используется в случае, если в методы форматирования не передаётся своя реализация IFormatProvider/ICustomFormatter. See also: Formatting Types
Глаза у меня добрые, но рубашка — смирительная!
Re[18]: Formatting Types
От: VoidEx  
Дата: 03.04.12 12:16
Оценка:
Здравствуйте, Qbit86, Вы писали:

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


Q>>>А что, где-то пришито?


VE>>object.ToString


Q>Это всего лишь способ вывода по умолчанию, который используется в случае, если в методы форматирования не передаётся своя реализация IFormatProvider/ICustomFormatter. See also: Formatting Types


Снимаю все обвинения!
Re[10]: Контейнеры, комментарий Страуструпа
От: Erop Россия  
Дата: 03.04.12 18:40
Оценка:
Здравствуйте, B0FEE664, Вы писали:

BFE>

BFE>Кто-нибудь может сказать, что valarray следовало бы назвать vector(вектор), поскольку он является традиционным математическим вектором, а vector следовало бы назвать array(массив), однако терминология развивалась иначе. valarray — это вектор, оптимизированный для численных расчётов, а vector — это гибкий контейнер разработанный для хранения объектов различного типа и манипулирования с ними, массив же — это низкоуровневый встроенный тип.

BFE> Бьерн Страуструп

IMHO, это только доказывает, что "терминология развивалась" неудачно...
Ну вообще весь STL делали люди со значительным вывихом мозга. Так что чего там было ждать-то прямых решений?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[13]: Вектор
От: alex_public  
Дата: 03.04.12 19:13
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Обещанного? Никто не обещал восполнять твои пробелы в образовании.


Ага, как я и думал. В начале много громких слов, а когда переходим к конкретике, то пшик.

Q>Ты не улавливаешь связи в последовательных предложениях. Упоминание класса вектора в одном из .NET API служило примером, а не определением вектора в алгебре (который элемент векторного пространства).


Угу, и в OpenGL тоже есть свои вектора. Только какое это имеет отношение к универсальным контейнерам C++?

_>>И снова .Net и Java. Без них никак не получается говорить про C++? )

Q>Нельзя продуктивно говорить о чём бы то ни было, не пытаясь расширить контекст и проводить сравнения с существующими образцами.

Ооо, ну хорошо. Тогда давайте разберём что же подразумевается под понятием "список" в языках Лисп, Пролог, Хаскель. Ну это для начала. )))
Re[14]: Вектор
От: Ops Россия  
Дата: 03.04.12 21:35
Оценка: +1
Здравствуйте, alex_public, Вы писали:

_>Ооо, ну хорошо. Тогда давайте разберём что же подразумевается под понятием "список" в языках Лисп, Пролог, Хаскель. Ну это для начала. )))


Для начала лучше вспомнить, что называли списком, например, Дейкстра или Вирт. Неожиданно оказывается, что это 1 или 2-связный интрузивный список, а никак не список покупок.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[15]: Контейнеры
От: Sinclair Россия https://github.com/evilguest/
Дата: 04.04.12 03:35
Оценка: +1 :)
Здравствуйте, SleepyDrago, Вы писали:

SD>добровольно выбираете 2е зная что это нужно каждые 50 строк ? Я чесслово не смог бы лучше за вас описать насколько это эпик.

SD>А геометрия она бывает не только из чисел. Вот например 2d грань это 2 точки и направление
Не очень понятно ваше желание выводить точки исключительно в поток. А если вам потребуется их не логгировать, а, скажем, в TextBox записывать?
Безотносительно к наличию в языке потоков достаточно реализовать метод .toString(), который решит все проблемы форматирования точки раз и навсегда.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[11]: Люди со значительным вывихом мозга
От: Qbit86 Кипр
Дата: 04.04.12 04:42
Оценка: +1 :)
Здравствуйте, Erop, Вы писали:

E>IMHO, это только доказывает, что "терминология развивалась" неудачно... :xz:

E>Ну вообще весь STL делали люди со значительным вывихом мозга. Так что чего там было ждать-то прямых решений? ;)

Не скажи. Его делали очень умные люди, в первую очередь, Алекс Степанов. В его книжке «Начала программирования» (которая скорее, не про программирование, а про алгебру, кмк) на довольно глубоком уровне расписаны концепции итераторов.

В то время как API коллекций в .NET, кажется, изначально развивалось как бог на душу положит, по-рабоче-крестьянски. Значительно позже появились правильные решения, дженерики, Linq, Rx, выведенные «учОными», а не «инженерАми».

И вот тем не менее, в первом случае появилось малоюзабельное нечто, на что нельзя смотреть без содрогания после работы с более гуманными API.
Глаза у меня добрые, но рубашка — смирительная!
Re[16]: Контейнеры
От: Qbit86 Кипр
Дата: 04.04.12 04:47
Оценка:
Здравствуйте, Sinclair, Вы писали:

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


Предполагается, что в этом случае ты выведешь в строковый поток, а оттуда получишь строку и запихнёшь в TextBox.

Но я по-прежнему не могу понять, чем вызов MyNamespace::operator <<(cout, point) принципиально лучше упомянутого вызова MyNamespace::print_point(point). Автор что-то недоговаривает.
Глаза у меня добрые, но рубашка — смирительная!
Re[14]: Вектор
От: Qbit86 Кипр
Дата: 04.04.12 04:53
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Ага, как я и думал. В начале много громких слов, а когда переходим к конкретике, то пшик.


Я дважды озвучил определение вектора, ты этого так и не понял. Вот тебе и «пшик».

_>Угу, и в OpenGL тоже есть свои вектора.


Да-да, я как раз хотел в качестве ещё одного примера упомянуть векторы из OpenGL, ты меня опередил.

_>Только какое это имеет отношение к универсальным контейнерам C++?


Наоборот, какое отношение имеют универсальные контейнеры C++ к тому, что принято называть векторами?

_>Ооо, ну хорошо. Тогда давайте разберём что же подразумевается под понятием "список" в языках Лисп, Пролог, Хаскель. Ну это для начала. )))


В Лиспе и Хаскеле под списком понимается отнюдь не двусвязный список с возможностью быстрой вставки в середину. Так-то.
Глаза у меня добрые, но рубашка — смирительная!
Re[17]: Контейнеры
От: Sinclair Россия https://github.com/evilguest/
Дата: 04.04.12 04:58
Оценка:
Здравствуйте, Qbit86, Вы писали:
Q>Предполагается, что в этом случае ты выведешь в строковый поток, а оттуда получишь строку и запихнёшь в TextBox.
Ну вот это мне кажется не лучшим способом разделения абстракций. То есть предположение, что "всё можно в поток", при этом "некоторые потоки можно превратить в строку" кажется мне более нелепым, чем предположение, что "всё можно превратить в строку", при этом "строку можно и в поток".
Идеология плюсов явно отстала от времени. Потоки в плюсах в себе скрывают собственно Stream, Writer, и Formatter. То есть с точки зрения теории кристалла, они в лучшем случае могли бы подходить для сериализации, где вопросов форматирования и кодировок просто не встаёт. Но для неё они тоже плохо пригодны, т.к. зачем-то подразумевают текстовость представления.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[18]: Streams
От: Qbit86 Кипр
Дата: 04.04.12 05:08
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Ну вот это мне кажется не лучшим способом разделения абстракций. То есть предположение, что "всё можно в поток", при этом "некоторые потоки можно превратить в строку" кажется мне более нелепым, чем предположение, что "всё можно превратить в строку", при этом "строку можно и в поток".

S>Идеология плюсов явно отстала от времени. Потоки в плюсах в себе скрывают собственно Stream, Writer, и Formatter. То есть с точки зрения теории кристалла, они в лучшем случае могли бы подходить для сериализации, где вопросов форматирования и кодировок просто не встаёт. Но для неё они тоже плохо пригодны, т.к. зачем-то подразумевают текстовость представления.

Да вот я как раз примерно то же самое хотел при случае упомянуть. В .NET получение строкового представления объекта рассматривается в рамках более общего понятия «форматирование», куда входит ещё и парсинг, локали/культуры, etc. А «сериализация» — сама по себе, отдельные механизмы и подходы. «Потоки» (стримы) тоже есть, представляют из себя отдельную абстракцию (в том числе декораторы и адаптеры потоков). А в плюсах всё это попытались запихнуть в единое понятие «поток», с его модификаторами (манипуляторами), флагами, специфической обработкой ошибок, изменяемым состоянием, etc.
Глаза у меня добрые, но рубашка — смирительная!
Re[18]: Контейнеры
От: FR  
Дата: 04.04.12 05:19
Оценка:
Здравствуйте, Sinclair, Вы писали:

Q>>Предполагается, что в этом случае ты выведешь в строковый поток, а оттуда получишь строку и запихнёшь в TextBox.

S>Ну вот это мне кажется не лучшим способом разделения абстракций. То есть предположение, что "всё можно в поток", при этом "некоторые потоки можно превратить в строку" кажется мне более нелепым, чем предположение, что "всё можно превратить в строку", при этом "строку можно и в поток".

Ничего ни мешает TextBox'у быть потоком.
Например в wxWidgets все контролы (для которых это имеет смысл) поддерживают operator<<.

S>Идеология плюсов явно отстала от времени. Потоки в плюсах в себе скрывают собственно Stream, Writer, и Formatter. То есть с точки зрения теории кристалла, они в лучшем случае могли бы подходить для сериализации, где вопросов форматирования и кодировок просто не встаёт. Но для неё они тоже плохо пригодны, т.к. зачем-то подразумевают текстовость представления.


Фигня, большой разницы между строкой и строковым потоком нет. Для некоторых применений удобно одно, для других другое.
Re[19]: Streams
От: FR  
Дата: 04.04.12 05:27
Оценка: +2
Здравствуйте, Qbit86, Вы писали:

Q>Да вот я как раз примерно то же самое хотел при случае упомянуть. В .NET получение строкового представления объекта рассматривается в рамках более общего понятия «форматирование», куда входит ещё и парсинг, локали/культуры, etc. А «сериализация» — сама по себе, отдельные механизмы и подходы. «Потоки» (стримы) тоже есть, представляют из себя отдельную абстракцию (в том числе декораторы и адаптеры потоков). А в плюсах всё это попытались запихнуть в единое понятие «поток», с его модификаторами (манипуляторами), флагами, специфической обработкой ошибок, изменяемым состоянием, etc.


Согласен с тем что реализация паршивая. Но сама идея вывода в поток ничем ни хуже идеи вывода в строку.
Re[19]: Контейнеры
От: Sinclair Россия https://github.com/evilguest/
Дата: 04.04.12 05:30
Оценка:
Здравствуйте, FR, Вы писали:

FR>Фигня, большой разницы между строкой и строковым потоком нет. Для некоторых применений удобно одно, для других другое.

Ну, с моей точки зрения, разница — огромна. Одно дело иммутабельная строка, другое дело — строковый поток.
Да, с идеологической точки зрения StringBuilder и TextWriter — примерно одно и то же.
Тем не менее, все остальные аспекты, запиханные в плюсовые потоки, там точно лишние.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[12]: Чтобы вывихнуть мозги, их надо иметь ;)
От: Erop Россия  
Дата: 04.04.12 06:09
Оценка:
Здравствуйте, Qbit86, Вы писали:

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


Q>Не скажи. Его делали очень умные люди, в первую очередь, Алекс Степанов.

Дык у глупых-то отуда вывих мозга возьмётся?..

Q>В его книжке «Начала программирования» (которая скорее, не про программирование, а про алгебру, кмк) на довольно глубоком уровне расписаны концепции итераторов.

Беда тут ровно одна -- для программирования 99% кода это всё вляется переусложнением и вообще не надо

Он, как бы, пытался угадать, какие сложные задачи классно поддержать в языке. От чего-то затеял разделять данные и алгоритмы (этакое ати-ООП), и в основу положил жёстко заданные последовательности.
А на практике оказалось нужным уметь работать с наборами, а не с последовательностями (типа SQL зарулил степановский STL), и отказ от ООП тоже пошёл по другому пути...

А С++ остался со всей этой не особо нужной алгеброй....

Q>И вот тем не менее, в первом случае появилось малоюзабельное нечто, на что нельзя смотреть без содрогания после работы с более гуманными API.


Дык вот о том и речь...
Но у них был систематический просчёт и фейл закономерен. Если хочешь получить что-то юзабельное -- надо идти ОТ ЗАДАЧ, а не от математических красот...

Правда я не думаю, что Степанов хотел юзабельное. IMHO, он хотел не юзабельности, а славы
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[16]: Контейнеры
От: SleepyDrago Украина  
Дата: 04.04.12 09:33
Оценка:
Здравствуйте, Sinclair, Вы писали:

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


SD>>добровольно выбираете 2е зная что это нужно каждые 50 строк ? Я чесслово не смог бы лучше за вас описать насколько это эпик.

SD>>А геометрия она бывает не только из чисел. Вот например 2d грань это 2 точки и направление
S>Не очень понятно ваше желание выводить точки исключительно в поток. А если вам потребуется их не логгировать, а, скажем, в TextBox записывать?
S>Безотносительно к наличию в языке потоков достаточно реализовать метод .toString(), который решит все проблемы форматирования точки раз и навсегда.
мне тут выше 3 раза напоминали что форматировать надо уметь по разному. Так что метод внутри класса это не удобно.
На практике я не настаиваю на вывод в поток так как у нас строка выглядит и ведет себя как поток так что мне не важно
Re: Google code style
От: minorlogic Украина  
Дата: 04.04.12 10:04
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>А что Вы думаете по этому поводу?


Согласен что пунк неоднозначный.
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[2]: Google code style
От: minorlogic Украина  
Дата: 04.04.12 10:08
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Эта интуитивная понятность кончается, когда хочется вписать результат форматирования в поле определенной ширины, или вывести число с определенной точностью — то, что в printf'е как раз делается просто и естественно.


Вопрос привычки
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.