Цитата: понятие Зловещей долины относящейся к эмоциональным аспектам робототехники
оно относится не только к роботехнике - смотри например легенды об оборотнях и вампирах и подменышах.
и не только про человекообразных - возьми ужастики, про миленькую собачку из которой или тентакли полезут или еще что.
Проблема появляется когда что-то выглядит родным и привычным, но ведёт себя "не по правилам."
Тут уже был гуру Фотошопа, которы обещал за пару часов сделать MacOS интерфейс на FMX - и таки "внешний вид" он более-менее повторил. А вот поведение - не смог. А именно это сочетание чужеродного действия под прикрытием привычной каринки и лишает уверенности и комфорта.
Цитата: a := TJclStringList.Create; a.Split('SourceString','S').Trim.Join(#13#10); Утечка 100%-ная.
Зависит от типа переменной, при правильном типе утечки нет
Цитата: Вот если бы было что-то типа: Код: IJclStringList(TJclStringList.Create).Split('SourceString','S').Trim.Join(#13#10);
Там есть глобальная функция, возвращающая новый объект через интерфейс.
Я же лично предпочитаю делать класс с непубличным конструктором и классовой функцией "New: Ixxxx"
Но дело как раз в том, что JclStringList имитирует TStringList и потому создание через конструктор выглядит естественным и правильным. Чтобы можно было просто подставить в не-ARC код вместо штатного.
Цитата: имхо, JCL весьма и весьма посредственная библиотека ... на троечку из 5.
Там где нужно на 5 - можно и переписать. Предпочитаю иметь широкий набор удовлетворительных инструментов, чем разговоры об идеальном, который мжет быть кто-нибуь напишет, выложит и не забросит
Добавлено: Цитата: Я офигел от очевидности решения! Это ж на каждый чих нужно узнавать у гуру как добраться к "абстрагированной" платформенной фиче!!
Давай надеяться, что метод "как добраться" будет везде один и тот же, и не ради нас сирых, а просто потому что так писать удобнее.
Взять тот же VCL - такие методы как Perform, RecreateWnd тоже не очивидны и в MSDN не прописаны. Но к ним в конце концов привыкли, как к особенности библиотеки, и вопросов не задаём.
Добавлено: Цитата: Имхо, Delphi тут не причём.
Как это не при чём? Дельфи позволяет написать и (даже без ворнингов!) скопилировать принципиально опасный код. Это было бы нормально для "ассемблера" С++, но это не хорошо для Паскаля, который "не позволяет прострелить себе ногу"
Так что это - недостаток языка, как ни крути. Другой вопрос, что как это можно бы было исправить, не ломая совместимости? Впрочем, теперь уже не важно.