Пётр Кушнир писал(а):
Vlad писал(а):
Покажите в коде. Потому что я не вижу никакой разницы между i.ToString() и ToString(i).
Вы преимущественно кодите, или думаете?
А разве возможно делать первое без второго (индусов в расчет не берем)?
Пётр Кушнир писал(а):
Vlad писал(а):
Как это связано с невозможностью писать i.ToString()?
Математическая модель ничего не может писать. Даже теоретически.
И что? Такая запись обязывает математическую модель чего-то писать? А если вот так:
Код:
(new Integer(i)).ToString()
Полегчало? Весь этот сыр-бор только из-за более сокращнной (удобной) записи? Или еще что-то есть, чего от меня по-прежнему ускользает?
Пётр Кушнир писал(а):
Vlad писал(а):
- Смотри, не в обероне я могу понять код не прыгая в интерфейс, так гораздо быстрее- А я хочу прыгать в интерфейс
Вы это к чему? Я то в обероне. А вы нет. Я знаю наверняка. А вы гадаете(пусть и с большой вероятностью).
Я не только знаю наверняка, но и компилятор меня поправит, если я напишу лажу. Например я при всем желании не смогу использовать неверное значение функции, если в функции произошла ошибка. А вы будете лазить по документации и смотреть, какое возвращаемое значение является признаком ошибки, а какое нормальным результатом выполнения функции. Только не надо опять про ASSERT'ы. Поймите наконец разницу между логическими ошибками программирования и ошибками времени выполнения (которые надо уметь обрабатывать, а не падать со стэк трэйсом).
Пётр Кушнир писал(а):
Vlad писал(а):
- Смотри, не в обероне я могу понять смысл интерфейса не заглядывая в доку (которые если и бывают, то только у устоявшихся библиотек) или код- А я хочу смотреть доку и код
Получается, что Вы - БОГ. Или вам повезло.
Мне повезло, что я работаю с людьми, которые умеют использовать C++. Иначе я, возможно, уверовал бы в оберон и в сказки про то, что на нем нельзя писать неправильные программы

Пётр Кушнир писал(а):
Vlad писал(а):
- Совмещая объявление и инициализацию я могу избежать вот таких конкретных багов и повысить читабельность- Это все синтаксический сахар
Это сахар. Я не говорил, что это плохо. Это сахар, я без него обхожусь. Решение - инитить переменные.
Ага. По вашей логике GC - это тоже сахар, потому что есть решение - вовремя удаляйте объекты и не используйте указатели на удаленные

Разница только в трудоемкости. Но и то и другое это ручной человеческий труд, по определению подверженный ошибкам.
Пётр Кушнир писал(а):
Vlad писал(а):
Мне все равно как писать i.ToString() или ToString(i), потому что и та и та запись читаются одинаково- Запись i.ToString() не может быть правильной потому что (далее куча абстрактных рассуждений про базовые типы, ООП и т.д.)
Всё таки вы наверное больше кодите чем думаете. Без обид.
Просто я не думаю закостенелыми обероновскими шаблонами (ах, у целого вызвали метод, тушите свет).
Vlad писал(а):
Если вы не проверили файл на read-only то это вы виноваты(кстати конкретно эта ситуация корректно обрабатывается в ББ ещё на уровне слоя работы с файлами).
Пойдем по кругу? Ладно. Я проверил файл на read-only и хочу вернуть код ошибки (потому что ASSERT, как мы только что выяснили уже не катит). Посмотрите еще раз свое сообщение:
viewtopic.php?p=17814#p17814Итак, как же все-таки будем возвращать ошибку? Out параметром? А результатом функции будет мусор? Просто скажите "да" и покончим с этим

Пётр Кушнир писал(а):
Vlad писал(а):
Понаставьте ассертов. Протестируйте всесторонне.
Это вместо того, чтобы просто правильно написать и отдать все проверки компилятору? Спасибо, но похоже овчинка (даже в лице C++) стоит выделки.
Пётр Кушнир писал(а):
Ваши слова про студентов я могу принять на свой счёт, принять за неуважение, и страшно расстроиться. Я кажется ни разу не усомнился в вашем профессионализме.
Нет, про студентов это было не лично про вас. Это про наивных людей, верящих что 16 страниц документации за счет простоты дадут им больший контроль над ситуацией, чем более сложные инструменты. За простоту надо платить. В каком-то случае больше, в каком-то меньше. Непопулярность оберонов в мэйнстриме наглядное тому подтверждение.