Alexey_Donskoy писал(а):
Valery Solovey писал(а):
Объект Byte существовать-то может, но только есть проблемки. Вот представьте себе простор огромного поля гигабайтной оперативной памяти.
Ведь передёргиваете! Как любил говорить небезызвестный YK, "подмена тезиса!". Вместо абстракции информационного содержания задачи Вы всё тыкаете в конкретную кривую реализацию "мэйнстрима". Да кто бы спорил, что она кривая! Вот если б хотя бы относительно прямую (Смоллток) попробовали, тогда ещё было бы интересно. Но мы ж не об этом, а о сути задачи!
Ничего я не передёргиваю. В Смолтолке всё объект, потому что там
действительно всё объект. В C# не всё является объектом, потому что там
действительно не всё является объектом. К Смолтолку претензий и не предъявлялось: хотят сделать i.toString() - пожалуйста, ведь у них - всё объект, и взаимодействие с объектами однороны. Но в большинстве мэйнстримовых языков - не всё объект. Там как минимум два класса сущностей (в угоду себе, любимым). Но почему-то впилить toString() им захотелось туда, где взаимодействие отличается от взаимодействия объекта
кардинально. В ООП нигде нет запрещений на создание таких объектов. Никто в кривом ООП не запрещает всё сделать объектом. Однако, метод toString() появился там, где он недоступен даже в кривом ООП. Ну и кто здесь непоследователен?
Alexey_Donskoy писал(а):
То, что от этой схемы надо уходить, понятно всем. Но Вы путаете парадигму (ну пусть методологию) с конкретной реализацией, а это не есть гут!
Это вы путаете конкретную реализацию с парадигмой. Я не говорил, что
это неправильно, я говорил, что
там неправильно, и что
так делать нельзя. Когнитивность? Там ею только пахнет.
ЗЫ Я очень даже
за возможность работы с числами-объектами.
Alexey_Donskoy писал(а):
Valery Solovey писал(а):
Единообразие не помешает, но i.toString() ничего общего с object.toString() не имеет.
Вот Вы и подтвердили мои слова о Вашем понимании...
Поймите же, что суть задачи - выполнить операцию В над сущностью А в контексте Б. Всё! Ваши i и object есть частные случаи, возможные представления сущности А, и между ними НЕТ РАЗНИЦЫ в контексте задачи!
Ваша ошибка в том, что, рассуждая о надёжности Оберона и аналогичных вопросах, Вы сводите всё многообразие многомерности задачи на один единственный уровень ЯП, что методически неверно!
При этом Вы, с одной стороны, теряете исполнителя (я ж приводил пример с вещественной арифметикой), а с другой стороны, ставите сами себе непреодолимые пределы в части высокоуровневых абстракций.
Я пытаюсь сводить всё многообразие многомерности задачи не к единственному уровню, а к одному уровню, что методически верно: упрощается работа на текущем уровне, потому что предыдущий уровень один и однороден. То же самое делаете и Вы. Но только Вы, почему-то, считаете верным записать i.toString() при любых обстоятельствах, в то время как я согласен с этим только на определённых условиях. Поскольку i не равно object, и существуют разные контексты, то можно найти и такие контексты, когда различия существенны. При сложении, возможно, разницы действительно нет, но при попытке занести значение в формуляр, распечатать его, затем отсканировать и распознать исходное значение сущности могут возникнуть проблемы (у объекта могли быть атрибуты, которые на формуляр не печатались). Почему я к этому так прилип? Потому что на процессорах Intel даже перестановка двух идущих подряд строк инициализации переменных может существенно сказаться на производительности. В object.toString() будет выполняться object.toString(), а в i.toString() не будет выполняться i.toString(). Это замыливает взгляд, требуется помнить этот нюанс. И если даже порядок инициализации сказывается на производительности, то что может сделать такое поведение? О какой прозрачности может идти речь? Ну и у кого здесь лишние сущности : )?
P.S. Как Вы так быстро ответы даёте? Я один раз нажал "отправить", а там Ваше новое сообщение. Прочитал, жму "отправить", а там ещё одно Ваше сообщение : ).